Fix MPD validation problems
- Replaced urn:mpeg:DASH:schema:MPD:2011 with urn:mpeg:dash:schema:mpd:2011. The former is from the old spec. - Replaced the MPD schema with the latest one. - Fixed subSegmentAlignment typo with subsegmentAlignment. Issue #55 Change-Id: Icffa9872ffc462627b81900a48f59e7b76687c11
This commit is contained in:
parent
098e087459
commit
a9b039c3f9
|
@ -1,7 +1,7 @@
|
||||||
<?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="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="885151" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="885151" 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">
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" subsegmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="128728" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="128728" 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"/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?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="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<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>
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
<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>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?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="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<BaseURL>output_video.mp4</BaseURL>
|
<BaseURL>output_video.mp4</BaseURL>
|
||||||
<SegmentBase indexRange="677-744" timescale="30000">
|
<SegmentBase indexRange="677-744" timescale="30000">
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="1" contentType="audio" subsegmentAlignment="true">
|
||||||
<Representation id="1" bandwidth="126087" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="1" bandwidth="126087" 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"/>
|
||||||
<BaseURL>output_audio.mp4</BaseURL>
|
<BaseURL>output_audio.mp4</BaseURL>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="640" height="360" 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="875620" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="875620" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="640" height="360" 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"/>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="640" height="360" 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="876470" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="876470" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="640" height="360" 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"/>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="640" height="360" 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="872999" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="872999" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
|
|
|
@ -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="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="text">
|
<AdaptationSet id="0" contentType="text">
|
||||||
<Representation id="0" bandwidth="256" mimeType="text/vtt">
|
<Representation id="0" bandwidth="256" mimeType="text/vtt">
|
||||||
<BaseURL>output_text.vtt</BaseURL>
|
<BaseURL>output_text.vtt</BaseURL>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="1" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="1" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
<Representation id="1" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="1" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<BaseURL>output_video.mp4</BaseURL>
|
<BaseURL>output_video.mp4</BaseURL>
|
||||||
<SegmentBase indexRange="677-744" timescale="30000">
|
<SegmentBase indexRange="677-744" timescale="30000">
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
</SegmentBase>
|
</SegmentBase>
|
||||||
</Representation>
|
</Representation>
|
||||||
</AdaptationSet>
|
</AdaptationSet>
|
||||||
<AdaptationSet id="2" contentType="audio" subSegmentAlignment="true">
|
<AdaptationSet id="2" contentType="audio" subsegmentAlignment="true">
|
||||||
<Representation id="2" bandwidth="126087" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="2" bandwidth="126087" 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"/>
|
||||||
<BaseURL>output_audio.mp4</BaseURL>
|
<BaseURL>output_audio.mp4</BaseURL>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?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.7694332599639893S">
|
<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.7694332599639893S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="264624" codecs="hev1.1.6.L63.80" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="264624" codecs="hev1.1.6.L63.80" 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">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?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.7360665798187256S">
|
<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="video" width="640" height="360" frameRate="30000/1001" subSegmentAlignment="true" par="16:9">
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
<Representation id="0" bandwidth="881637" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360" frameRate="30000/1001">
|
||||||
<BaseURL>output_0.mp4</BaseURL>
|
<BaseURL>output_0.mp4</BaseURL>
|
||||||
<SegmentBase indexRange="677-744" timescale="30000">
|
<SegmentBase indexRange="677-744" timescale="30000">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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="PT0S">
|
<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="PT0S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="text">
|
<AdaptationSet id="0" contentType="text">
|
||||||
<Representation id="0" bandwidth="256" mimeType="text/vtt">
|
<Representation id="0" bandwidth="256" mimeType="text/vtt">
|
||||||
|
|
|
@ -77,12 +77,12 @@ std::string GetMimeType(const std::string& prefix,
|
||||||
void AddMpdNameSpaceInfo(XmlNode* mpd) {
|
void AddMpdNameSpaceInfo(XmlNode* mpd) {
|
||||||
DCHECK(mpd);
|
DCHECK(mpd);
|
||||||
|
|
||||||
static const char kXmlNamespace[] = "urn:mpeg:DASH:schema:MPD:2011";
|
static const char kXmlNamespace[] = "urn:mpeg:dash:schema:mpd:2011";
|
||||||
static const char kXmlNamespaceXsi[] =
|
static const char kXmlNamespaceXsi[] =
|
||||||
"http://www.w3.org/2001/XMLSchema-instance";
|
"http://www.w3.org/2001/XMLSchema-instance";
|
||||||
static const char kXmlNamespaceXlink[] = "http://www.w3.org/1999/xlink";
|
static const char kXmlNamespaceXlink[] = "http://www.w3.org/1999/xlink";
|
||||||
static const char kDashSchemaMpd2011[] =
|
static const char kDashSchemaMpd2011[] =
|
||||||
"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd";
|
"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd";
|
||||||
static const char kCencNamespace[] = "urn:mpeg:cenc:2013";
|
static const char kCencNamespace[] = "urn:mpeg:cenc:2013";
|
||||||
|
|
||||||
mpd->SetStringAttribute("xmlns", kXmlNamespace);
|
mpd->SetStringAttribute("xmlns", kXmlNamespace);
|
||||||
|
@ -780,7 +780,7 @@ xml::scoped_xml_ptr<xmlNode> AdaptationSet::GetXml() {
|
||||||
|
|
||||||
if (segments_aligned_ == kSegmentAlignmentTrue) {
|
if (segments_aligned_ == kSegmentAlignmentTrue) {
|
||||||
adaptation_set.SetStringAttribute(mpd_type_ == MpdBuilder::kStatic
|
adaptation_set.SetStringAttribute(mpd_type_ == MpdBuilder::kStatic
|
||||||
? "subSegmentAlignment"
|
? "subsegmentAlignment"
|
||||||
: "segmentAlignment",
|
: "segmentAlignment",
|
||||||
"true");
|
"true");
|
||||||
}
|
}
|
||||||
|
@ -810,7 +810,7 @@ int AdaptationSet::Group() const {
|
||||||
|
|
||||||
// Check segmentAlignment for Live here. Storing all start_time and duration
|
// Check segmentAlignment for Live here. Storing all start_time and duration
|
||||||
// will out-of-memory because there's no way of knowing when it will end.
|
// will out-of-memory because there's no way of knowing when it will end.
|
||||||
// VOD subSegmentAlignment check is *not* done here because it is possible
|
// VOD subsegmentAlignment check is *not* done here because it is possible
|
||||||
// that some Representations might not have been added yet (e.g. a thread is
|
// that some Representations might not have been added yet (e.g. a thread is
|
||||||
// assigned per muxer so one might run faster than others).
|
// assigned per muxer so one might run faster than others).
|
||||||
// To be clear, for Live, all Representations should be added before a
|
// To be clear, for Live, all Representations should be added before a
|
||||||
|
|
|
@ -449,7 +449,7 @@ class Representation {
|
||||||
const std::string& pssh);
|
const std::string& pssh);
|
||||||
|
|
||||||
/// Add a media (sub)segment to the representation.
|
/// Add a media (sub)segment to the representation.
|
||||||
/// AdaptationSet@{subSegmentAlignment,segmentAlignment} cannot be set
|
/// AdaptationSet@{subsegmentAlignment,segmentAlignment} cannot be set
|
||||||
/// if this is not called for all Representations.
|
/// if this is not called for all Representations.
|
||||||
/// @param start_time is the start time for the (sub)segment, in units of the
|
/// @param start_time is the start time for the (sub)segment, in units of the
|
||||||
/// stream's time scale.
|
/// stream's time scale.
|
||||||
|
|
|
@ -248,10 +248,10 @@ class SegmentTemplateTest : public DynamicMpdBuilderTest {
|
||||||
// always has segmentAligntment=true.
|
// always has segmentAligntment=true.
|
||||||
const char kOutputTemplate[] =
|
const char kOutputTemplate[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" "
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" "
|
||||||
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
||||||
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
||||||
"xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\" "
|
"xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" "
|
||||||
"availabilityStartTime=\"2011-12-25T12:30:00\" minBufferTime=\"PT2S\" "
|
"availabilityStartTime=\"2011-12-25T12:30:00\" minBufferTime=\"PT2S\" "
|
||||||
"type=\"dynamic\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011\">\n"
|
"type=\"dynamic\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011\">\n"
|
||||||
" <Period start=\"PT0S\">\n"
|
" <Period start=\"PT0S\">\n"
|
||||||
|
@ -333,10 +333,10 @@ class TimeShiftBufferDepthTest : public SegmentTemplateTest {
|
||||||
// always has segmentAligntment=true.
|
// always has segmentAligntment=true.
|
||||||
const char kOutputTemplate[] =
|
const char kOutputTemplate[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" "
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" "
|
||||||
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
||||||
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
||||||
"xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\" "
|
"xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" "
|
||||||
"availabilityStartTime=\"2011-12-25T12:30:00\" minBufferTime=\"PT2S\" "
|
"availabilityStartTime=\"2011-12-25T12:30:00\" minBufferTime=\"PT2S\" "
|
||||||
"type=\"dynamic\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011\" "
|
"type=\"dynamic\" profiles=\"urn:mpeg:dash:profile:isoff-live:2011\" "
|
||||||
"timeShiftBufferDepth=\"PT%dS\">\n"
|
"timeShiftBufferDepth=\"PT%dS\">\n"
|
||||||
|
@ -712,10 +712,10 @@ TEST_F(CommonMpdBuilderTest, AdaptationAddRoleElementMain) {
|
||||||
// MPD without adding any Representations.
|
// MPD without adding any Representations.
|
||||||
const char kExpectedOutput[] =
|
const char kExpectedOutput[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"\n"
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\"\n"
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\"\n"
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\"\n"
|
||||||
" minBufferTime=\"PT2S\" type=\"static\"\n"
|
" minBufferTime=\"PT2S\" type=\"static\"\n"
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"\n"
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"\n"
|
||||||
" mediaPresentationDuration=\"PT0S\">\n"
|
" mediaPresentationDuration=\"PT0S\">\n"
|
||||||
|
@ -755,10 +755,10 @@ TEST_F(CommonMpdBuilderTest, CheckContentProtectionRoleRepresentationOrder) {
|
||||||
xml::scoped_xml_ptr<xmlNode> adaptation_set_xml(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> adaptation_set_xml(adaptation_set->GetXml());
|
||||||
const char kExpectedOutput[] =
|
const char kExpectedOutput[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"\n"
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\"\n"
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\"\n"
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\"\n"
|
||||||
" minBufferTime=\"PT2S\" type=\"static\"\n"
|
" minBufferTime=\"PT2S\" type=\"static\"\n"
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"\n"
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"\n"
|
||||||
" mediaPresentationDuration=\"PT0S\">\n"
|
" mediaPresentationDuration=\"PT0S\">\n"
|
||||||
|
@ -1101,11 +1101,11 @@ TEST_F(CommonMpdBuilderTest,
|
||||||
ExpectAttributeNotSet("frameRate", adaptation_set_xml.get()));
|
ExpectAttributeNotSet("frameRate", adaptation_set_xml.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that subSegmentAlignment is set to true if all the Representations'
|
// Verify that subsegmentAlignment is set to true if all the Representations'
|
||||||
// segments are aligned and the MPD type is static.
|
// segments are aligned and the MPD type is static.
|
||||||
// Also checking that not all Representations have to be added before calling
|
// Also checking that not all Representations have to be added before calling
|
||||||
// AddNewSegment() on a Representation.
|
// AddNewSegment() on a Representation.
|
||||||
TEST_F(StaticMpdBuilderTest, SubSegmentAlignment) {
|
TEST_F(StaticMpdBuilderTest, subsegmentAlignment) {
|
||||||
base::AtomicSequenceNumber sequence_counter;
|
base::AtomicSequenceNumber sequence_counter;
|
||||||
const char k480pMediaInfo[] =
|
const char k480pMediaInfo[] =
|
||||||
"video_info {\n"
|
"video_info {\n"
|
||||||
|
@ -1130,7 +1130,7 @@ TEST_F(StaticMpdBuilderTest, SubSegmentAlignment) {
|
||||||
"}\n"
|
"}\n"
|
||||||
"container_type: 1\n";
|
"container_type: 1\n";
|
||||||
|
|
||||||
// First use same start time and duration, and verify that subSegmentAlignment
|
// First use same start time and duration, and verify that subsegmentAlignment
|
||||||
// is set to true.
|
// is set to true.
|
||||||
const uint64_t kStartTime = 0u;
|
const uint64_t kStartTime = 0u;
|
||||||
const uint64_t kDuration = 10u;
|
const uint64_t kDuration = 10u;
|
||||||
|
@ -1151,13 +1151,13 @@ TEST_F(StaticMpdBuilderTest, SubSegmentAlignment) {
|
||||||
|
|
||||||
xml::scoped_xml_ptr<xmlNode> aligned(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> aligned(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeEqString("subSegmentAlignment", "true", aligned.get()));
|
ExpectAttributeEqString("subsegmentAlignment", "true", aligned.get()));
|
||||||
|
|
||||||
// Unknown because 480p has an extra subsegments.
|
// Unknown because 480p has an extra subsegments.
|
||||||
representation_480p->AddNewSegment(11, 20, kAnySize);
|
representation_480p->AddNewSegment(11, 20, kAnySize);
|
||||||
xml::scoped_xml_ptr<xmlNode> alignment_unknown(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> alignment_unknown(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeNotSet("subSegmentAlignment", alignment_unknown.get()));
|
ExpectAttributeNotSet("subsegmentAlignment", alignment_unknown.get()));
|
||||||
|
|
||||||
// Add segments that make them not aligned.
|
// Add segments that make them not aligned.
|
||||||
representation_360p->AddNewSegment(10, 1, kAnySize);
|
representation_360p->AddNewSegment(10, 1, kAnySize);
|
||||||
|
@ -1165,11 +1165,11 @@ TEST_F(StaticMpdBuilderTest, SubSegmentAlignment) {
|
||||||
|
|
||||||
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeNotSet("subSegmentAlignment", unaligned.get()));
|
ExpectAttributeNotSet("subsegmentAlignment", unaligned.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that subSegmentAlignment can be force set to true.
|
// Verify that subsegmentAlignment can be force set to true.
|
||||||
TEST_F(StaticMpdBuilderTest, ForceSetSubSegmentAlignment) {
|
TEST_F(StaticMpdBuilderTest, ForceSetsubsegmentAlignment) {
|
||||||
base::AtomicSequenceNumber sequence_counter;
|
base::AtomicSequenceNumber sequence_counter;
|
||||||
const char k480pMediaInfo[] =
|
const char k480pMediaInfo[] =
|
||||||
"video_info {\n"
|
"video_info {\n"
|
||||||
|
@ -1211,13 +1211,13 @@ TEST_F(StaticMpdBuilderTest, ForceSetSubSegmentAlignment) {
|
||||||
representation_360p->AddNewSegment(kStartTime2, kDuration, kAnySize);
|
representation_360p->AddNewSegment(kStartTime2, kDuration, kAnySize);
|
||||||
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeNotSet("subSegmentAlignment", unaligned.get()));
|
ExpectAttributeNotSet("subsegmentAlignment", unaligned.get()));
|
||||||
|
|
||||||
// Then force set the segment alignment attribute to true.
|
// Then force set the segment alignment attribute to true.
|
||||||
adaptation_set->ForceSetSegmentAlignment(true);
|
adaptation_set->ForceSetSegmentAlignment(true);
|
||||||
xml::scoped_xml_ptr<xmlNode> aligned(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> aligned(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeEqString("subSegmentAlignment", "true", aligned.get()));
|
ExpectAttributeEqString("subsegmentAlignment", "true", aligned.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that segmentAlignment is set to true if all the Representations
|
// Verify that segmentAlignment is set to true if all the Representations
|
||||||
|
@ -1272,7 +1272,7 @@ TEST_F(DynamicMpdBuilderTest, SegmentAlignment) {
|
||||||
|
|
||||||
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
xml::scoped_xml_ptr<xmlNode> unaligned(adaptation_set->GetXml());
|
||||||
EXPECT_NO_FATAL_FAILURE(
|
EXPECT_NO_FATAL_FAILURE(
|
||||||
ExpectAttributeNotSet("subSegmentAlignment", unaligned.get()));
|
ExpectAttributeNotSet("subsegmentAlignment", unaligned.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that the width and height attribute are set if all the video
|
// Verify that the width and height attribute are set if all the video
|
||||||
|
@ -1429,11 +1429,11 @@ TEST_F(CommonMpdBuilderTest, AdaptationSetAddContentProtectionAndUpdate) {
|
||||||
|
|
||||||
const char kExpectedOutput1[] =
|
const char kExpectedOutput1[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT0S\">"
|
" mediaPresentationDuration=\"PT0S\">"
|
||||||
|
@ -1459,11 +1459,11 @@ TEST_F(CommonMpdBuilderTest, AdaptationSetAddContentProtectionAndUpdate) {
|
||||||
"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed", "new pssh value");
|
"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed", "new pssh value");
|
||||||
const char kExpectedOutput2[] =
|
const char kExpectedOutput2[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT0S\">"
|
" mediaPresentationDuration=\"PT0S\">"
|
||||||
|
@ -1515,11 +1515,11 @@ TEST_F(CommonMpdBuilderTest, UpdateToRemovePsshElement) {
|
||||||
|
|
||||||
const char kExpectedOutput1[] =
|
const char kExpectedOutput1[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT0S\">"
|
" mediaPresentationDuration=\"PT0S\">"
|
||||||
|
@ -1545,11 +1545,11 @@ TEST_F(CommonMpdBuilderTest, UpdateToRemovePsshElement) {
|
||||||
"added pssh value");
|
"added pssh value");
|
||||||
const char kExpectedOutput2[] =
|
const char kExpectedOutput2[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT0S\">"
|
" mediaPresentationDuration=\"PT0S\">"
|
||||||
|
@ -1631,11 +1631,11 @@ TEST_F(StaticMpdBuilderTest, AudioChannelConfigurationWithContentProtection) {
|
||||||
|
|
||||||
const char kExpectedOutput[] =
|
const char kExpectedOutput[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT24.00943374633789S\">"
|
" mediaPresentationDuration=\"PT24.00943374633789S\">"
|
||||||
|
@ -1731,11 +1731,11 @@ TEST_F(StaticMpdBuilderTest, Text) {
|
||||||
|
|
||||||
const char kExpectedOutput[] =
|
const char kExpectedOutput[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\""
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
|
||||||
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
" xmlns:cenc=\"urn:mpeg:cenc:2013\""
|
||||||
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
|
||||||
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||||
" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\""
|
" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\""
|
||||||
" minBufferTime=\"PT2S\" type=\"static\""
|
" minBufferTime=\"PT2S\" type=\"static\""
|
||||||
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\""
|
||||||
" mediaPresentationDuration=\"PT35S\">"
|
" mediaPresentationDuration=\"PT35S\">"
|
||||||
|
@ -1770,11 +1770,11 @@ TEST_F(StaticMpdBuilderTest, Text) {
|
||||||
TEST_F(DynamicMpdBuilderTest, CheckMpdAttributes) {
|
TEST_F(DynamicMpdBuilderTest, CheckMpdAttributes) {
|
||||||
static const char kExpectedOutput[] =
|
static const char kExpectedOutput[] =
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
"<MPD xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" "
|
"<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" "
|
||||||
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
|
||||||
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" "
|
||||||
"xsi:schemaLocation="
|
"xsi:schemaLocation="
|
||||||
"\"urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd\" "
|
"\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" "
|
||||||
"xmlns:cenc=\"urn:mpeg:cenc:2013\" "
|
"xmlns:cenc=\"urn:mpeg:cenc:2013\" "
|
||||||
"minBufferTime=\"PT2S\" "
|
"minBufferTime=\"PT2S\" "
|
||||||
"type=\"dynamic\" "
|
"type=\"dynamic\" "
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio">
|
<AdaptationSet id="0" contentType="audio">
|
||||||
<Representation id="0" bandwidth="400" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="400" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
||||||
<Representation id="1" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
<Representation id="1" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" availabilityStartTime="2011-12-25T12:30:00" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011">
|
<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" availabilityStartTime="2011-12-25T12:30:00" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011">
|
||||||
<Period start="PT0S">
|
<Period start="PT0S">
|
||||||
<AdaptationSet id="0" width="720" height="480" frameRate="10/5" contentType="video" par="3:2" segmentAlignment="true">
|
<AdaptationSet id="0" width="720" height="480" frameRate="10/5" contentType="video" par="3:2" segmentAlignment="true">
|
||||||
<Representation id="0" bandwidth="102400" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/5" sar="1:1">
|
<Representation id="0" bandwidth="102400" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/5" sar="1:1">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT24.00943374633789S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT24.00943374633789S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" contentType="audio">
|
<AdaptationSet id="0" contentType="audio">
|
||||||
<Representation id="0" bandwidth="195857" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="0" bandwidth="195857" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
||||||
<Representation id="3" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
<Representation id="3" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
<AdaptationSet id="0" width="720" height="480" frameRate="10/1" contentType="video" par="3:2">
|
||||||
<Representation id="0" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
<Representation id="0" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
<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" minBufferTime="PT2S" type="static" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" mediaPresentationDuration="PT10.5S">
|
||||||
<Period>
|
<Period>
|
||||||
<AdaptationSet id="0" maxWidth="720" maxHeight="480" maxFrameRate="10/1" contentType="video">
|
<AdaptationSet id="0" maxWidth="720" maxHeight="480" maxFrameRate="10/1" contentType="video">
|
||||||
<Representation id="0" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
<Representation id="0" bandwidth="7620" codecs="avc1.010101" mimeType="video/mp4" width="720" height="480" frameRate="10/1" sar="1:1">
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xs:schema targetNamespace="urn:mpeg:DASH:schema:MPD:2011"
|
<xs:schema targetNamespace="urn:mpeg:dash:schema:mpd:2011" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="urn:mpeg:dash:schema:mpd:2011">
|
||||||
attributeFormDefault="unqualified"
|
|
||||||
elementFormDefault="qualified"
|
|
||||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="urn:mpeg:DASH:schema:MPD:2011">
|
|
||||||
|
|
||||||
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
|
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
|
||||||
|
|
||||||
|
@ -26,6 +21,9 @@
|
||||||
<xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/>
|
<xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/>
|
||||||
<xs:element name="Metrics" type="MetricsType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="Metrics" type="MetricsType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="EssentialProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="UTCTiming" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name="id" type="xs:string"/>
|
<xs:attribute name="id" type="xs:string"/>
|
||||||
|
@ -33,6 +31,7 @@
|
||||||
<xs:attribute name="type" type="PresentationType" default="static"/>
|
<xs:attribute name="type" type="PresentationType" default="static"/>
|
||||||
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
|
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
|
||||||
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
|
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
|
||||||
|
<xs:attribute name="publishTime" type="xs:dateTime"/>
|
||||||
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
|
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
|
||||||
<xs:attribute name="minimumUpdatePeriod" type="xs:duration"/>
|
<xs:attribute name="minimumUpdatePeriod" type="xs:duration"/>
|
||||||
<xs:attribute name="minBufferTime" type="xs:duration" use="required"/>
|
<xs:attribute name="minBufferTime" type="xs:duration" use="required"/>
|
||||||
|
@ -58,19 +57,48 @@
|
||||||
<xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/>
|
<xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/>
|
||||||
<xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/>
|
<xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/>
|
||||||
<xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/>
|
<xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/>
|
||||||
|
<xs:element name="AssetIdentifier" type="DescriptorType" minOccurs="0"/>
|
||||||
|
<xs:element name="EventStream" type="EventStreamType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:element name="AdaptationSet" type="AdaptationSetType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="AdaptationSet" type="AdaptationSetType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:element name="Subset" type="SubsetType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="Subset" type="SubsetType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute ref="xlink:href"/>
|
<xs:attribute ref="xlink:href"/>
|
||||||
<xs:attribute ref="xlink:actuate" default="onRequest"/>
|
<xs:attribute ref="xlink:actuate" default="onRequest"/>
|
||||||
<xs:attribute name="id" type="xs:string" />
|
<xs:attribute name="id" type="xs:string"/>
|
||||||
<xs:attribute name="start" type="xs:duration"/>
|
<xs:attribute name="start" type="xs:duration"/>
|
||||||
<xs:attribute name="duration" type="xs:duration"/>
|
<xs:attribute name="duration" type="xs:duration"/>
|
||||||
<xs:attribute name="bitstreamSwitching" type="xs:boolean" default="false"/>
|
<xs:attribute name="bitstreamSwitching" type="xs:boolean" default="false"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
<!-- Event Stream -->
|
||||||
|
<xs:complexType name="EventStreamType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Event" type="EventType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute ref="xlink:href"/>
|
||||||
|
<xs:attribute ref="xlink:actuate" default="onRequest"/>
|
||||||
|
<xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/>
|
||||||
|
<xs:attribute name="value" type="xs:string"/>
|
||||||
|
<xs:attribute name="timescale" type="xs:unsignedInt"/>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Event -->
|
||||||
|
<xs:complexType name="EventType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="presentationTime" type="xs:unsignedLong" default="0"/>
|
||||||
|
<xs:attribute name="duration" type="xs:unsignedLong"/>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt"/>
|
||||||
|
<xs:attribute name="messageData" type="xs:string"/>
|
||||||
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
<!-- Adaptation Set -->
|
<!-- Adaptation Set -->
|
||||||
<xs:complexType name="AdaptationSetType">
|
<xs:complexType name="AdaptationSetType">
|
||||||
<xs:complexContent>
|
<xs:complexContent>
|
||||||
|
@ -110,6 +138,13 @@
|
||||||
</xs:complexContent>
|
</xs:complexContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
<!-- Ratio Type for sar and par -->
|
||||||
|
<xs:simpleType name="RatioType">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="[0-9]*:[0-9]*"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
<!-- Type for Frame Rate -->
|
<!-- Type for Frame Rate -->
|
||||||
<xs:simpleType name="FrameRateType">
|
<xs:simpleType name="FrameRateType">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
|
@ -185,6 +220,9 @@
|
||||||
<xs:element name="FramePacking" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="FramePacking" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:element name="AudioChannelConfiguration" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="AudioChannelConfiguration" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:element name="ContentProtection" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="ContentProtection" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="EssentialProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="InbandEventStream" type="EventStreamType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name="profiles" type="xs:string"/>
|
<xs:attribute name="profiles" type="xs:string"/>
|
||||||
|
@ -204,13 +242,6 @@
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
<!-- Ratio Type for sar and par -->
|
|
||||||
<xs:simpleType name="RatioType">
|
|
||||||
<xs:restriction base="xs:string">
|
|
||||||
<xs:pattern value="[0-9]*:[0-9]*"/>
|
|
||||||
</xs:restriction>
|
|
||||||
</xs:simpleType>
|
|
||||||
|
|
||||||
<!-- Stream Access Point type enumeration -->
|
<!-- Stream Access Point type enumeration -->
|
||||||
<xs:simpleType name="SAPType">
|
<xs:simpleType name="SAPType">
|
||||||
<xs:restriction base="xs:unsignedInt">
|
<xs:restriction base="xs:unsignedInt">
|
||||||
|
@ -231,6 +262,7 @@
|
||||||
<!-- Subset -->
|
<!-- Subset -->
|
||||||
<xs:complexType name="SubsetType">
|
<xs:complexType name="SubsetType">
|
||||||
<xs:attribute name="contains" type="UIntVectorType" use="required"/>
|
<xs:attribute name="contains" type="UIntVectorType" use="required"/>
|
||||||
|
<xs:attribute name="id" type="xs:string"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
@ -242,9 +274,11 @@
|
||||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name="timescale" type="xs:unsignedInt"/>
|
<xs:attribute name="timescale" type="xs:unsignedInt"/>
|
||||||
<xs:attribute name="presentationTimeOffset" type="xs:unsignedInt"/>
|
<xs:attribute name="presentationTimeOffset" type="xs:unsignedLong"/>
|
||||||
<xs:attribute name="indexRange" type="xs:string"/>
|
<xs:attribute name="indexRange" type="xs:string"/>
|
||||||
<xs:attribute name="indexRangeExact" type="xs:boolean" default="false"/>
|
<xs:attribute name="indexRangeExact" type="xs:boolean" default="false"/>
|
||||||
|
<xs:attribute name="availabilityTimeOffset" type="xs:double"/>
|
||||||
|
<xs:attribute name="availabilityTimeComplete" type="xs:boolean"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
@ -303,8 +337,8 @@
|
||||||
<xs:extension base="MultipleSegmentBaseType">
|
<xs:extension base="MultipleSegmentBaseType">
|
||||||
<xs:attribute name="media" type="xs:string"/>
|
<xs:attribute name="media" type="xs:string"/>
|
||||||
<xs:attribute name="index" type="xs:string"/>
|
<xs:attribute name="index" type="xs:string"/>
|
||||||
<xs:attribute name="initialization" type="xs:string" />
|
<xs:attribute name="initialization" type="xs:string"/>
|
||||||
<xs:attribute name="bitstreamSwitching" type="xs:string" />
|
<xs:attribute name="bitstreamSwitching" type="xs:string"/>
|
||||||
</xs:extension>
|
</xs:extension>
|
||||||
</xs:complexContent>
|
</xs:complexContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
@ -312,11 +346,12 @@
|
||||||
<!-- Segment Timeline -->
|
<!-- Segment Timeline -->
|
||||||
<xs:complexType name="SegmentTimelineType">
|
<xs:complexType name="SegmentTimelineType">
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element name="S" minOccurs="1" maxOccurs="unbounded" >
|
<xs:element name="S" minOccurs="1" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="t" type="xs:unsignedInt"/>
|
<xs:attribute name="t" type="xs:unsignedLong"/>
|
||||||
<xs:attribute name="d" type="xs:unsignedInt" use="required"/>
|
<xs:attribute name="n" type="xs:unsignedLong" use="optional"/>
|
||||||
<xs:attribute name="r" type="xs:unsignedInt" use="optional" default="0"/>
|
<xs:attribute name="d" type="xs:unsignedLong" use="required"/>
|
||||||
|
<xs:attribute name="r" type="xs:integer" use="optional" default="0"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
@ -341,6 +376,8 @@
|
||||||
<xs:extension base="xs:anyURI">
|
<xs:extension base="xs:anyURI">
|
||||||
<xs:attribute name="serviceLocation" type="xs:string"/>
|
<xs:attribute name="serviceLocation" type="xs:string"/>
|
||||||
<xs:attribute name="byteRange" type="xs:string"/>
|
<xs:attribute name="byteRange" type="xs:string"/>
|
||||||
|
<xs:attribute name="availabilityTimeOffset" type="xs:double"/>
|
||||||
|
<xs:attribute name="availabilityTimeComplete" type="xs:boolean"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:extension>
|
</xs:extension>
|
||||||
</xs:simpleContent>
|
</xs:simpleContent>
|
||||||
|
@ -366,6 +403,7 @@
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/>
|
<xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/>
|
||||||
<xs:attribute name="value" type="xs:string"/>
|
<xs:attribute name="value" type="xs:string"/>
|
||||||
|
<xs:attribute name="id" type="xs:string"/>
|
||||||
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
@ -387,4 +425,3 @@
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue