rockbox/lib/rbcodec/codecs/libm4a
David Cormier 064c165367 libm4a: handle sparse chunk maps and video-first MP4
Size the reduced stco lookup with ceiling division. The table stores
chunk entries 0, divider, 2 * divider, and so on, so floor division
allocated one entry too few whenever the original count had a
remainder.

Treat a valid media-information atom whose first child is not smhd as
a non-audio track and skip the remainder. Continue scanning subsequent
tracks so AAC decoding works when an MP4 places its video track before
the audio track, while still rejecting malformed atom sizes and
malformed sound headers.

Keep these container fixes independent of the H.264 player and target
driver so they can be reviewed and applied to libm4a on their own.

Build-tested as part of the normal and isolated-runtime iPod 6G
configurations and hardware-tested with AAC audio in M4V playback.

Change-Id: I8c711525932f54ecbdad982c7f7ddc9490c5668d
2026-09-07 09:17:27 -04:00
..
demux.c libm4a: handle sparse chunk maps and video-first MP4 2026-09-07 09:17:27 -04:00
libm4a.make chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
m4a.c chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
m4a.h chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
SOURCES Add codecs to librbcodec. 2012-04-25 22:13:20 +02:00