rockbox/apps
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
..
bitmaps ap80max: New hosted port 2026-08-13 17:55:06 -07:00
gui quickscreen: fix icon x-position off-by-one 2026-09-09 15:24:31 +02:00
hosted/android chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
iap iap: Improve IAPGeneralCommandID_RequestIPodName 2026-08-07 08:48:05 -04:00
keymaps 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
lang Translation updates 2026-09-07 22:21:49 -04:00
menus touchscreen: Add flick gesture support in list and WPS 2026-09-07 08:56:38 -04:00
plugins ipod6g: add hardware H.264 video playback 2026-09-13 08:07:59 -04:00
radio [Bugfix] Autoscan when radio off hangs player, record static 2026-06-20 11:43:02 -04:00
recorder keyboard: point-mode virtual keyboard for touchscreens 2026-08-25 09:56:46 -04:00
abrepeat.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
abrepeat.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
action.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
action.h touchscreen: Fix seeking to end of track in WPS 2025-12-04 19:36:19 -05:00
alarm_menu.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
alarm_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
appevents.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
applimits.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
apps.make chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_path.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
audio_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
beep.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
bookmark.c apps: bookmark: stop scrolling when leaving select screen 2026-05-28 20:13:10 -04:00
bookmark.h Fix return to root after selecting items from playlist viewer 2022-11-19 10:01:23 +01:00
buffering.c metadata.c small cleanup 2026-06-28 14:24:02 -04:00
buffering.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codec_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codec_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
codecs.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
core_asmdefs.c
core_keymap.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
core_keymap.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
cuesheet.c FS13892: Voice feedback in Cuesheet browser 2026-08-25 07:54:03 -04:00
cuesheet.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
debug_menu.c debug_menu: exclude HIBY RAM info from simulators 2026-09-02 09:00:59 -04:00
debug_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
enc_config.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
enc_config.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
features.txt lang: Restrict LANG_COMPOSITE_VIDEO_OUTPUT to devices that have it 2026-09-07 09:27:20 -04:00
fileop.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
fileop.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetree.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetree.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
filetypes.c filebrowse.lua add sort by type, add .bmp, .mod to known filetypes 2026-08-07 09:05:59 -04:00
filetypes.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
fracmul.h
gesture.c touchscreen: Add flick gesture detector 2026-08-13 08:03:37 -04:00
gesture.h touchscreen: Add flick gesture detector 2026-08-13 08:03:37 -04:00
keyboard.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
language.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
language.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
logfdisp.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
logfdisp.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
main.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
menu.c quickscreen: prevent out-of-bounds viewports 2026-09-02 14:03:17 -04:00
menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
misc.c ipod6g: Add inline earphone remote support 2026-08-05 08:40:24 -04:00
misc.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
onplay.c onplay wps context menu plugin item rework namebuf 2026-06-11 09:52:09 -04:00
onplay.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
open_plugin.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
open_plugin.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
pcmbuf.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
pcmbuf.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playback.c playback: fix Playlist Single Mode pause behavior (31dfd5da2e) 2026-07-28 19:54:59 +02:00
playback.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist.c skin: add %pX tag for time-based playlist progress 2026-06-27 12:29:31 -04:00
playlist.h skin: add %pX tag for time-based playlist progress 2026-06-27 12:29:31 -04:00
playlist_catalog.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist_catalog.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
playlist_viewer.c quickscreen: always refresh SBS when leaving 2026-09-02 23:07:58 +02:00
playlist_viewer.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
plugin.c ipod6g: add hardware H.264 video playback 2026-09-13 08:07:59 -04:00
plugin.h ipod6g: add hardware H.264 video playback 2026-09-13 08:07:59 -04:00
rbcodec_helpers.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
rbcodecconfig.h usbaudio: send through dsp (new) 2025-11-15 07:38:19 -05:00
rbcodecplatform.h
README
root_menu.c root_menu: remove ACTIVITY_UNKNOWN hack for plugins 2026-09-12 08:33:27 -04:00
root_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
screen_access.c FS#13944 - FONT_UI loads the last loaded font not global_status.font_id 2026-06-30 13:29:23 -04:00
screen_access.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
screens.c allow softlock in additional screens 2026-07-05 12:59:27 +02:00
screens.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
settings.c ipod6g: add composite output setting 2026-09-07 08:55:22 -04:00
settings.h touchscreen: Add flick gesture support in list and WPS 2026-09-07 08:56:38 -04:00
settings_list.c touchscreen: Add flick gesture support in list and WPS 2026-09-07 08:56:38 -04:00
settings_list.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
shortcuts.c shortcuts: go to WPS for ACTION_TREE_WPS 2026-07-05 06:58:44 -04:00
shortcuts.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
sound_menu.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
SOURCES 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
status.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
status.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tagcache.c metadata.c small cleanup 2026-06-28 14:24:02 -04:00
tagcache.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tagnavi.config tagnavi.config: Add "Album Artists by First Letter" 2025-02-08 12:14:32 -05:00
tagtree.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tagtree.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
talk.c fix FS#13864: Last char of folder and filename not voiced 2026-04-16 07:57:21 -04:00
talk.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tree.c tree: skip redundant SBS refresh after Quickscreen 2026-09-03 01:32:17 +02:00
tree.h 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
usb_keymaps.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
usb_keymaps.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
voice_thread.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
voice_thread.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00

For general information see: docs/README
For API information see: docs/API