Reduce test file sizes and remove unused test files
Change-Id: I7e3b24e92b2a16de857e0424c85232cc31444182
This commit is contained in:
parent
d0fb8ced4b
commit
93e6c4fc92
|
@ -37,10 +37,21 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
|
|
||||||
def testDumpStreamInfo(self):
|
def testDumpStreamInfo(self):
|
||||||
input = os.path.join(test_env.SRC_DIR, 'packager', 'media', 'test', 'data',
|
input = os.path.join(test_env.SRC_DIR, 'packager', 'media', 'test', 'data',
|
||||||
'bear-1280x720.mp4')
|
'bear-640x360.mp4')
|
||||||
stream_info = self.packager.DumpStreamInfo(input)
|
stream_info = self.packager.DumpStreamInfo(input)
|
||||||
expected_stream_info = ('Found 2 stream(s).\n'
|
expected_stream_info = ('Found 2 stream(s).\n'
|
||||||
'Stream [0] type: Audio\n'
|
'Stream [0] type: Video\n'
|
||||||
|
' codec_string: avc1.64001e\n'
|
||||||
|
' time_scale: 30000\n'
|
||||||
|
' duration: 82082 (2.7 seconds)\n'
|
||||||
|
' is_encrypted: false\n'
|
||||||
|
' codec: H264\n'
|
||||||
|
' width: 640\n'
|
||||||
|
' height: 360\n'
|
||||||
|
' pixel aspect ratio: 1:1\n'
|
||||||
|
' trick_play_rate: 0\n'
|
||||||
|
' nalu_length_size: 4\n\n'
|
||||||
|
'Stream [1] type: Audio\n'
|
||||||
' codec_string: mp4a.40.2\n'
|
' codec_string: mp4a.40.2\n'
|
||||||
' time_scale: 44100\n'
|
' time_scale: 44100\n'
|
||||||
' duration: 121856 (2.8 seconds)\n'
|
' duration: 121856 (2.8 seconds)\n'
|
||||||
|
@ -49,40 +60,29 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
' sample_bits: 16\n'
|
' sample_bits: 16\n'
|
||||||
' num_channels: 2\n'
|
' num_channels: 2\n'
|
||||||
' sampling_frequency: 44100\n'
|
' sampling_frequency: 44100\n'
|
||||||
' language: und\n\n'
|
' language: und\n')
|
||||||
'Stream [1] type: Video\n'
|
|
||||||
' codec_string: avc1.64001f\n'
|
|
||||||
' time_scale: 30000\n'
|
|
||||||
' duration: 82082 (2.7 seconds)\n'
|
|
||||||
' is_encrypted: false\n'
|
|
||||||
' codec: H264\n'
|
|
||||||
' width: 1280\n'
|
|
||||||
' height: 720\n'
|
|
||||||
' pixel aspect ratio: 1:1\n'
|
|
||||||
' trick_play_rate: 0\n'
|
|
||||||
' nalu_length_size: 4')
|
|
||||||
self.assertIn(expected_stream_info, stream_info,
|
self.assertIn(expected_stream_info, stream_info,
|
||||||
"\nExpecting: \n %s\n\nBut seeing: \n%s" % (
|
"\nExpecting: \n %s\n\nBut seeing: \n%s" % (
|
||||||
expected_stream_info, stream_info))
|
expected_stream_info, stream_info))
|
||||||
|
|
||||||
def testPackageFirstStream(self):
|
def testPackageFirstStream(self):
|
||||||
self.packager.Package(self._GetStreams(['0']), self._GetFlags())
|
self.packager.Package(self._GetStreams(['0']), self._GetFlags())
|
||||||
self._DiffGold(self.output[0], 'bear-1280x720-a-golden.mp4')
|
self._DiffGold(self.output[0], 'bear-640x360-v-golden.mp4')
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-a-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-v-golden.mpd')
|
||||||
|
|
||||||
def testPackage(self):
|
def testPackage(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
self._GetFlags())
|
self._GetFlags())
|
||||||
self._DiffGold(self.output[0], 'bear-1280x720-a-golden.mp4')
|
self._DiffGold(self.output[0], 'bear-640x360-a-golden.mp4')
|
||||||
self._DiffGold(self.output[1], 'bear-1280x720-v-golden.mp4')
|
self._DiffGold(self.output[1], 'bear-640x360-v-golden.mp4')
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-av-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-av-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithEncryption(self):
|
def testPackageWithEncryption(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
self._GetFlags(encryption=True))
|
self._GetFlags(encryption=True))
|
||||||
self._DiffGold(self.output[0], 'bear-1280x720-a-cenc-golden.mp4')
|
self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
|
||||||
self._DiffGold(self.output[1], 'bear-1280x720-v-cenc-golden.mp4')
|
self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-av-cenc-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithEncryptionAndRandomIv(self):
|
def testPackageWithEncryptionAndRandomIv(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
|
@ -92,10 +92,10 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
# The outputs are encrypted with random iv, so they are not the same as
|
# The outputs are encrypted with random iv, so they are not the same as
|
||||||
# golden files.
|
# golden files.
|
||||||
self.assertFalse(self._CompareWithGold(
|
self.assertFalse(self._CompareWithGold(
|
||||||
self.output[0], 'bear-1280x720-a-cenc-golden.mp4'))
|
self.output[0], 'bear-640x360-a-cenc-golden.mp4'))
|
||||||
self.assertFalse(self._CompareWithGold(
|
self.assertFalse(self._CompareWithGold(
|
||||||
self.output[1], 'bear-1280x720-v-cenc-golden.mp4'))
|
self.output[1], 'bear-640x360-v-cenc-golden.mp4'))
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-av-cenc-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithEncryptionAndRealClock(self):
|
def testPackageWithEncryptionAndRealClock(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
|
@ -105,72 +105,72 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
# The outputs are generated with real clock, so they are not the same as
|
# The outputs are generated with real clock, so they are not the same as
|
||||||
# golden files.
|
# golden files.
|
||||||
self.assertFalse(self._CompareWithGold(
|
self.assertFalse(self._CompareWithGold(
|
||||||
self.output[0], 'bear-1280x720-a-cenc-golden.mp4'))
|
self.output[0], 'bear-640x360-a-cenc-golden.mp4'))
|
||||||
self.assertFalse(self._CompareWithGold(
|
self.assertFalse(self._CompareWithGold(
|
||||||
self.output[1], 'bear-1280x720-v-cenc-golden.mp4'))
|
self.output[1], 'bear-640x360-v-cenc-golden.mp4'))
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-av-cenc-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithEncryptionAndDashIfIop(self):
|
def testPackageWithEncryptionAndDashIfIop(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
self._GetFlags(encryption=True, dash_if_iop=True))
|
self._GetFlags(encryption=True, dash_if_iop=True))
|
||||||
self._DiffGold(self.output[0], 'bear-1280x720-a-cenc-golden.mp4')
|
self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
|
||||||
self._DiffGold(self.output[1], 'bear-1280x720-v-cenc-golden.mp4')
|
self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
|
||||||
self._DiffGold(self.mpd_output, 'bear-1280x720-av-cenc-iop-golden.mpd')
|
self._DiffGold(self.mpd_output, 'bear-640x360-av-cenc-iop-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithEncryptionAndOutputMediaInfo(self):
|
def testPackageWithEncryptionAndOutputMediaInfo(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video']),
|
self.packager.Package(self._GetStreams(['audio', 'video']),
|
||||||
self._GetFlags(encryption=True,
|
self._GetFlags(encryption=True,
|
||||||
output_media_info=True))
|
output_media_info=True))
|
||||||
self._DiffGold(self.output[0], 'bear-1280x720-a-cenc-golden.mp4')
|
self._DiffGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
|
||||||
self._DiffGold(self.output[1], 'bear-1280x720-v-cenc-golden.mp4')
|
self._DiffGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
|
||||||
self._DiffMediaInfoGold(self.output[0], 'bear-1280x720-a-cenc-golden.mp4')
|
self._DiffMediaInfoGold(self.output[0], 'bear-640x360-a-cenc-golden.mp4')
|
||||||
self._DiffMediaInfoGold(self.output[1], 'bear-1280x720-v-cenc-golden.mp4')
|
self._DiffMediaInfoGold(self.output[1], 'bear-640x360-v-cenc-golden.mp4')
|
||||||
|
|
||||||
def testPackageWithLiveProfile(self):
|
def testPackageWithLiveProfile(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
||||||
self._GetFlags(live=True))
|
self._GetFlags(live=True))
|
||||||
self._DiffLiveGold(self.output[0], 'bear-1280x720-a-live-golden')
|
self._DiffLiveGold(self.output[0], 'bear-640x360-a-live-golden')
|
||||||
self._DiffLiveGold(self.output[1], 'bear-1280x720-v-live-golden')
|
self._DiffLiveGold(self.output[1], 'bear-640x360-v-live-golden')
|
||||||
self._DiffLiveMpdGold(self.mpd_output, 'bear-1280x720-av-live-golden.mpd')
|
self._DiffLiveMpdGold(self.mpd_output, 'bear-640x360-av-live-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithLiveProfileAndEncryption(self):
|
def testPackageWithLiveProfileAndEncryption(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
||||||
self._GetFlags(encryption=True, live=True))
|
self._GetFlags(encryption=True, live=True))
|
||||||
self._DiffLiveGold(self.output[0], 'bear-1280x720-a-live-cenc-golden')
|
self._DiffLiveGold(self.output[0], 'bear-640x360-a-live-cenc-golden')
|
||||||
self._DiffLiveGold(self.output[1], 'bear-1280x720-v-live-cenc-golden')
|
self._DiffLiveGold(self.output[1], 'bear-640x360-v-live-cenc-golden')
|
||||||
self._DiffLiveMpdGold(self.mpd_output,
|
self._DiffLiveMpdGold(self.mpd_output,
|
||||||
'bear-1280x720-av-live-cenc-golden.mpd')
|
'bear-640x360-av-live-cenc-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithLiveProfileAndEncryptionAndDashIfIop(self):
|
def testPackageWithLiveProfileAndEncryptionAndDashIfIop(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
||||||
self._GetFlags(encryption=True, live=True,
|
self._GetFlags(encryption=True, live=True,
|
||||||
dash_if_iop=True))
|
dash_if_iop=True))
|
||||||
self._DiffLiveGold(self.output[0], 'bear-1280x720-a-live-cenc-golden')
|
self._DiffLiveGold(self.output[0], 'bear-640x360-a-live-cenc-golden')
|
||||||
self._DiffLiveGold(self.output[1], 'bear-1280x720-v-live-cenc-golden')
|
self._DiffLiveGold(self.output[1], 'bear-640x360-v-live-cenc-golden')
|
||||||
self._DiffLiveMpdGold(self.mpd_output,
|
self._DiffLiveMpdGold(self.mpd_output,
|
||||||
'bear-1280x720-av-live-cenc-iop-golden.mpd')
|
'bear-640x360-av-live-cenc-iop-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithLiveProfileAndKeyRotation(self):
|
def testPackageWithLiveProfileAndKeyRotation(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
||||||
self._GetFlags(encryption=True, key_rotation=True,
|
self._GetFlags(encryption=True, key_rotation=True,
|
||||||
live=True))
|
live=True))
|
||||||
self._DiffLiveGold(self.output[0],
|
self._DiffLiveGold(self.output[0],
|
||||||
'bear-1280x720-a-live-cenc-rotation-golden')
|
'bear-640x360-a-live-cenc-rotation-golden')
|
||||||
self._DiffLiveGold(self.output[1],
|
self._DiffLiveGold(self.output[1],
|
||||||
'bear-1280x720-v-live-cenc-rotation-golden')
|
'bear-640x360-v-live-cenc-rotation-golden')
|
||||||
self._DiffLiveMpdGold(self.mpd_output,
|
self._DiffLiveMpdGold(self.mpd_output,
|
||||||
'bear-1280x720-av-live-cenc-rotation-golden.mpd')
|
'bear-640x360-av-live-cenc-rotation-golden.mpd')
|
||||||
|
|
||||||
def testPackageWithLiveProfileAndKeyRotationAndDashIfIop(self):
|
def testPackageWithLiveProfileAndKeyRotationAndDashIfIop(self):
|
||||||
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
self.packager.Package(self._GetStreams(['audio', 'video'], live=True),
|
||||||
self._GetFlags(encryption=True, key_rotation=True,
|
self._GetFlags(encryption=True, key_rotation=True,
|
||||||
live=True, dash_if_iop=True))
|
live=True, dash_if_iop=True))
|
||||||
self._DiffLiveGold(self.output[0],
|
self._DiffLiveGold(self.output[0],
|
||||||
'bear-1280x720-a-live-cenc-rotation-golden')
|
'bear-640x360-a-live-cenc-rotation-golden')
|
||||||
self._DiffLiveGold(self.output[1],
|
self._DiffLiveGold(self.output[1],
|
||||||
'bear-1280x720-v-live-cenc-rotation-golden')
|
'bear-640x360-v-live-cenc-rotation-golden')
|
||||||
self._DiffLiveMpdGold(self.mpd_output,
|
self._DiffLiveMpdGold(self.mpd_output,
|
||||||
'bear-1280x720-av-live-cenc-rotation-iop-golden.mpd')
|
'bear-640x360-av-live-cenc-rotation-iop-golden.mpd')
|
||||||
|
|
||||||
@unittest.skipUnless(test_env.has_aes_flags, 'Requires AES credentials.')
|
@unittest.skipUnless(test_env.has_aes_flags, 'Requires AES credentials.')
|
||||||
def testWidevineEncryptionWithAes(self):
|
def testWidevineEncryptionWithAes(self):
|
||||||
|
@ -204,18 +204,17 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
|
|
||||||
test_data_dir = os.path.join(
|
test_data_dir = os.path.join(
|
||||||
test_env.SRC_DIR, 'packager', 'media', 'test', 'data')
|
test_env.SRC_DIR, 'packager', 'media', 'test', 'data')
|
||||||
|
input = os.path.join(test_data_dir, 'bear-640x360.mp4')
|
||||||
for stream_descriptor in stream_descriptors:
|
for stream_descriptor in stream_descriptors:
|
||||||
if live:
|
if live:
|
||||||
# This is still output prefix actually.
|
# This is still output prefix actually.
|
||||||
output = '%s_%s' % (self.output_prefix, stream_descriptor)
|
output = '%s_%s' % (self.output_prefix, stream_descriptor)
|
||||||
stream = ('input=%s,stream=%s,init_segment=%s-init.mp4,' +
|
stream = ('input=%s,stream=%s,init_segment=%s-init.mp4,' +
|
||||||
'segment_template=%s-$Number$.m4s')
|
'segment_template=%s-$Number$.m4s')
|
||||||
input = os.path.join(test_data_dir, 'bear-1280x720-av_frag.mp4')
|
|
||||||
streams.append(stream % (input, stream_descriptor, output, output))
|
streams.append(stream % (input, stream_descriptor, output, output))
|
||||||
else:
|
else:
|
||||||
output = '%s_%s.mp4' % (self.output_prefix, stream_descriptor)
|
output = '%s_%s.mp4' % (self.output_prefix, stream_descriptor)
|
||||||
stream = 'input=%s,stream=%s,output=%s'
|
stream = 'input=%s,stream=%s,output=%s'
|
||||||
input = os.path.join(test_data_dir, 'bear-1280x720.mp4')
|
|
||||||
streams.append(stream % (input, stream_descriptor, output))
|
streams.append(stream % (input, stream_descriptor, output))
|
||||||
self.output.append(output)
|
self.output.append(output)
|
||||||
return streams
|
return streams
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,18 +1,18 @@
|
||||||
bandwidth: 77870
|
bandwidth: 126684
|
||||||
audio_info {
|
audio_info {
|
||||||
codec: "mp4a.40.2"
|
codec: "mp4a.40.2"
|
||||||
sampling_frequency: 44100
|
sampling_frequency: 44100
|
||||||
time_scale: 44100
|
time_scale: 44100
|
||||||
num_channels: 2
|
num_channels: 2
|
||||||
decoder_config: "\022\020"
|
decoder_config: "\022\020V\345\000"
|
||||||
}
|
}
|
||||||
init_range {
|
init_range {
|
||||||
begin: 0
|
begin: 0
|
||||||
end: 810
|
end: 816
|
||||||
}
|
}
|
||||||
index_range {
|
index_range {
|
||||||
begin: 811
|
begin: 817
|
||||||
end: 878
|
end: 884
|
||||||
}
|
}
|
||||||
media_file_name: "place_holder"
|
media_file_name: "place_holder"
|
||||||
media_duration_seconds: 2.7631745
|
media_duration_seconds: 2.7631745
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
packager/app/test/testdata/bear-640x360-a-live-cenc-rotation-golden-init.mp4
vendored
Normal file
BIN
packager/app/test/testdata/bear-640x360-a-live-cenc-rotation-golden-init.mp4
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,28 +1,28 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="77870" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="882409" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
|
</ContentProtection>
|
||||||
|
<BaseURL>output_video.mp4</BaseURL>
|
||||||
|
<SegmentBase indexRange="941-1008" timescale="30000">
|
||||||
|
<Initialization range="0-940"/>
|
||||||
|
</SegmentBase>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
||||||
|
<Representation id="1" bandwidth="126684" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<BaseURL>output_audio.mp4</BaseURL>
|
<BaseURL>output_audio.mp4</BaseURL>
|
||||||
<SegmentBase indexRange="811-878" timescale="44100">
|
<SegmentBase indexRange="817-884" timescale="44100">
|
||||||
<Initialization range="0-810"/>
|
<Initialization range="0-816"/>
|
||||||
</SegmentBase>
|
|
||||||
</Representation>
|
|
||||||
</AdaptationSet>
|
|
||||||
<AdaptationSet id="1" contentType="video" width="1280" height="720" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
|
||||||
<Representation id="1" bandwidth="2016732" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
|
||||||
</ContentProtection>
|
|
||||||
<BaseURL>output_video.mp4</BaseURL>
|
|
||||||
<SegmentBase indexRange="939-982" timescale="30000">
|
|
||||||
<Initialization range="0-938"/>
|
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
|
@ -1,28 +1,28 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="0" bandwidth="77870" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="882409" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<BaseURL>output_video.mp4</BaseURL>
|
||||||
<BaseURL>output_audio.mp4</BaseURL>
|
<SegmentBase indexRange="941-1008" timescale="30000">
|
||||||
<SegmentBase indexRange="811-878" timescale="44100">
|
<Initialization range="0-940"/>
|
||||||
<Initialization range="0-810"/>
|
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="video" width="1280" height="720" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="1" bandwidth="2016732" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="1" bandwidth="126684" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<BaseURL>output_video.mp4</BaseURL>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentBase indexRange="939-982" timescale="30000">
|
<BaseURL>output_audio.mp4</BaseURL>
|
||||||
<Initialization range="0-938"/>
|
<SegmentBase indexRange="817-884" timescale="44100">
|
||||||
|
<Initialization range="0-816"/>
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
|
@ -1,20 +1,20 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="77283" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<BaseURL>output_video.mp4</BaseURL>
|
||||||
<BaseURL>output_audio.mp4</BaseURL>
|
<SegmentBase indexRange="677-744" timescale="30000">
|
||||||
<SegmentBase indexRange="608-675" timescale="44100">
|
<Initialization range="0-676"/>
|
||||||
<Initialization range="0-607"/>
|
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="video" width="1280" height="720" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="2015963" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="1" bandwidth="126087" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<BaseURL>output_video.mp4</BaseURL>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentBase indexRange="676-719" timescale="30000">
|
<BaseURL>output_audio.mp4</BaseURL>
|
||||||
<Initialization range="0-675"/>
|
<SegmentBase indexRange="611-678" timescale="44100">
|
||||||
|
<Initialization range="0-610"/>
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="2143213" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="0" bandwidth="872999" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="73920" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="121855" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
|
@ -1,12 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="31323334-3536-3738-3930-313233343536"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="0" bandwidth="2143213" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="0" bandwidth="872999" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
<S t="2002" d="30030" r="1"/>
|
<S t="2002" d="30030" r="1"/>
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
|
||||||
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
<cenc:pssh>AAAAMHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABAxMjM0NTY3ODkwMTIzNDU2</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="1" bandwidth="73920" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="121855" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="2143647" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="0" bandwidth="873432" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
||||||
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="74365" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="122303" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
|
@ -1,10 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
||||||
<Representation id="0" bandwidth="2143647" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="0" bandwidth="873432" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
<S t="2002" d="30030" r="1"/>
|
<S t="2002" d="30030" r="1"/>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
||||||
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
<ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="00000000-0000-0000-0000-000000000000"/>
|
||||||
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
|
||||||
<Representation id="1" bandwidth="74365" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="122303" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" availabilityStartTime="place_holder" minimumUpdatePeriod="PT5S" timeShiftBufferDepth="PT1800S">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" contentType="video" width="1280" height="720" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="2143213" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720" frameRate="30000/1001">
|
<Representation id="0" bandwidth="872999" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="output_video-init.mp4" media="output_video-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
<S t="2002" d="30030" r="1"/>
|
<S t="2002" d="30030" r="1"/>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" segmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="73920" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="121855" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="44100" initialization="output_audio-init.mp4" media="output_audio-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
Binary file not shown.
|
@ -1,21 +1,21 @@
|
||||||
bandwidth: 2016732
|
bandwidth: 882409
|
||||||
video_info {
|
video_info {
|
||||||
codec: "avc1.64001f"
|
codec: "avc1.64001e"
|
||||||
width: 1280
|
width: 640
|
||||||
height: 720
|
height: 360
|
||||||
time_scale: 30000
|
time_scale: 30000
|
||||||
frame_duration: 1001
|
frame_duration: 1001
|
||||||
decoder_config: "\001d\000\037\377\341\000\031gd\000\037\2544\345\001@\026\354\004@\000\000\031\000\000\005\332\243\306\014E\200\001\000\005h\356\262\310\260"
|
decoder_config: "\001d\000\036\377\341\000\031gd\000\036\254\331@\240/\371p\021\000\000\003\003\351\000\000\352`\017\026-\226\001\000\006h\353\343\313\"\300"
|
||||||
pixel_width: 1
|
pixel_width: 1
|
||||||
pixel_height: 1
|
pixel_height: 1
|
||||||
}
|
}
|
||||||
init_range {
|
init_range {
|
||||||
begin: 0
|
begin: 0
|
||||||
end: 938
|
end: 940
|
||||||
}
|
}
|
||||||
index_range {
|
index_range {
|
||||||
begin: 939
|
begin: 941
|
||||||
end: 982
|
end: 1008
|
||||||
}
|
}
|
||||||
media_file_name: "place_holder"
|
media_file_name: "place_holder"
|
||||||
media_duration_seconds: 2.7360666
|
media_duration_seconds: 2.7360666
|
Binary file not shown.
|
@ -1,12 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.763174533843994S">
|
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT2.7360665798187256S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="77283" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
|
||||||
<BaseURL>output_0.mp4</BaseURL>
|
<BaseURL>output_0.mp4</BaseURL>
|
||||||
<SegmentBase indexRange="608-675" timescale="44100">
|
<SegmentBase indexRange="677-744" timescale="30000">
|
||||||
<Initialization range="0-607"/>
|
<Initialization range="0-676"/>
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
packager/app/test/testdata/bear-640x360-v-live-cenc-rotation-golden-init.mp4
vendored
Normal file
BIN
packager/app/test/testdata/bear-640x360-v-live-cenc-rotation-golden-init.mp4
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -127,24 +127,19 @@ TEST(ContainerNamesTest, FileCheckOGG) {
|
||||||
|
|
||||||
TEST(ContainerNamesTest, FileCheckWAV) {
|
TEST(ContainerNamesTest, FileCheckWAV) {
|
||||||
TestFile(CONTAINER_WAV, GetTestDataFilePath("4ch.wav"));
|
TestFile(CONTAINER_WAV, GetTestDataFilePath("4ch.wav"));
|
||||||
TestFile(CONTAINER_WAV, GetTestDataFilePath("sfx_f32le.wav"));
|
|
||||||
TestFile(CONTAINER_WAV, GetTestDataFilePath("sfx_s16le.wav"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ContainerNamesTest, FileCheckMOV) {
|
TEST(ContainerNamesTest, FileCheckMOV) {
|
||||||
TestFile(CONTAINER_MOV, GetTestDataFilePath("bear-1280x720.mp4"));
|
TestFile(CONTAINER_MOV, GetTestDataFilePath("bear-640x360.mp4"));
|
||||||
TestFile(CONTAINER_MOV, GetTestDataFilePath("sfx.m4a"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ContainerNamesTest, FileCheckWEBM) {
|
TEST(ContainerNamesTest, FileCheckWEBM) {
|
||||||
TestFile(CONTAINER_WEBM, GetTestDataFilePath("bear-320x240.webm"));
|
TestFile(CONTAINER_WEBM, GetTestDataFilePath("bear-640x360.webm"));
|
||||||
TestFile(CONTAINER_WEBM, GetTestDataFilePath("no_streams.webm"));
|
TestFile(CONTAINER_WEBM, GetTestDataFilePath("no_streams.webm"));
|
||||||
TestFile(CONTAINER_WEBM, GetTestDataFilePath("webm_ebml_element"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ContainerNamesTest, FileCheckMP3) {
|
TEST(ContainerNamesTest, FileCheckMP3) {
|
||||||
TestFile(CONTAINER_MP3, GetTestDataFilePath("id3_test.mp3"));
|
TestFile(CONTAINER_MP3, GetTestDataFilePath("id3_test.mp3"));
|
||||||
TestFile(CONTAINER_MP3, GetTestDataFilePath("sfx.mp3"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(ContainerNamesTest, FileCheckAC3) {
|
TEST(ContainerNamesTest, FileCheckAC3) {
|
||||||
|
@ -211,9 +206,6 @@ TEST(ContainerNamesTest, FileCheckSWF) {
|
||||||
TEST(ContainerNamesTest, FileCheckUNKNOWN) {
|
TEST(ContainerNamesTest, FileCheckUNKNOWN) {
|
||||||
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("ten_byte_file"));
|
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("ten_byte_file"));
|
||||||
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("README"));
|
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("README"));
|
||||||
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("bali_640x360_P422.yuv"));
|
|
||||||
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("bali_640x360_RGB24.rgb"));
|
|
||||||
TestFile(CONTAINER_UNKNOWN, GetTestDataFilePath("webm_vp8_track_entry"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace media
|
} // namespace media
|
||||||
|
|
|
@ -105,7 +105,7 @@ class MP4MediaParserTest : public testing::Test {
|
||||||
TEST_F(MP4MediaParserTest, UnalignedAppend) {
|
TEST_F(MP4MediaParserTest, UnalignedAppend) {
|
||||||
// Test small, non-segment-aligned appends (small enough to exercise
|
// Test small, non-segment-aligned appends (small enough to exercise
|
||||||
// incremental append system)
|
// incremental append system)
|
||||||
EXPECT_TRUE(ParseMP4File("bear-1280x720-av_frag.mp4", 512));
|
EXPECT_TRUE(ParseMP4File("bear-640x360-av_frag.mp4", 512));
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
EXPECT_EQ(201u, num_samples_);
|
EXPECT_EQ(201u, num_samples_);
|
||||||
}
|
}
|
||||||
|
@ -165,7 +165,7 @@ TEST_F(MP4MediaParserTest,
|
||||||
|
|
||||||
TEST_F(MP4MediaParserTest, BytewiseAppend) {
|
TEST_F(MP4MediaParserTest, BytewiseAppend) {
|
||||||
// Ensure no incremental errors occur when parsing
|
// Ensure no incremental errors occur when parsing
|
||||||
EXPECT_TRUE(ParseMP4File("bear-1280x720-av_frag.mp4", 1));
|
EXPECT_TRUE(ParseMP4File("bear-640x360-av_frag.mp4", 1));
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
EXPECT_EQ(201u, num_samples_);
|
EXPECT_EQ(201u, num_samples_);
|
||||||
}
|
}
|
||||||
|
@ -173,13 +173,13 @@ TEST_F(MP4MediaParserTest, BytewiseAppend) {
|
||||||
TEST_F(MP4MediaParserTest, MultiFragmentAppend) {
|
TEST_F(MP4MediaParserTest, MultiFragmentAppend) {
|
||||||
// Large size ensures multiple fragments are appended in one call (size is
|
// Large size ensures multiple fragments are appended in one call (size is
|
||||||
// larger than this particular test file)
|
// larger than this particular test file)
|
||||||
EXPECT_TRUE(ParseMP4File("bear-1280x720-av_frag.mp4", 768432));
|
EXPECT_TRUE(ParseMP4File("bear-640x360-av_frag.mp4", 300000));
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
EXPECT_EQ(201u, num_samples_);
|
EXPECT_EQ(201u, num_samples_);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MP4MediaParserTest, TrailingMoov) {
|
TEST_F(MP4MediaParserTest, TrailingMoov) {
|
||||||
EXPECT_TRUE(ParseMP4File("bear-1280x720-trailing-moov.mp4", 1024));
|
EXPECT_TRUE(ParseMP4File("bear-640x360-trailing-moov.mp4", 1024));
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
EXPECT_EQ(201u, num_samples_);
|
EXPECT_EQ(201u, num_samples_);
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ TEST_F(MP4MediaParserTest, Flush) {
|
||||||
// Flush while reading sample data, then start a new stream.
|
// Flush while reading sample data, then start a new stream.
|
||||||
InitializeParser(NULL);
|
InitializeParser(NULL);
|
||||||
|
|
||||||
std::vector<uint8_t> buffer = ReadTestDataFile("bear-1280x720-av_frag.mp4");
|
std::vector<uint8_t> buffer = ReadTestDataFile("bear-640x360-av_frag.mp4");
|
||||||
EXPECT_TRUE(AppendDataInPieces(buffer.data(), 65536, 512));
|
EXPECT_TRUE(AppendDataInPieces(buffer.data(), 65536, 512));
|
||||||
parser_->Flush();
|
parser_->Flush();
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
|
@ -208,24 +208,24 @@ TEST_F(MP4MediaParserTest, MPEG2_AAC_LC) {
|
||||||
TEST_F(MP4MediaParserTest, NoMoovAfterFlush) {
|
TEST_F(MP4MediaParserTest, NoMoovAfterFlush) {
|
||||||
InitializeParser(NULL);
|
InitializeParser(NULL);
|
||||||
|
|
||||||
std::vector<uint8_t> buffer = ReadTestDataFile("bear-1280x720-av_frag.mp4");
|
std::vector<uint8_t> buffer = ReadTestDataFile("bear-640x360-av_frag.mp4");
|
||||||
EXPECT_TRUE(AppendDataInPieces(buffer.data(), buffer.size(), 512));
|
EXPECT_TRUE(AppendDataInPieces(buffer.data(), buffer.size(), 512));
|
||||||
parser_->Flush();
|
parser_->Flush();
|
||||||
|
|
||||||
const int kFirstMoofOffset = 1307;
|
const int kFirstMoofOffset = 1308;
|
||||||
EXPECT_TRUE(AppendDataInPieces(
|
EXPECT_TRUE(AppendDataInPieces(
|
||||||
buffer.data() + kFirstMoofOffset, buffer.size() - kFirstMoofOffset, 512));
|
buffer.data() + kFirstMoofOffset, buffer.size() - kFirstMoofOffset, 512));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MP4MediaParserTest, NON_FRAGMENTED_MP4) {
|
TEST_F(MP4MediaParserTest, NON_FRAGMENTED_MP4) {
|
||||||
EXPECT_TRUE(ParseMP4File("bear-1280x720.mp4", 512));
|
EXPECT_TRUE(ParseMP4File("bear-640x360.mp4", 512));
|
||||||
EXPECT_EQ(2u, num_streams_);
|
EXPECT_EQ(2u, num_streams_);
|
||||||
EXPECT_EQ(201u, num_samples_);
|
EXPECT_EQ(201u, num_samples_);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MP4MediaParserTest, CencWithoutDecryptionSource) {
|
TEST_F(MP4MediaParserTest, CencWithoutDecryptionSource) {
|
||||||
// Parsing should fail but it will get the streams successfully.
|
// Parsing should fail but it will get the streams successfully.
|
||||||
EXPECT_FALSE(ParseMP4File("bear-1280x720-v_frag-cenc.mp4", 512));
|
EXPECT_FALSE(ParseMP4File("bear-640x360-v_frag-cenc.mp4", 512));
|
||||||
EXPECT_EQ(1u, num_streams_);
|
EXPECT_EQ(1u, num_streams_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ TEST_F(MP4MediaParserTest, CencInitWithoutDecryptionSource) {
|
||||||
InitializeParser(NULL);
|
InitializeParser(NULL);
|
||||||
|
|
||||||
std::vector<uint8_t> buffer =
|
std::vector<uint8_t> buffer =
|
||||||
ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4");
|
ReadTestDataFile("bear-640x360-v_frag-cenc.mp4");
|
||||||
const int kFirstMoofOffset = 1646;
|
const int kFirstMoofOffset = 1646;
|
||||||
EXPECT_TRUE(AppendDataInPieces(buffer.data(), kFirstMoofOffset, 512));
|
EXPECT_TRUE(AppendDataInPieces(buffer.data(), kFirstMoofOffset, 512));
|
||||||
EXPECT_EQ(1u, num_streams_);
|
EXPECT_EQ(1u, num_streams_);
|
||||||
|
@ -256,7 +256,7 @@ TEST_F(MP4MediaParserTest, CencWithDecryptionSource) {
|
||||||
InitializeParser(&mock_key_source);
|
InitializeParser(&mock_key_source);
|
||||||
|
|
||||||
std::vector<uint8_t> buffer =
|
std::vector<uint8_t> buffer =
|
||||||
ReadTestDataFile("bear-1280x720-v_frag-cenc.mp4");
|
ReadTestDataFile("bear-640x360-v_frag-cenc.mp4");
|
||||||
EXPECT_TRUE(AppendDataInPieces(buffer.data(), buffer.size(), 512));
|
EXPECT_TRUE(AppendDataInPieces(buffer.data(), buffer.size(), 512));
|
||||||
EXPECT_EQ(1u, num_streams_);
|
EXPECT_EQ(1u, num_streams_);
|
||||||
EXPECT_EQ(82u, num_samples_);
|
EXPECT_EQ(82u, num_samples_);
|
||||||
|
|
|
@ -23,19 +23,19 @@
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const int64_t kNoTimestamp = std::numeric_limits<int64_t>::min();
|
const int64_t kNoTimestamp = std::numeric_limits<int64_t>::min();
|
||||||
const char kWvmFile[] = "hb2_4stream_encrypted.wvm";
|
const char kWvmFile[] = "bear-640x360.wvm";
|
||||||
// Constants associated with kWvmFile follows.
|
// Constants associated with kWvmFile follows.
|
||||||
const uint32_t kExpectedStreams = 4;
|
const uint32_t kExpectedStreams = 4;
|
||||||
const int kExpectedVideoFrameCount = 6665;
|
const int kExpectedVideoFrameCount = 826;
|
||||||
const int kExpectedAudioFrameCount = 11964;
|
const int kExpectedAudioFrameCount = 1184;
|
||||||
const int kExpectedEncryptedSampleCount = 17287;
|
const int kExpectedEncryptedSampleCount = 554;
|
||||||
const uint8_t kExpectedAssetKey[] =
|
const uint8_t kExpectedAssetKey[] =
|
||||||
"\x06\x81\x7f\x48\x6b\xf2\x7f\x3e\xc7\x39\xa8\x3f\x12\x0a\xd2\xfc";
|
"\x92\x48\xd2\x45\x39\x0e\x0a\x49\xd4\x83\xba\x9b\x43\xfc\x69\xc3";
|
||||||
const uint8_t k64ByteAssetKey[] =
|
const uint8_t k64ByteAssetKey[] =
|
||||||
"\x06\x81\x7f\x48\x6b\xf2\x7f\x3e\xc7\x39\xa8\x3f\x12\x0a\xd2\xfc"
|
"\x92\x48\xd2\x45\x39\x0e\x0a\x49\xd4\x83\xba\x9b\x43\xfc\x69\xc3"
|
||||||
"\x06\x81\x7f\x48\x6b\xf2\x7f\x3e\xc7\x39\xa8\x3f\x12\x0a\xd2\xfc"
|
"\x92\x48\xd2\x45\x39\x0e\x0a\x49\xd4\x83\xba\x9b\x43\xfc\x69\xc3"
|
||||||
"\x06\x81\x7f\x48\x6b\xf2\x7f\x3e\xc7\x39\xa8\x3f\x12\x0a\xd2\xfc"
|
"\x92\x48\xd2\x45\x39\x0e\x0a\x49\xd4\x83\xba\x9b\x43\xfc\x69\xc3"
|
||||||
"\x06\x81\x7f\x48\x6b\xf2\x7f\x3e\xc7\x39\xa8\x3f\x12\x0a\xd2\xfc";
|
"\x92\x48\xd2\x45\x39\x0e\x0a\x49\xd4\x83\xba\x9b\x43\xfc\x69\xc3";
|
||||||
const size_t kInitDataSize = 0x4000;
|
const size_t kInitDataSize = 0x4000;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -168,13 +168,13 @@ TEST_F(WvmMediaParserTest, ParseWvmWithoutKeySource) {
|
||||||
// Track 0 and 2 are videos and they both have pixel_width = 8 and
|
// Track 0 and 2 are videos and they both have pixel_width = 8 and
|
||||||
// pixel_height = 9.
|
// pixel_height = 9.
|
||||||
EXPECT_EQ(8u, reinterpret_cast<VideoStreamInfo*>(stream_map_[0].get())
|
EXPECT_EQ(8u, reinterpret_cast<VideoStreamInfo*>(stream_map_[0].get())
|
||||||
->pixel_width());
|
->pixel_width());
|
||||||
EXPECT_EQ(8u, reinterpret_cast<VideoStreamInfo*>(stream_map_[2].get())
|
EXPECT_EQ(8u, reinterpret_cast<VideoStreamInfo*>(stream_map_[2].get())
|
||||||
->pixel_width());
|
->pixel_width());
|
||||||
EXPECT_EQ(9u, reinterpret_cast<VideoStreamInfo*>(stream_map_[0].get())
|
EXPECT_EQ(9u, reinterpret_cast<VideoStreamInfo*>(stream_map_[0].get())
|
||||||
->pixel_height());
|
->pixel_height());
|
||||||
EXPECT_EQ(9u, reinterpret_cast<VideoStreamInfo*>(stream_map_[2].get())
|
EXPECT_EQ(9u, reinterpret_cast<VideoStreamInfo*>(stream_map_[2].get())
|
||||||
->pixel_height());
|
->pixel_height());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(WvmMediaParserTest, ParseWvmInitWithoutKeySource) {
|
TEST_F(WvmMediaParserTest, ParseWvmInitWithoutKeySource) {
|
||||||
|
|
Binary file not shown.
|
@ -28,26 +28,23 @@ vorbis-packet-3 - timestamp: 2902ms, duration: 0ms
|
||||||
bear-1280x720.ts - AVC + AAC encode, multiplexed into an MPEG2-TS container.
|
bear-1280x720.ts - AVC + AAC encode, multiplexed into an MPEG2-TS container.
|
||||||
bear-1280x720_ptswraparound.ts - Same as bear-1280x720.ts, with a timestamp wrap-around in the middle.
|
bear-1280x720_ptswraparound.ts - Same as bear-1280x720.ts, with a timestamp wrap-around in the middle.
|
||||||
|
|
||||||
// Encrypted Files.
|
// ISO-BMFF streams.
|
||||||
bear-1280x720-a_frag-cenc.mp4 - A fragmented MP4 version of the audio track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
|
bear-1280x720.mp4 - AVC + AAC encode, mulitplexed into an ISOBMFF container.
|
||||||
bear-1280x720-a_frag-cenc_clear-all.mp4 - Same as bear-1280x720-a_frag-cenc.mp4 but no fragments are encrypted.
|
bear-640x360.mp4 - Same as above, but in a different resolution.
|
||||||
bear-1280x720-v_frag-cenc.mp4 - A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
|
bear-320x180.mp4 - Same as above, but in a different resolution.
|
||||||
bear-1280x720-v_frag-cenc_clear-all.mp4 - Same as bear-1280x720-v_frag-cenc.mp4 but no fragments are encrypted.
|
bear-640x360-trailing-moov.mp4 - Same content, but with moov box in the end.
|
||||||
bear-320x240-16x9-aspect-av_enc-av.webm - bear-320x240-16x9-aspect.webm with audio & video encrypted using key ID [1] and key [2]
|
bear-640x360-av_frag.mp4 - Same content, but in fragmented mp4.
|
||||||
bear-320x240-av_enc-av.webm - bear-320x240.webm with audio & video encrypted using key ID [1] and key [2].
|
|
||||||
bear-320x240-av_enc-av_clear-1s.webm - Same as bear-320x240-av_enc-av.webm but with no frames in the first second encrypted.
|
|
||||||
bear-320x240-av_enc-av_clear-all.webm - Same as bear-320x240-av_enc-av.webm but with no frames encrypted.
|
|
||||||
bear-640x360-av_enc-av.webm - bear-640x360.webm with audio & video encrypted using key ID [1] and key [2].
|
|
||||||
bear-640x360-a_frag-cenc.mp4 - A fragmented MP4 version of the audio track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
|
|
||||||
bear-640x360-v_frag-cenc.mp4 - A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
|
|
||||||
|
|
||||||
[1] 30313233343536373839303132333435
|
|
||||||
[2] ebdd62f16814d27b68ef122afce4ae3c
|
|
||||||
|
|
||||||
// Non square pixels.
|
// Non square pixels.
|
||||||
bear-640x360-non_square_pixel-with_pasp.mp4 - A non-square pixel version of the video track of bear-640x360.mp4 with PixelAspectRatio box.
|
bear-640x360-non_square_pixel-with_pasp.mp4 - A non-square pixel version of the video track of bear-640x360.mp4 with PixelAspectRatio box.
|
||||||
bear-640x360-non_square_pixel-without_pasp.mp4 - A non-square pixel version of the video track of bear-640x360.mp4 without PixelAspectRatio box.
|
bear-640x360-non_square_pixel-without_pasp.mp4 - A non-square pixel version of the video track of bear-640x360.mp4 without PixelAspectRatio box.
|
||||||
|
|
||||||
|
// Encrypted Files.
|
||||||
|
bear-640x360-v_frag-cenc.mp4 - A fragmented MP4 version of the video track of bear-640x360.mp4 encrypted (ISO CENC) using key ID [1] and key [2].
|
||||||
|
|
||||||
|
[1] 30313233343536373839303132333435
|
||||||
|
[2] ebdd62f16814d27b68ef122afce4ae3c
|
||||||
|
|
||||||
// Container Tests (additional containers derived from bear.ogv)
|
// Container Tests (additional containers derived from bear.ogv)
|
||||||
bear.ac3 -- created using "avconv -i bear.ogv -f ac3 -b 192k bear.ac3".
|
bear.ac3 -- created using "avconv -i bear.ogv -f ac3 -b 192k bear.ac3".
|
||||||
bear.adts -- created using "avconv -i bear.ogv -f adts -strict experimental bear.adts".
|
bear.adts -- created using "avconv -i bear.ogv -f adts -strict experimental bear.adts".
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,17 +0,0 @@
|
||||||
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
{
|
|
||||||
duration: 2.744000,
|
|
||||||
type: 'video/webm; codecs="vp8, vorbis"',
|
|
||||||
init: { offset: 0, size: 4370},
|
|
||||||
media: [
|
|
||||||
{ offset: 4370, size: 40778, timecode: 0.000000 },
|
|
||||||
{ offset: 45148, size: 27589, timecode: 0.396000 },
|
|
||||||
{ offset: 72737, size: 28183, timecode: 0.779000 },
|
|
||||||
{ offset: 100920, size: 31600, timecode: 1.197000 },
|
|
||||||
{ offset: 132520, size: 33922, timecode: 1.589000 },
|
|
||||||
{ offset: 166442, size: 30587, timecode: 1.987000 },
|
|
||||||
{ offset: 197029, size: 22079, timecode: 2.400000 },
|
|
||||||
]
|
|
||||||
}
|
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
{
|
|
||||||
duration: 2.740000,
|
|
||||||
type: 'video/webm; codecs="vp8, vorbis"',
|
|
||||||
init: { offset: 0, size: 4340},
|
|
||||||
media: [
|
|
||||||
{ offset: 4340, size: 50950, timecode: 0.000000},
|
|
||||||
{ offset: 55290, size: 18785, timecode: 0.527000},
|
|
||||||
{ offset: 74075, size: 19810, timecode: 1.014000},
|
|
||||||
{ offset: 93885, size: 21706, timecode: 1.522000},
|
|
||||||
{ offset: 115591, size: 20249, timecode: 2.016000},
|
|
||||||
{ offset: 135840, size: 9946, timecode: 2.515000},
|
|
||||||
]
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,47 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>HTML 5 Change H.264 Video Test</title>
|
|
||||||
<script>
|
|
||||||
var changeVideoInterval;
|
|
||||||
var changeVideoCounter = 0;
|
|
||||||
|
|
||||||
function changeVideo() {
|
|
||||||
try {
|
|
||||||
if (changeVideoCounter == 40) {
|
|
||||||
alert('40 video changes done. Test over');
|
|
||||||
window.clearInterval(changeVideoInterval);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var video = document.getElementById('video');
|
|
||||||
video.pause();
|
|
||||||
video.src = 'bear-1280x720.mp4?counter=' +
|
|
||||||
changeVideoCounter.toString();
|
|
||||||
++changeVideoCounter;
|
|
||||||
video.play();
|
|
||||||
video.currentTime = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
catch (e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function onLoad() {
|
|
||||||
var video = document.getElementById('video');
|
|
||||||
video.play();
|
|
||||||
video.currentTime = 1;
|
|
||||||
changeVideoInterval = setInterval(changeVideo, 200);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body onload='onLoad();'> <b> This test tests the case where in H.264 H/W
|
|
||||||
decoded videos are added and removed a number of times from the page,
|
|
||||||
while they are playing. <br> This should not cause the browser to hang.
|
|
||||||
<div id='videoDiv'>
|
|
||||||
<video id='video' width=320 height=240 src='bear-1280x720.mp4'
|
|
||||||
controls='controls'>
|
|
||||||
</video>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue