Files
ffx/build/lib/ffx/test/disposition_combinator_2_2.py
2025-02-16 23:54:32 +01:00

80 lines
3.6 KiB
Python

import os, sys, importlib, glob, inspect
from ffx.track_disposition import TrackDisposition
from .disposition_combinator_2 import DispositionCombinator2
class DispositionCombinator22(DispositionCombinator2):
VARIANT = 'D01'
def __init__(self, context = None,
createPresets: bool = False):
super().__init__(context)
self.__createPresets = createPresets
def getVariant(self):
return DispositionCombinator22.VARIANT
def getPayload(self):
if self.__createPresets:
subtrack0 = set([TrackDisposition.DEFAULT])
subtrack1 = set()
else:
subtrack0 = set()
subtrack1 = set([TrackDisposition.DEFAULT])
#NOTE: Current ffmpeg version will not set most of the dispositions on arbitrary tracks
# so some checks for preserved dispositions are omitted for now
if self.__createPresets:
subtrack0.add(TrackDisposition.FORCED) # COMMENT
# subtrack1.add(TrackDisposition.DESCRIPTIONS) # DESCRIPTIONS
return (subtrack0,
subtrack1)
def createAssertFunc(self):
if self.__createPresets:
def f(assertObj: dict):
if not 'tracks' in assertObj.keys():
raise KeyError("assertObj does not contain key 'tracks'")
trackDescriptors = assertObj['tracks']
# source subIndex 0
assert (not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT)
), f"Stream #0 index={trackDescriptors[0].getIndex()} [{trackDescriptors[0].getType().label()}:{trackDescriptors[0].getSubIndex()}] has set default disposition"
assert (trackDescriptors[0].getDispositionFlag(TrackDisposition.FORCED)
), f"Stream #0 index={trackDescriptors[0].getIndex()} [{trackDescriptors[0].getType().label()}:{trackDescriptors[0].getSubIndex()}] has not preserved set 'descriptions' disposition"
# source subIndex 1
assert (trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT)
), f"Stream #1 index={trackDescriptors[1].getIndex()} [{trackDescriptors[1].getType().label()}:{trackDescriptors[1].getSubIndex()}] has not set default disposition"
# assert (trackDescriptors[1].getDispositionFlag(TrackDisposition.DESCRIPTIONS)
# ), f"Stream #1 index={trackDescriptors[1].getIndex()} [{trackDescriptors[1].getType().label()}:{trackDescriptors[1].getSubIndex()}] has not preserved 'forced' disposition"
else:
def f(assertObj: dict):
if not 'tracks' in assertObj.keys():
raise KeyError("assertObj does not contain key 'tracks'")
trackDescriptors = assertObj['tracks']
# source subIndex 0
assert (not trackDescriptors[0].getDispositionFlag(TrackDisposition.DEFAULT)
), f"Stream #0 index={trackDescriptors[0].getIndex()} [{trackDescriptors[0].getType().label()}:{trackDescriptors[0].getSubIndex()}] has set default disposition"
# source subIndex 1
assert (trackDescriptors[1].getDispositionFlag(TrackDisposition.DEFAULT)
), f"Stream #1 index={trackDescriptors[1].getIndex()} [{trackDescriptors[1].getType().label()}:{trackDescriptors[1].getSubIndex()}] has not set default disposition"
return f
def shouldFail(self):
return False