mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-16 14:27:53 +00:00
[utils] Restrict parse_codecs and add theora as known vcodec (#21381)
This commit is contained in:
parent
8361e7f934
commit
28cc2241e4
@ -822,6 +822,15 @@ class TestUtil(unittest.TestCase):
|
|||||||
'vcodec': 'av01.0.05M.08',
|
'vcodec': 'av01.0.05M.08',
|
||||||
'acodec': 'none',
|
'acodec': 'none',
|
||||||
})
|
})
|
||||||
|
self.assertEqual(parse_codecs('theora, vorbis'), {
|
||||||
|
'vcodec': 'theora',
|
||||||
|
'acodec': 'vorbis',
|
||||||
|
})
|
||||||
|
self.assertEqual(parse_codecs('unknownvcodec, unknownacodec'), {
|
||||||
|
'vcodec': 'unknownvcodec',
|
||||||
|
'acodec': 'unknownacodec',
|
||||||
|
})
|
||||||
|
self.assertEqual(parse_codecs('unknown'), {})
|
||||||
|
|
||||||
def test_escape_rfc3986(self):
|
def test_escape_rfc3986(self):
|
||||||
reserved = "!*'();:@&=+$,/?#[]"
|
reserved = "!*'();:@&=+$,/?#[]"
|
||||||
|
@ -2529,7 +2529,7 @@ def parse_codecs(codecs_str):
|
|||||||
vcodec, acodec = None, None
|
vcodec, acodec = None, None
|
||||||
for full_codec in splited_codecs:
|
for full_codec in splited_codecs:
|
||||||
codec = full_codec.split('.')[0]
|
codec = full_codec.split('.')[0]
|
||||||
if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av01'):
|
if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av01', 'theora'):
|
||||||
if not vcodec:
|
if not vcodec:
|
||||||
vcodec = full_codec
|
vcodec = full_codec
|
||||||
elif codec in ('mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'):
|
elif codec in ('mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'):
|
||||||
@ -2540,13 +2540,8 @@ def parse_codecs(codecs_str):
|
|||||||
if not vcodec and not acodec:
|
if not vcodec and not acodec:
|
||||||
if len(splited_codecs) == 2:
|
if len(splited_codecs) == 2:
|
||||||
return {
|
return {
|
||||||
'vcodec': vcodec,
|
'vcodec': splited_codecs[0],
|
||||||
'acodec': acodec,
|
'acodec': splited_codecs[1],
|
||||||
}
|
|
||||||
elif len(splited_codecs) == 1:
|
|
||||||
return {
|
|
||||||
'vcodec': 'none',
|
|
||||||
'acodec': vcodec,
|
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
return {
|
return {
|
||||||
|
Loading…
Reference in New Issue
Block a user