|
|
@ -1,3 +1,4 @@
|
|
|
|
|
|
|
|
import click
|
|
|
|
from enum import Enum
|
|
|
|
from enum import Enum
|
|
|
|
from .track_type import TrackType
|
|
|
|
from .track_type import TrackType
|
|
|
|
|
|
|
|
|
|
|
@ -19,7 +20,7 @@ class AudioLayout(Enum):
|
|
|
|
|
|
|
|
|
|
|
|
def index(self):
|
|
|
|
def index(self):
|
|
|
|
"""Returns the layout as string"""
|
|
|
|
"""Returns the layout as string"""
|
|
|
|
return self.value['layout']
|
|
|
|
return self.value['index']
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def fromIndex(index : int):
|
|
|
|
def fromIndex(index : int):
|
|
|
@ -28,7 +29,8 @@ class AudioLayout(Enum):
|
|
|
|
except:
|
|
|
|
except:
|
|
|
|
return AudioLayout.LAYOUT_UNDEFINED
|
|
|
|
return AudioLayout.LAYOUT_UNDEFINED
|
|
|
|
|
|
|
|
|
|
|
|
def identify(self, streamObj):
|
|
|
|
@staticmethod
|
|
|
|
|
|
|
|
def identify(streamObj):
|
|
|
|
|
|
|
|
|
|
|
|
FFPROBE_LAYOUT_KEY = 'channel_layout'
|
|
|
|
FFPROBE_LAYOUT_KEY = 'channel_layout'
|
|
|
|
FFPROBE_CHANNELS_KEY = 'channels'
|
|
|
|
FFPROBE_CHANNELS_KEY = 'channels'
|
|
|
@ -40,7 +42,7 @@ class AudioLayout(Enum):
|
|
|
|
raise Exception('Not an ffprobe audio stream object')
|
|
|
|
raise Exception('Not an ffprobe audio stream object')
|
|
|
|
|
|
|
|
|
|
|
|
if FFPROBE_LAYOUT_KEY in streamObj.keys():
|
|
|
|
if FFPROBE_LAYOUT_KEY in streamObj.keys():
|
|
|
|
matchingLayouts = [l for l in AudioLayout if l.value['layout'] == streamObj[FFPROBE_LAYOUT_KEY]]
|
|
|
|
matchingLayouts = [l for l in AudioLayout if l.label() == streamObj[FFPROBE_LAYOUT_KEY]]
|
|
|
|
if matchingLayouts:
|
|
|
|
if matchingLayouts:
|
|
|
|
return matchingLayouts[0]
|
|
|
|
return matchingLayouts[0]
|
|
|
|
|
|
|
|
|
|
|
|