mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[utils] Restrict parse_codecs and add theora as known vcodec (#21381)
This commit is contained in:
		| @@ -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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user