fix unchanged tracks for external files
This commit is contained in:
@@ -317,6 +317,7 @@ class MediaDescriptor:
|
|||||||
|
|
||||||
|
|
||||||
def getImportFileTokens(self, use_sub_index: bool = True):
|
def getImportFileTokens(self, use_sub_index: bool = True):
|
||||||
|
"""Generate ffmpeg import options for external stream files"""
|
||||||
|
|
||||||
importFileTokens = []
|
importFileTokens = []
|
||||||
|
|
||||||
@@ -347,14 +348,11 @@ class MediaDescriptor:
|
|||||||
filePointer = 1
|
filePointer = 1
|
||||||
for trackIndex in range(len(self.__trackDescriptors)):
|
for trackIndex in range(len(self.__trackDescriptors)):
|
||||||
|
|
||||||
td = self.__trackDescriptors[trackIndex]
|
td: TrackDescriptor = self.__trackDescriptors[trackIndex]
|
||||||
|
|
||||||
stdi = self.__trackDescriptors[td.getSourceIndex()].getIndex()
|
stdi = self.__trackDescriptors[td.getSourceIndex()].getIndex()
|
||||||
stdsi = self.__trackDescriptors[td.getSourceIndex()].getSubIndex()
|
stdsi = self.__trackDescriptors[td.getSourceIndex()].getSubIndex()
|
||||||
|
|
||||||
# sti = self.__trackDescriptors[trackIndex].getSourceIndex()
|
|
||||||
# sotd = sourceOrderTrackDescriptors[sti]
|
|
||||||
|
|
||||||
trackType = td.getType()
|
trackType = td.getType()
|
||||||
|
|
||||||
if (trackType == TrackType.VIDEO or not only_video):
|
if (trackType == TrackType.VIDEO or not only_video):
|
||||||
|
|||||||
@@ -269,6 +269,7 @@ class MediaDescriptorChangeSet():
|
|||||||
|
|
||||||
addedTrackTags = tagsDiffObj[DIFF_ADDED_KEY] if DIFF_ADDED_KEY in tagsDiffObj.keys() else {}
|
addedTrackTags = tagsDiffObj[DIFF_ADDED_KEY] if DIFF_ADDED_KEY in tagsDiffObj.keys() else {}
|
||||||
changedTrackTags = tagsDiffObj[DIFF_CHANGED_KEY] if DIFF_CHANGED_KEY in tagsDiffObj.keys() else {}
|
changedTrackTags = tagsDiffObj[DIFF_CHANGED_KEY] if DIFF_CHANGED_KEY in tagsDiffObj.keys() else {}
|
||||||
|
unchangedTrackTags = tagsDiffObj[DIFF_UNCHANGED_KEY] if DIFF_UNCHANGED_KEY in tagsDiffObj.keys() else {}
|
||||||
removedTrackTags = tagsDiffObj[DIFF_REMOVED_KEY] if DIFF_REMOVED_KEY in tagsDiffObj.keys() else {}
|
removedTrackTags = tagsDiffObj[DIFF_REMOVED_KEY] if DIFF_REMOVED_KEY in tagsDiffObj.keys() else {}
|
||||||
|
|
||||||
outputTrackTags = addedTrackTags | changedTrackTags
|
outputTrackTags = addedTrackTags | changedTrackTags
|
||||||
@@ -285,6 +286,15 @@ class MediaDescriptorChangeSet():
|
|||||||
+ f":{trackDescriptor.getSubIndex()}",
|
+ f":{trackDescriptor.getSubIndex()}",
|
||||||
f"{removeKey}="]
|
f"{removeKey}="]
|
||||||
|
|
||||||
|
#HINT: In case of loading a track from an external file
|
||||||
|
# no tags from source are present for the track so
|
||||||
|
# the unchanged tracks are passed to the output file as well
|
||||||
|
if trackDescriptor.getExternalSourceFilePath():
|
||||||
|
for tagKey, tagValue in unchangedTrackTags.items():
|
||||||
|
metadataTokens += [f"-metadata:s:{trackDescriptor.getType().indicator()}"
|
||||||
|
+ f":{trackDescriptor.getSubIndex()}",
|
||||||
|
f"{tagKey}={tagValue}"]
|
||||||
|
|
||||||
return metadataTokens
|
return metadataTokens
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user