diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_InfoExtractor.py | 56 | ||||
| -rw-r--r-- | test/testdata/mpd/unfragmented.mpd | 28 | 
2 files changed, 80 insertions, 4 deletions
| diff --git a/test/test_InfoExtractor.py b/test/test_InfoExtractor.py index da6cd39b6..d23d94349 100644 --- a/test/test_InfoExtractor.py +++ b/test/test_InfoExtractor.py @@ -574,7 +574,8 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/                  # Also tests duplicate representation ids, see                  # https://github.com/ytdl-org/youtube-dl/issues/15111                  'float_duration', -                'http://unknown/manifest.mpd', +                'http://unknown/manifest.mpd',  # mpd_url +                None,  # mpd_base_url                  [{                      'manifest_url': 'http://unknown/manifest.mpd',                      'ext': 'm4a', @@ -654,7 +655,8 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/              ), (                  # https://github.com/ytdl-org/youtube-dl/pull/14844                  'urls_only', -                'http://unknown/manifest.mpd', +                'http://unknown/manifest.mpd',  # mpd_url +                None,  # mpd_base_url                  [{                      'manifest_url': 'http://unknown/manifest.mpd',                      'ext': 'mp4', @@ -733,15 +735,61 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/                      'width': 1920,                      'height': 1080,                  }] +            ), ( +                # https://github.com/ytdl-org/youtube-dl/issues/20346 +                # Media considered unfragmented even though it contains +                # Initialization tag +                'unfragmented', +                'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd',  # mpd_url +                'https://v.redd.it/hw1x7rcg7zl21',  # mpd_base_url +                [{ +                    'url': 'https://v.redd.it/hw1x7rcg7zl21/audio', +                    'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd', +                    'ext': 'm4a', +                    'format_id': 'AUDIO-1', +                    'format_note': 'DASH audio', +                    'container': 'm4a_dash', +                    'acodec': 'mp4a.40.2', +                    'vcodec': 'none', +                    'tbr': 129.87, +                    'asr': 48000, + +                }, { +                    'url': 'https://v.redd.it/hw1x7rcg7zl21/DASH_240', +                    'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd', +                    'ext': 'mp4', +                    'format_id': 'VIDEO-2', +                    'format_note': 'DASH video', +                    'container': 'mp4_dash', +                    'acodec': 'none', +                    'vcodec': 'avc1.4d401e', +                    'tbr': 608.0, +                    'width': 240, +                    'height': 240, +                    'fps': 30, +                }, { +                    'url': 'https://v.redd.it/hw1x7rcg7zl21/DASH_360', +                    'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd', +                    'ext': 'mp4', +                    'format_id': 'VIDEO-1', +                    'format_note': 'DASH video', +                    'container': 'mp4_dash', +                    'acodec': 'none', +                    'vcodec': 'avc1.4d401e', +                    'tbr': 804.261, +                    'width': 360, +                    'height': 360, +                    'fps': 30, +                }]              )          ] -        for mpd_file, mpd_url, expected_formats in _TEST_CASES: +        for mpd_file, mpd_url, mpd_base_url, expected_formats in _TEST_CASES:              with io.open('./test/testdata/mpd/%s.mpd' % mpd_file,                           mode='r', encoding='utf-8') as f:                  formats = self.ie._parse_mpd_formats(                      compat_etree_fromstring(f.read().encode('utf-8')), -                    mpd_url=mpd_url) +                    mpd_base_url=mpd_base_url, mpd_url=mpd_url)                  self.ie._sort_formats(formats)                  expect_value(self, formats, expected_formats, None) diff --git a/test/testdata/mpd/unfragmented.mpd b/test/testdata/mpd/unfragmented.mpd new file mode 100644 index 000000000..5a3720be7 --- /dev/null +++ b/test/testdata/mpd/unfragmented.mpd @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<MPD mediaPresentationDuration="PT54.915S" minBufferTime="PT1.500S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011"> +    <Period duration="PT54.915S"> +        <AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> +            <Representation bandwidth="804261" codecs="avc1.4d401e" frameRate="30" height="360" id="VIDEO-1" mimeType="video/mp4" startWithSAP="1" width="360"> +                <BaseURL>DASH_360</BaseURL> +                <SegmentBase indexRange="915-1114" indexRangeExact="true"> +                    <Initialization range="0-914"/> +                </SegmentBase> +            </Representation> +            <Representation bandwidth="608000" codecs="avc1.4d401e" frameRate="30" height="240" id="VIDEO-2" mimeType="video/mp4" startWithSAP="1" width="240"> +                <BaseURL>DASH_240</BaseURL> +                <SegmentBase indexRange="913-1112" indexRangeExact="true"> +                    <Initialization range="0-912"/> +                </SegmentBase> +            </Representation> +        </AdaptationSet> +        <AdaptationSet> +            <Representation audioSamplingRate="48000" bandwidth="129870" codecs="mp4a.40.2" id="AUDIO-1" mimeType="audio/mp4" startWithSAP="1"> +                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/> +                <BaseURL>audio</BaseURL> +                <SegmentBase indexRange="832-1007" indexRangeExact="true"> +                    <Initialization range="0-831"/> +                </SegmentBase> +            </Representation> +        </AdaptationSet> +    </Period> +</MPD> | 
