From bee59bc2fcad7cfbd05f8c731f68fd5d9d897bde Mon Sep 17 00:00:00 2001 From: Kongqun Yang Date: Wed, 8 Feb 2017 16:47:59 -0800 Subject: [PATCH] Enable generate_dash_if_iop_compliant_mpd by default This will move ContentProtection element from Representation to AdaptationSet. Shaka Player already supports AdaptationSet switching urn:mpeg:dash:adaptation-set-switching:2016; ExoPlayer does not support it yet. Filed https://github.com/google/ExoPlayer/issues/2431 to track the issue. (ExoPlayer does not like having ContentProtection in Representation anyway) Closes b/34691105 Change-Id: I69d0a4d0e15a912a35c8b2686620419a28e4cc99 --- packager/app/mpd_flags.cc | 5 ++- packager/app/test/packager_test.py | 35 ++++++++++--------- .../bear-320x240-opus-vp9-cenc-golden.mpd | 16 ++++----- .../testdata/bear-640x360-av-cbc1-golden.mpd | 16 ++++----- .../testdata/bear-640x360-av-cbcs-golden.mpd | 16 ++++----- .../testdata/bear-640x360-av-cenc-golden.mpd | 16 ++++----- ...> bear-640x360-av-cenc-non-iop-golden.mpd} | 16 ++++----- .../testdata/bear-640x360-av-cens-golden.mpd | 16 ++++----- .../bear-640x360-av-live-cenc-golden.mpd | 16 ++++----- ...r-640x360-av-live-cenc-non-iop-golden.mpd} | 16 ++++----- ...r-640x360-av-live-cenc-rotation-golden.mpd | 8 ++--- ...-av-live-cenc-rotation-non-iop-golden.mpd} | 8 ++--- .../test/testdata/bear-640x360-avt-golden.mpd | 2 +- .../bear-640x360-hevc-cenc-golden.mpd | 8 ++--- .../testdata/bear-640x360-vp8-cenc-golden.mpd | 8 ++--- .../bear-640x360-vp8-cenc-webm-golden.mpd | 6 ++-- .../testdata/subtitle-english-vtt-golden.mpd | 2 +- 17 files changed, 105 insertions(+), 105 deletions(-) rename packager/app/test/testdata/{bear-640x360-av-cenc-iop-golden.mpd => bear-640x360-av-cenc-non-iop-golden.mpd} (67%) rename packager/app/test/testdata/{bear-640x360-av-live-cenc-iop-golden.mpd => bear-640x360-av-live-cenc-non-iop-golden.mpd} (71%) rename packager/app/test/testdata/{bear-640x360-av-live-cenc-rotation-iop-golden.mpd => bear-640x360-av-live-cenc-rotation-non-iop-golden.mpd} (79%) diff --git a/packager/app/mpd_flags.cc b/packager/app/mpd_flags.cc index 22cae19ea6..a6939af360 100644 --- a/packager/app/mpd_flags.cc +++ b/packager/app/mpd_flags.cc @@ -57,7 +57,6 @@ DEFINE_string(default_language, " in the manifest. This allows the " "player to choose the correct default language for the content."); DEFINE_bool(generate_dash_if_iop_compliant_mpd, - false, + true, "Try to generate DASH-IF IOPv3 compliant MPD. This is best effort " - "and does not guarantee compliance. Off by default until players " - "support IOP MPDs."); + "and does not guarantee compliance."); diff --git a/packager/app/test/packager_test.py b/packager/app/test/packager_test.py index 80b8bd7e6d..267e06fd57 100755 --- a/packager/app/test/packager_test.py +++ b/packager/app/test/packager_test.py @@ -309,13 +309,13 @@ class PackagerAppTest(unittest.TestCase): self._VerifyDecryption(self.output[0], 'bear-640x360-a-golden.mp4') self._VerifyDecryption(self.output[1], 'bear-640x360-v-golden.mp4') - def testPackageWithEncryptionAndDashIfIop(self): + def testPackageWithEncryptionAndNonDashIfIop(self): self.packager.Package( self._GetStreams(['audio', 'video']), - self._GetFlags(encryption=True, dash_if_iop=True)) + self._GetFlags(encryption=True, dash_if_iop=False)) self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4') self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4') - self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-iop-golden.mpd') + self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-non-iop-golden.mpd') def testPackageWithEncryptionAndOutputMediaInfo(self): self.packager.Package( @@ -342,22 +342,22 @@ class PackagerAppTest(unittest.TestCase): self._DiffLiveMpdGold(self.mpd_output, 'bear-640x360-av-live-cenc-golden.mpd') - def testPackageWithLiveProfileAndEncryptionAndDashIfIop(self): + def testPackageWithLiveProfileAndEncryptionAndNonDashIfIop(self): self.packager.Package( self._GetStreams(['audio', 'video'], live=True), - self._GetFlags(encryption=True, dash_if_iop=True)) + self._GetFlags(encryption=True, dash_if_iop=False)) self._DiffLiveGold(self.output[0], 'bear-640x360-a-live-cenc-golden') self._DiffLiveGold(self.output[1], 'bear-640x360-v-live-cenc-golden') self._DiffLiveMpdGold(self.mpd_output, - 'bear-640x360-av-live-cenc-iop-golden.mpd') + 'bear-640x360-av-live-cenc-non-iop-golden.mpd') - def testPackageWithLiveProfileAndEncryptionAndDashIfIopWithMultFiles(self): + def testPackageWithLiveProfileAndEncryptionAndMultFiles(self): self.packager.Package( self._GetStreams(['audio', 'video'], live=True, test_files=['bear-1280x720.mp4', 'bear-640x360.mp4', 'bear-320x180.mp4']), - self._GetFlags(encryption=True, dash_if_iop=True)) + self._GetFlags(encryption=True)) self._DiffLiveGold(self.output[2], 'bear-640x360-a-live-cenc-golden') self._DiffLiveGold(self.output[3], 'bear-640x360-v-live-cenc-golden') # Mpd cannot be validated right now since we don't generate determinstic @@ -375,18 +375,19 @@ class PackagerAppTest(unittest.TestCase): self._DiffLiveMpdGold(self.mpd_output, 'bear-640x360-av-live-cenc-rotation-golden.mpd') - def testPackageWithLiveProfileAndKeyRotationAndDashIfIop(self): + def testPackageWithLiveProfileAndKeyRotationAndNonDashIfIop(self): self.packager.Package( self._GetStreams(['audio', 'video'], live=True), self._GetFlags(encryption=True, key_rotation=True, - dash_if_iop=True)) + dash_if_iop=False)) self._DiffLiveGold(self.output[0], 'bear-640x360-a-live-cenc-rotation-golden') self._DiffLiveGold(self.output[1], 'bear-640x360-v-live-cenc-rotation-golden') - self._DiffLiveMpdGold(self.mpd_output, - 'bear-640x360-av-live-cenc-rotation-iop-golden.mpd') + self._DiffLiveMpdGold( + self.mpd_output, + 'bear-640x360-av-live-cenc-rotation-non-iop-golden.mpd') @unittest.skipUnless(test_env.has_aes_flags, 'Requires AES credentials.') def testWidevineEncryptionWithAes(self): @@ -398,8 +399,8 @@ class PackagerAppTest(unittest.TestCase): self._AssertStreamInfo(self.output[1], 'is_encrypted: true') @unittest.skipUnless(test_env.has_aes_flags, 'Requires AES credentials.') - def testWidevineEncryptionWithAesAndDashIfIopWithMultFiles(self): - flags = self._GetFlags(widevine_encryption=True, dash_if_iop=True) + def testWidevineEncryptionWithAesAndMultFiles(self): + flags = self._GetFlags(widevine_encryption=True) flags += ['--aes_signing_key=' + test_env.options.aes_signing_key, '--aes_signing_iv=' + test_env.options.aes_signing_iv] self.packager.Package( @@ -489,7 +490,7 @@ class PackagerAppTest(unittest.TestCase): random_iv=False, widevine_encryption=False, key_rotation=False, - dash_if_iop=False, + dash_if_iop=True, output_media_info=False, output_hls=False, use_fake_clock=True): @@ -518,8 +519,8 @@ class PackagerAppTest(unittest.TestCase): if key_rotation: flags.append('--crypto_period_duration=1') - if dash_if_iop: - flags.append('--generate_dash_if_iop_compliant_mpd') + if not dash_if_iop: + flags.append('--generate_dash_if_iop_compliant_mpd=false') if output_media_info: flags.append('--output_media_info') elif output_hls: diff --git a/packager/app/test/testdata/bear-320x240-opus-vp9-cenc-golden.mpd b/packager/app/test/testdata/bear-320x240-opus-vp9-cenc-golden.mpd index a2b01241cb..576e963532 100644 --- a/packager/app/test/testdata/bear-320x240-opus-vp9-cenc-golden.mpd +++ b/packager/app/test/testdata/bear-320x240-opus-vp9-cenc-golden.mpd @@ -3,12 +3,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_audio.mp4 @@ -16,11 +16,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-cbc1-golden.mpd b/packager/app/test/testdata/bear-640x360-av-cbc1-golden.mpd index 74b497555e..9ec1f841c3 100644 --- a/packager/app/test/testdata/bear-640x360-av-cbc1-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-cbc1-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 @@ -15,12 +15,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_audio.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-cbcs-golden.mpd b/packager/app/test/testdata/bear-640x360-av-cbcs-golden.mpd index e0e82abcbf..1e6f53721f 100644 --- a/packager/app/test/testdata/bear-640x360-av-cbcs-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-cbcs-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 @@ -15,12 +15,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_audio.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-av-cenc-golden.mpd index a8feca0925..dee44d5362 100644 --- a/packager/app/test/testdata/bear-640x360-av-cenc-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-cenc-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 @@ -15,12 +15,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_audio.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-cenc-iop-golden.mpd b/packager/app/test/testdata/bear-640x360-av-cenc-non-iop-golden.mpd similarity index 67% rename from packager/app/test/testdata/bear-640x360-av-cenc-iop-golden.mpd rename to packager/app/test/testdata/bear-640x360-av-cenc-non-iop-golden.mpd index dee44d5362..a8feca0925 100644 --- a/packager/app/test/testdata/bear-640x360-av-cenc-iop-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-cenc-non-iop-golden.mpd @@ -3,11 +3,11 @@ - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + output_video.mp4 @@ -15,12 +15,12 @@ - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + output_audio.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-cens-golden.mpd b/packager/app/test/testdata/bear-640x360-av-cens-golden.mpd index c11c8016b8..d7254c5b27 100644 --- a/packager/app/test/testdata/bear-640x360-av-cens-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-cens-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 @@ -15,12 +15,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_audio.mp4 diff --git a/packager/app/test/testdata/bear-640x360-av-live-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-av-live-cenc-golden.mpd index d6c6df6147..74c7f215b7 100644 --- a/packager/app/test/testdata/bear-640x360-av-live-cenc-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-live-cenc-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - @@ -17,12 +17,12 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - diff --git a/packager/app/test/testdata/bear-640x360-av-live-cenc-iop-golden.mpd b/packager/app/test/testdata/bear-640x360-av-live-cenc-non-iop-golden.mpd similarity index 71% rename from packager/app/test/testdata/bear-640x360-av-live-cenc-iop-golden.mpd rename to packager/app/test/testdata/bear-640x360-av-live-cenc-non-iop-golden.mpd index 74c7f215b7..d6c6df6147 100644 --- a/packager/app/test/testdata/bear-640x360-av-live-cenc-iop-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-live-cenc-non-iop-golden.mpd @@ -3,11 +3,11 @@ - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + @@ -17,12 +17,12 @@ - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + diff --git a/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-golden.mpd b/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-golden.mpd index acac1aef23..ee85437b08 100644 --- a/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-golden.mpd @@ -3,9 +3,9 @@ + + - - @@ -15,10 +15,10 @@ + + - - diff --git a/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-iop-golden.mpd b/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-non-iop-golden.mpd similarity index 79% rename from packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-iop-golden.mpd rename to packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-non-iop-golden.mpd index ee85437b08..acac1aef23 100644 --- a/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-iop-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-av-live-cenc-rotation-non-iop-golden.mpd @@ -3,9 +3,9 @@ - - + + @@ -15,10 +15,10 @@ - - + + diff --git a/packager/app/test/testdata/bear-640x360-avt-golden.mpd b/packager/app/test/testdata/bear-640x360-avt-golden.mpd index 1247ce8bb5..3a247b791a 100644 --- a/packager/app/test/testdata/bear-640x360-avt-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-avt-golden.mpd @@ -2,7 +2,7 @@ - + output_text.vtt diff --git a/packager/app/test/testdata/bear-640x360-hevc-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-hevc-cenc-golden.mpd index 332dea306a..0382a2a785 100644 --- a/packager/app/test/testdata/bear-640x360-hevc-cenc-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-hevc-cenc-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 diff --git a/packager/app/test/testdata/bear-640x360-vp8-cenc-golden.mpd b/packager/app/test/testdata/bear-640x360-vp8-cenc-golden.mpd index fcad14159d..199300a080 100644 --- a/packager/app/test/testdata/bear-640x360-vp8-cenc-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-vp8-cenc-golden.mpd @@ -3,11 +3,11 @@ + + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.mp4 diff --git a/packager/app/test/testdata/bear-640x360-vp8-cenc-webm-golden.mpd b/packager/app/test/testdata/bear-640x360-vp8-cenc-webm-golden.mpd index 10c96f78a4..fd1217f61b 100644 --- a/packager/app/test/testdata/bear-640x360-vp8-cenc-webm-golden.mpd +++ b/packager/app/test/testdata/bear-640x360-vp8-cenc-webm-golden.mpd @@ -3,10 +3,10 @@ + + AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== + - - AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA== - output_video.webm diff --git a/packager/app/test/testdata/subtitle-english-vtt-golden.mpd b/packager/app/test/testdata/subtitle-english-vtt-golden.mpd index 7ac6252878..4cf05f3613 100644 --- a/packager/app/test/testdata/subtitle-english-vtt-golden.mpd +++ b/packager/app/test/testdata/subtitle-english-vtt-golden.mpd @@ -2,7 +2,7 @@ - + output_text.vtt