You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
3.0 KiB
Python
72 lines
3.0 KiB
Python
from enum import Enum
|
|
|
|
|
|
class TrackCodec(Enum):
|
|
|
|
H265 = {'identifier': 'hevc', 'format': 'h265', 'extension': 'h265' ,'label': 'H.265'}
|
|
H264 = {'identifier': 'h264', 'format': 'h264', 'extension': 'h264' ,'label': 'H.264'}
|
|
MPEG4 = {'identifier': 'mpeg4', 'format': 'm4v', 'extension': 'm4v' ,'label': 'MPEG-4'}
|
|
MPEG2 = {'identifier': 'mpeg2video', 'format': 'mpeg2video', 'extension': 'mpg' ,'label': 'MPEG-2'}
|
|
|
|
AAC = {'identifier': 'aac', 'format': None, 'extension': 'aac' , 'label': 'AAC'}
|
|
AC3 = {'identifier': 'ac3', 'format': 'ac3', 'extension': 'ac3' , 'label': 'AC3'}
|
|
EAC3 = {'identifier': 'eac3', 'format': 'eac3', 'extension': 'eac3' , 'label': 'EAC3'}
|
|
DTS = {'identifier': 'dts', 'format': 'dts', 'extension': 'dts' , 'label': 'DTS'}
|
|
MP3 = {'identifier': 'mp3', 'format': 'mp3', 'extension': 'mp3' , 'label': 'MP3'}
|
|
|
|
PCM_S24LE = {'identifier': 'pcm_s24le', 'format': 's32', 'extension': 'raw' , 'label': 'PCM_S24LE'}
|
|
|
|
SRT = {'identifier': 'subrip', 'format': 'srt', 'extension': 'srt' , 'label': 'SRT'}
|
|
ASS = {'identifier': 'ass', 'format': 'ass', 'extension': 'ass' , 'label': 'ASS'}
|
|
PGS = {'identifier': 'hdmv_pgs_subtitle', 'format': 'sup', 'extension': 'sup' , 'label': 'PGS'}
|
|
VOBSUB = {'identifier': 'dvd_subtitle', 'format': None, 'extension': 'mkv' , 'label': 'VobSub'}
|
|
|
|
PNG = {'identifier': 'png', 'format': None, 'extension': 'png' , 'label': 'PNG'}
|
|
|
|
UNKNOWN = {'identifier': 'unknown', 'format': None, 'extension': None, 'label': 'UNKNOWN'}
|
|
|
|
|
|
|
|
# Stream #0:1(ger): Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s (default)
|
|
# Stream #0:2(jpn): Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s
|
|
|
|
|
|
|
|
# Stream #0:2(jpn): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
|
|
|
|
|
|
|
|
|
|
|
|
def identifier(self):
|
|
"""Returns the codec identifier"""
|
|
return str(self.value['identifier'])
|
|
|
|
def label(self):
|
|
"""Returns the codec as string"""
|
|
return str(self.value['label'])
|
|
|
|
def format(self):
|
|
"""Returns the codec """
|
|
return self.value['format']
|
|
|
|
def extension(self):
|
|
"""Returns the corresponding extension"""
|
|
return str(self.value['extension'])
|
|
|
|
@staticmethod
|
|
def identify(identifier: str):
|
|
clist = [c for c in TrackCodec if c.value['identifier'] == str(identifier)]
|
|
if clist:
|
|
return clist[0]
|
|
else:
|
|
return TrackCodec.UNKNOWN
|
|
|
|
@staticmethod
|
|
def fromLabel(label: str):
|
|
clist = [c for c in TrackCodec if c.value['identifier'] == str(label)]
|
|
if clist:
|
|
return clist[0]
|
|
else:
|
|
return TrackCodec.UNKNOWN
|