These commits add gapless audio support to qtdemux. This is specific to single-stream audio-only .m4a data.
The most common way of supporting gapless AAC in MP4 is by relying on the iTunes iTunSMPB
tag. Older Nero AAC encoders did not use this, but they always used a specific a fixed encoder delay and padding. So, as fallback, if the AAC file is found to have been encoded with Nero AAC, and the iTunSMPB
is not present (newer Nero AAC versions did add it, older ones didn't), then that Nero AAC specific behavior is used. Similar fallbacks for other encoders could be added in the future.
This MR also adds unit tests to test for iTunSMPB
based and older NEro based gapless handling in qtdemux.
This replaces !4198 (closed) .