rockbox/docs
David Cormier e0136bc7f4 ipod6g: add hardware H.264 video playback
Add S5L8702 VPU-B initialization, reset, bitstream input, frame output,
and cache maintenance to the iPod 6G target. Advertise it with
HAVE_HW_H264 and append a capability-gated decoder interface to the
plugin API.

Keep MP4 parsing, AAC decode and mixer output, A/V synchronization,
playback controls, resume state, and presentation in the multi-file
h264_player plugin. The target layer exposes decoder operations only.

Accept non-fragmented MP4/M4V containing Constrained Baseline H.264
through level 3.0, up to 640x480 at 30 fps, with optional AAC-LC audio.
Validate codec configuration and all sample-table relationships before
activating the hardware.

Read MP4 tables in bulk, boost the CPU while preparing them, and report
staged loading progress so long movies do not appear to hang during
startup.

Register the viewer and document its format limits and controls. The
libm4a compatibility fixes needed by video-first containers remain in
the preceding standalone change.

Tested on an iPod Classic 6G through an isolated Rolo nightly runtime:
H.264/AAC playback and M4V startup succeeded. Normal and
isolated-runtime iPod 6G builds also complete, and git diff --check is
clean.

Change-Id: I1e96c65c7d0b4231a94f602f8052f1b26d6e4a80
2026-09-13 08:07:59 -04:00
..
logo lcd_color/cabbiev2: New iconset in multiple sizes 2011-11-26 16:01:11 +00:00
CHARGING_ALGORITHM Removed executable flag 2007-01-09 23:29:07 +00:00
COMMITTERS docs: add myself to CREDITS and COMMITTERS 2026-01-03 13:30:08 -05:00
CONTRIBUTING Update the RealName and AI sections in docs/CONTRIBUTING 2026-07-08 10:44:14 -04:00
COPYING Removed 'howto' addition 2003-11-20 14:13:30 +00:00
COPYING-MANUAL Manual license is GFDL, add it to the docs folder. 2006-12-17 11:54:10 +00:00
CREDITS ipod6g: add hardware H.264 video playback 2026-09-13 08:07:59 -04:00
gpl-2.0.html Remove duplicated license file. 2010-09-04 18:50:12 +00:00
HISTORY Convert to UTF-8 and a few tweaks. 2008-02-07 00:56:07 +00:00
LICENSES utf8proc: Add utf8proc for normalizing UTF-8 strings 2026-03-01 08:26:00 -05:00
MAINTAINERS docs: update MAINTAINERS 2025-11-08 08:28:45 -05:00
NODO Remove outdated NODO list from the docs folder. Replace it with a link to the wiki. 2010-05-15 21:54:24 +00:00
PLUGIN_API chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
profontdoc.txt Make sure files which aren't windows-specific use \n line endings only 2010-06-17 16:59:51 +00:00
README docs: we use xz, not bz2, for tarballs 2024-10-13 09:33:00 -04:00
sample.colours Make sure files which aren't windows-specific use \n line endings only 2010-06-17 16:59:51 +00:00
sample.icons Add a sample.icons file, and add a few more files to the docs folder in the zips 2007-06-18 09:32:28 +00:00
UISIMULATOR docs: Delete some _very_ obsolete documentation 2025-04-20 16:53:57 -04:00
usb-api.md usb: refactor control request handling 2026-05-25 12:42:36 +01:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xJf rockbox.tar.xz

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have mips/m68k/arm-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be generated using the rockboxdev.sh script in the /tools/ folder of the
   source.

   $ which arm-elf-eabi-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fuzeplus
   $ cd build-fuzeplus
   $ ../tools/configure

   $ mkdir build-xduoox3
   $ cd build-xduoox3
   $ ../tools/configure

Questions anyone? Ask on the mailing list or on IRC. We'll be happy to help you!