|
|
@ -3030,7 +3030,7 @@ def parse_codecs(codecs_str):
|
|
|
|
return {}
|
|
|
|
return {}
|
|
|
|
split_codecs = list(filter(None, map(
|
|
|
|
split_codecs = list(filter(None, map(
|
|
|
|
str.strip, codecs_str.strip().strip(',').split(','))))
|
|
|
|
str.strip, codecs_str.strip().strip(',').split(','))))
|
|
|
|
vcodec, acodec, scodec, hdr = None, None, None, None
|
|
|
|
vcodec, acodec, scodec, hdr, container = None, None, None, None, None
|
|
|
|
for full_codec in split_codecs:
|
|
|
|
for full_codec in split_codecs:
|
|
|
|
full_codec = re.sub(r'^([^.]+)', lambda m: m.group(1).lower(), full_codec)
|
|
|
|
full_codec = re.sub(r'^([^.]+)', lambda m: m.group(1).lower(), full_codec)
|
|
|
|
parts = re.sub(r'0+(?=\d)', '', full_codec).split('.')
|
|
|
|
parts = re.sub(r'0+(?=\d)', '', full_codec).split('.')
|
|
|
@ -3046,8 +3046,10 @@ def parse_codecs(codecs_str):
|
|
|
|
elif parts[:2] == ['vp9', '2']:
|
|
|
|
elif parts[:2] == ['vp9', '2']:
|
|
|
|
hdr = 'HDR10'
|
|
|
|
hdr = 'HDR10'
|
|
|
|
elif parts[0] in ('flac', 'mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-4',
|
|
|
|
elif parts[0] in ('flac', 'mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-4',
|
|
|
|
'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'):
|
|
|
|
'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl', 'iamf'):
|
|
|
|
acodec = acodec or full_codec
|
|
|
|
acodec = acodec or full_codec
|
|
|
|
|
|
|
|
if parts[0] == 'iamf':
|
|
|
|
|
|
|
|
container = 'iamf'
|
|
|
|
elif parts[0] in ('stpp', 'wvtt'):
|
|
|
|
elif parts[0] in ('stpp', 'wvtt'):
|
|
|
|
scodec = scodec or full_codec
|
|
|
|
scodec = scodec or full_codec
|
|
|
|
else:
|
|
|
|
else:
|
|
|
@ -3058,6 +3060,7 @@ def parse_codecs(codecs_str):
|
|
|
|
'acodec': acodec or 'none',
|
|
|
|
'acodec': acodec or 'none',
|
|
|
|
'dynamic_range': hdr,
|
|
|
|
'dynamic_range': hdr,
|
|
|
|
**({'scodec': scodec} if scodec is not None else {}),
|
|
|
|
**({'scodec': scodec} if scodec is not None else {}),
|
|
|
|
|
|
|
|
**({'container': container} if container is not None else {}),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
elif len(split_codecs) == 2:
|
|
|
|
elif len(split_codecs) == 2:
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|