mozilla / mp4parse-rust

Parser for ISO Base Media Format aka video/mp4 written in Rust.
Mozilla Public License 2.0
411 stars 62 forks source link

Support MP3 audio in MPEG-4 per ISO/IEC 14496-3:2009 § 9.D.2.2 #319

Open jkcalhoun opened 3 years ago

jkcalhoun commented 3 years ago

As described for pull request #227, mp4parse currently mishandles and fails to play MP3 audio carried in MPEG-4 files according to the updated specification published as ISO/IEC 14496-3:2009.

For more details please see the pull request, along with the test cases that were uploaded in connection with it.

baumanj commented 3 years ago

Thanks for the report and the PR. It may take a bit to get around to this due to relative priorities and limited resources, but I just wanted you to know it's been seen and is in the queue.

jkcalhoun commented 3 years ago

Thanks for the report and the PR. It may take a bit to get around to this due to relative priorities and limited resources, but I just wanted you to know it's been seen and is in the queue.

Thanks for the update.

Some relevant history: some 5 or 6 years ago Mozilla requested broader interoperability for object types 0x69 and 0x6B when carried in MPEG-4, and in response a proposal was made to MPEG to define decoder specific info for those object types in order to remove the remaining barriers to broader adoption. The problem with the decoder specific info documented here, originally present in Mozilla's version of Stagefright, was known at the time, but because it nevertheless offered the best available solution to achieve Mozilla's goal of broader interoperability, it's what the standards body approved. A fix in Stagefright was described, but in the transition to mp4parse-rust that fix never made its way into a build.

Various parties can move forward on writing object types 0x69 and 0x6B with greater interoperability when the decoder specific info can be handled benignly.