Open Bug 1321249 Opened 5 years ago Updated 3 months ago

Properly handle AAC/MP4 encoder delay

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

People

(Reporter: jya, Unassigned)

References

Details

See https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFAppenG/QTFFAppenG.html

Also found in ISO 14496-12.

AAC has traditionally had a default encoder delay set at 2112 frames. This is an implicit encoder.

Additionally, there's in the MP4 container an explicit encoding to define the encoder delay 
There are two boxes to handle such information:
sample group description box (sgpd) and
sample-to-group (sbgp)

This is in additional to an eventual edit list.

Stagefright appears to have handling for all of those and set some keys
kKeyEncoderDelay
kKeyEncoderPadding

we should handle this with the rust demuxer, and then modify all the decoders to trim the frames on both ends.
Duplicate of this bug: 1320652
See Also: → 1345756
Hi Jean-Yves, here's a test case of AAC with elst box: https://github.com/nzhang227/gapless_audio_mse#details-about-the-test-files. There's details on the transcoding and elst box generation. Could you take a look and see if you can make the test case work? Please feel free to ask any questions.
You need to log in before you can comment on or make changes to this bug.