inc
This commit is contained in:
@@ -174,6 +174,8 @@ class FfxController():
|
||||
|
||||
mediaDifferences = targetMediaDescriptor.compare(sourceMediaDescriptor)
|
||||
|
||||
click.echo(f"media diff {mediaDifferences}")
|
||||
|
||||
if MediaDescriptor.TAGS_KEY in mediaDifferences.keys():
|
||||
|
||||
sourceTags = sourceMediaDescriptor.getTags()
|
||||
|
||||
@@ -18,6 +18,8 @@ class FileProperties():
|
||||
|
||||
def __init__(self, context, sourcePath):
|
||||
|
||||
self.context = context
|
||||
|
||||
# Separate basedir, basename and extension for current source file
|
||||
self.__sourcePath = sourcePath
|
||||
|
||||
@@ -189,7 +191,7 @@ class FileProperties():
|
||||
|
||||
|
||||
def getMediaDescriptor(self):
|
||||
return MediaDescriptor.fromFfprobe(self.getFormatData(), self.getStreamData())
|
||||
return MediaDescriptor.fromFfprobe(self.getFormatData(), self.getStreamData(), context = self.context)
|
||||
|
||||
|
||||
def getShowId(self) -> int:
|
||||
|
||||
@@ -13,6 +13,8 @@ from ffx.helper import dictDiff, DIFF_ADDED_KEY, DIFF_CHANGED_KEY, DIFF_REMOVED_
|
||||
class MediaDescriptor():
|
||||
"""This class represents the structural content of a media file including streams and metadata"""
|
||||
|
||||
CONTEXT_KEY = 'context'
|
||||
|
||||
TAGS_KEY = 'tags'
|
||||
TRACKS_KEY = 'tracks'
|
||||
|
||||
@@ -22,6 +24,7 @@ class MediaDescriptor():
|
||||
FFPROBE_DISPOSITION_KEY = 'disposition'
|
||||
FFPROBE_TAGS_KEY = 'tags'
|
||||
FFPROBE_CODEC_TYPE_KEY = 'codec_type'
|
||||
|
||||
JELLYFIN_ORDER_FLAG_KEY = 'jellyfin_order'
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
@@ -34,9 +37,6 @@ class MediaDescriptor():
|
||||
self.__mediaTags = {}
|
||||
|
||||
if MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY in kwargs.keys():
|
||||
# if type(kwargs[MediaDescriptor.TRACK_DESCRIPTORS_KEY]) is not List[TrackDescriptor]: # Use List typehint for TrackDescriptor as well if it works
|
||||
# raise TypeError(f"MediaDescriptor.__init__(): Argument {MediaDescriptor.TRACK_DESCRIPTORS_KEY} is required to be of type list containing only elements of type TrackDescriptor")
|
||||
|
||||
if type(kwargs[MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY]) is not list: # Use List typehint for TrackDescriptor as well if it works
|
||||
raise TypeError(f"MediaDescriptor.__init__(): Argument {MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY} is required to be of type list")
|
||||
for d in kwargs[MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY]:
|
||||
@@ -105,7 +105,7 @@ class MediaDescriptor():
|
||||
|
||||
|
||||
@classmethod
|
||||
def fromFfprobe(cls, formatData, streamData):
|
||||
def fromFfprobe(cls, formatData, streamData, context : dict = None):
|
||||
|
||||
kwargs = {}
|
||||
|
||||
@@ -114,6 +114,7 @@ class MediaDescriptor():
|
||||
|
||||
kwargs[MediaDescriptor.TRACK_DESCRIPTOR_LIST_KEY] = []
|
||||
|
||||
#TODO: Evtl obsolet
|
||||
subIndexCounters = {}
|
||||
|
||||
for streamObj in streamData:
|
||||
@@ -165,6 +166,12 @@ class MediaDescriptor():
|
||||
subIndex += 1
|
||||
return subtitleTracks
|
||||
|
||||
def getJellyfin(self):
|
||||
return self.__jellyfinOrder
|
||||
|
||||
def setJellyfinOrder(self, state):
|
||||
self.__jellyfinOrder = state
|
||||
|
||||
def getClearTags(self):
|
||||
return self.__clearTags
|
||||
|
||||
@@ -226,25 +233,17 @@ class MediaDescriptor():
|
||||
return compareResult
|
||||
|
||||
|
||||
def getInputMappingTokens(self):
|
||||
def getInputMappingTokens(self, use_sub_index : bool = True):
|
||||
|
||||
reorderedTrackDescriptors = self.getReorderedTrackDescriptors()
|
||||
inputMappingTokens = []
|
||||
|
||||
#subIndexCounter = {}
|
||||
for rtd in reorderedTrackDescriptors:
|
||||
trackType = rtd.getType()
|
||||
#if not trackType in subIndexCounter.keys():
|
||||
# subIndexCounter[trackType] = 0
|
||||
#inputMappingTokens += ['-map', f"0:{trackType.indicator()}:{subIndexCounter[trackType]}"]
|
||||
inputMappingTokens += ['-map', f"0:{trackType.indicator()}:{rtd.getSubIndex()}"]
|
||||
#subIndexCounter[trackType] += 1
|
||||
trackType = rtd.getType()
|
||||
if use_sub_index:
|
||||
inputMappingTokens += ['-map', f"0:{trackType.indicator()}:{rtd.getSubIndex()}"]
|
||||
else:
|
||||
inputMappingTokens += ['-map', f"0:{rtd.getIndex()}"]
|
||||
|
||||
return inputMappingTokens
|
||||
|
||||
# for rtd in reorderedTrackDescriptors:
|
||||
# trackType = rtd.getType()
|
||||
# #if not trackType in subIndexCounter.keys():
|
||||
# # subIndexCounter[trackType] = 0
|
||||
# #inputMappingTokens += ['-map', f"0:{trackType.indicator()}:{subIndexCounter[trackType]}"]
|
||||
# inputMappingTokens += ['-map', f"0:{rtd.getIndex()}"]
|
||||
# #subIndexCounter[trackType] += 1
|
||||
# return inputMappingTokens
|
||||
|
||||
Reference in New Issue
Block a user