From 07f780dae19d7953bd27b646d9410ed68b4b580e Mon Sep 17 00:00:00 2001 From: Roy-Funderburk <152216046+Roy-Funderburk@users.noreply.github.com> Date: Wed, 14 Feb 2024 23:03:03 -0800 Subject: [PATCH] feat: This patch adds support for DTS:X Profile 2 audio in MP4 files. (#1303) feat: Added audio specific configuration udts box to AudioSampleEntry for MP4 input/output. DASH tags for DTS audio as specified in ETSI TS 103 491 and ETSI TS 102 114. Closes #1301 --------- Co-authored-by: Cosmin Stejerean --- packager/app/test/packager_test.py | 7 +++ .../testdata/dtsx-dash/bear-dtsx-audio.mp4 | Bin 0 -> 89544 bytes .../app/test/testdata/dtsx-dash/output.mpd | 15 +++++ packager/media/base/audio_stream_info.cc | 2 + packager/media/base/fourccs.h | 6 +- packager/media/base/stream_info.h | 1 + packager/media/codecs/CMakeLists.txt | 1 + .../media/codecs/dts_audio_specific_config.cc | 28 +++++++++ .../media/codecs/dts_audio_specific_config.h | 24 ++++++++ .../dts_audio_specific_config_unittest.cc | 37 ++++++++++++ .../media/event/muxer_listener_internal.cc | 11 ++++ .../event/muxer_listener_internal_unittest.cc | 18 ++++++ .../media/event/muxer_listener_test_helper.cc | 48 +++++++++++++++ .../media/event/muxer_listener_test_helper.h | 34 +++++++++++ packager/media/formats/mp4/box_definitions.cc | 24 +++++++- packager/media/formats/mp4/box_definitions.h | 7 +++ .../formats/mp4/box_definitions_unittest.cc | 24 ++++++++ .../media/formats/mp4/mp4_media_parser.cc | 5 ++ packager/media/formats/mp4/mp4_muxer.cc | 5 ++ packager/media/test/data/README | 8 +++ packager/media/test/data/bear-dtsx.mp4 | Bin 0 -> 88497 bytes packager/mpd/base/xml/xml_node.cc | 15 +++++ packager/mpd/base/xml/xml_node_unittest.cc | 56 ++++++++++++++++++ 23 files changed, 373 insertions(+), 3 deletions(-) create mode 100644 packager/app/test/testdata/dtsx-dash/bear-dtsx-audio.mp4 create mode 100644 packager/app/test/testdata/dtsx-dash/output.mpd create mode 100644 packager/media/codecs/dts_audio_specific_config.cc create mode 100644 packager/media/codecs/dts_audio_specific_config.h create mode 100644 packager/media/codecs/dts_audio_specific_config_unittest.cc create mode 100644 packager/media/test/data/bear-dtsx.mp4 diff --git a/packager/app/test/packager_test.py b/packager/app/test/packager_test.py index 032473e970..cc264c95a5 100755 --- a/packager/app/test/packager_test.py +++ b/packager/app/test/packager_test.py @@ -927,6 +927,13 @@ class PackagerFunctionalTest(PackagerAppTest): self._GetFlags(output_dash=True)) self._CheckTestResults('acc-he') + def testDtsx(self): + self.assertPackageSuccess( + self._GetStreams( + ['audio'], test_files=['bear-dtsx.mp4']), + self._GetFlags(output_dash=True)) + self._CheckTestResults('dtsx-dash') + def testVideoAudioWebVTT(self): audio_video_streams = self._GetStreams(['audio', 'video']) text_stream = self._GetStreams(['text'], test_files=['bear-english.vtt']) diff --git a/packager/app/test/testdata/dtsx-dash/bear-dtsx-audio.mp4 b/packager/app/test/testdata/dtsx-dash/bear-dtsx-audio.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8b0bbd767e388bd2c077128a018b4acdede66fd8 GIT binary patch literal 89544 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 z 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