mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-25 02:45:12 +00:00
[test_InfoExtractor] Add test for #20346
This commit is contained in:
parent
79d2077edc
commit
2e27421c70
2 changed files with 80 additions and 4 deletions
|
@ -574,7 +574,8 @@ def test_parse_mpd_formats(self):
|
||||||
# Also tests duplicate representation ids, see
|
# Also tests duplicate representation ids, see
|
||||||
# https://github.com/ytdl-org/youtube-dl/issues/15111
|
# https://github.com/ytdl-org/youtube-dl/issues/15111
|
||||||
'float_duration',
|
'float_duration',
|
||||||
'http://unknown/manifest.mpd',
|
'http://unknown/manifest.mpd', # mpd_url
|
||||||
|
None, # mpd_base_url
|
||||||
[{
|
[{
|
||||||
'manifest_url': 'http://unknown/manifest.mpd',
|
'manifest_url': 'http://unknown/manifest.mpd',
|
||||||
'ext': 'm4a',
|
'ext': 'm4a',
|
||||||
|
@ -654,7 +655,8 @@ def test_parse_mpd_formats(self):
|
||||||
), (
|
), (
|
||||||
# https://github.com/ytdl-org/youtube-dl/pull/14844
|
# https://github.com/ytdl-org/youtube-dl/pull/14844
|
||||||
'urls_only',
|
'urls_only',
|
||||||
'http://unknown/manifest.mpd',
|
'http://unknown/manifest.mpd', # mpd_url
|
||||||
|
None, # mpd_base_url
|
||||||
[{
|
[{
|
||||||
'manifest_url': 'http://unknown/manifest.mpd',
|
'manifest_url': 'http://unknown/manifest.mpd',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
|
@ -733,15 +735,61 @@ def test_parse_mpd_formats(self):
|
||||||
'width': 1920,
|
'width': 1920,
|
||||||
'height': 1080,
|
'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,
|
with io.open('./test/testdata/mpd/%s.mpd' % mpd_file,
|
||||||
mode='r', encoding='utf-8') as f:
|
mode='r', encoding='utf-8') as f:
|
||||||
formats = self.ie._parse_mpd_formats(
|
formats = self.ie._parse_mpd_formats(
|
||||||
compat_etree_fromstring(f.read().encode('utf-8')),
|
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)
|
self.ie._sort_formats(formats)
|
||||||
expect_value(self, formats, expected_formats, None)
|
expect_value(self, formats, expected_formats, None)
|
||||||
|
|
||||||
|
|
28
test/testdata/mpd/unfragmented.mpd
vendored
Normal file
28
test/testdata/mpd/unfragmented.mpd
vendored
Normal file
|
@ -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>
|
Loading…
Reference in a new issue