@ -105,14 +105,16 @@ class MediaDescriptor:
def setDefaultSubTrack ( self , trackType : TrackType , subIndex : int ) :
def setDefaultSubTrack ( self , trackType : TrackType , subIndex : int ) :
for t in self . getAllTrackDescriptors ( ) :
# for t in self.getAllTrackDescriptors():
for t in self . getTrackDescriptors ( ) :
if t . getType ( ) == trackType :
if t . getType ( ) == trackType :
t . setDispositionFlag (
t . setDispositionFlag (
TrackDisposition . DEFAULT , t . getSubIndex ( ) == int ( subIndex )
TrackDisposition . DEFAULT , t . getSubIndex ( ) == int ( subIndex )
)
)
def setForcedSubTrack ( self , trackType : TrackType , subIndex : int ) :
def setForcedSubTrack ( self , trackType : TrackType , subIndex : int ) :
for t in self . getAllTrackDescriptors ( ) :
# for t in self.getAllTrackDescriptors():
for t in self . getTrackDescriptors ( ) :
if t . getType ( ) == trackType :
if t . getType ( ) == trackType :
t . setDispositionFlag (
t . setDispositionFlag (
TrackDisposition . FORCED , t . getSubIndex ( ) == int ( subIndex )
TrackDisposition . FORCED , t . getSubIndex ( ) == int ( subIndex )
@ -188,7 +190,8 @@ class MediaDescriptor:
def applySourceIndices ( self , sourceMediaDescriptor : Self ) :
def applySourceIndices ( self , sourceMediaDescriptor : Self ) :
sourceTrackDescriptors = sourceMediaDescriptor . getAllTrackDescriptors ( )
# sourceTrackDescriptors = sourceMediaDescriptor.getAllTrackDescriptors()
sourceTrackDescriptors = sourceMediaDescriptor . getTrackDescriptors ( )
numTrackDescriptors = len ( self . __trackDescriptors )
numTrackDescriptors = len ( self . __trackDescriptors )
if len ( sourceTrackDescriptors ) != numTrackDescriptors :
if len ( sourceTrackDescriptors ) != numTrackDescriptors :
@ -283,9 +286,9 @@ class MediaDescriptor:
tdList [ trackIndex ] . setIndex ( trackIndex )
tdList [ trackIndex ] . setIndex ( trackIndex )
def getAllTrackDescriptors ( self ) :
# def getAllTrackDescriptors(self) :
""" Returns all track descriptors sorted by type: video, audio then subtitles """
# """ Returns all track descriptors sorted by type: video, audio then subtitles"""
return self . getVideoTracks ( ) + self . getAudioTracks ( ) + self . getSubtitleTracks ( )
# return self.getVideoTracks() + self.getAudioTracks() + self.getSubtitleTracks()
def getTrackDescriptors ( self ,
def getTrackDescriptors ( self ,
@ -345,16 +348,23 @@ class MediaDescriptor:
inputMappingTokens = [ ]
inputMappingTokens = [ ]
sortedTrackDescriptors = sorted ( self . __trackDescriptors , key = lambda d : d . getIndex ( ) )
# raise click.ClickException(' '.join([f"\nindex={td.getIndex()} subIndex={td.getSubIndex()} srcIndex={td.getSourceIndex()} type={td.getType().label()}" for td in self.__trackDescriptors]))
filePointer = 1
filePointer = 1
for trackIndex in range ( len ( self . __trackDescriptors ) ) :
for trackIndex in range ( len ( sortedTrackDescriptors ) ) :
td : TrackDescriptor = sortedTrackDescriptors [ trackIndex ]
td : TrackDescriptor = self . __trackDescriptors [ trackIndex ]
if td . getCodec ( ) != TrackCodec . PNG :
stdi = self . __t rackDescriptors[ td . getSourceIndex ( ) ] . getIndex ( )
stdi = sortedT rackDescriptors[ td . getSourceIndex ( ) ] . getIndex ( )
stdsi = self . __t rackDescriptors[ td . getSourceIndex ( ) ] . getSubIndex ( )
stdsi = sortedT rackDescriptors[ td . getSourceIndex ( ) ] . getSubIndex ( )
trackType = td . getType ( )
trackType = td . getType ( )
# if ((trackType == TrackType.VIDEO and td.getCodec() != TrackCodec.PNG) or not only_video):
if ( trackType == TrackType . VIDEO or not only_video ) :
if ( trackType == TrackType . VIDEO or not only_video ) :
importedFilePath = td . getExternalSourceFilePath ( )
importedFilePath = td . getExternalSourceFilePath ( )
@ -463,7 +473,8 @@ class MediaDescriptor:
def getConfiguration ( self , label : str = ' ' ) :
def getConfiguration ( self , label : str = ' ' ) :
yield f " --- { label if label else ' MediaDescriptor ' + str ( id ( self ) ) } { ' ' . join ( [ str ( k ) + ' = ' + str ( v ) for k , v in self . __mediaTags . items ( ) ] ) } "
yield f " --- { label if label else ' MediaDescriptor ' + str ( id ( self ) ) } { ' ' . join ( [ str ( k ) + ' = ' + str ( v ) for k , v in self . __mediaTags . items ( ) ] ) } "
for td in self . getAllTrackDescriptors ( ) :
# for td in self.getAllTrackDescriptors():
for td in self . getTrackDescriptors ( ) :
yield ( f " { td . getIndex ( ) } : { td . getType ( ) . indicator ( ) } : { td . getSubIndex ( ) } "
yield ( f " { td . getIndex ( ) } : { td . getType ( ) . indicator ( ) } : { td . getSubIndex ( ) } "
+ ' | ' . join ( [ d . indicator ( ) for d in td . getDispositionSet ( ) ] )
+ ' | ' . join ( [ d . indicator ( ) for d in td . getDispositionSet ( ) ] )
+ ' ' + ' ' . join ( [ str ( k ) + ' = ' + str ( v ) for k , v in td . getTags ( ) . items ( ) ] ) )
+ ' ' + ' ' . join ( [ str ( k ) + ' = ' + str ( v ) for k , v in td . getTags ( ) . items ( ) ] ) )