def test_result(self): f = aaf.open(main_test_file, 'r') assert len(f.storage.master_mobs()) == 1 mob = f.storage.lookup_mob(mob_id) assert mob.name == mob_name for i, slot in enumerate(mob.slots()): print(slot.name) assert slot.name == slot_names[i] seg = slot.segment print(seg) if slot.slotID == NumMobSlots: assert isinstance(seg, aaf.component.Sequence) else: assert isinstance(seg, aaf.component.SourceClip) src_mob = seg.resolve_ref() for s in src_mob.slots(): tape_mob = s.segment.resolve_ref() tape_description = tape_mob.essence_descriptor print(tape_mob) print(tape_description) print("ManufacturerID =", tape_description['ManufacturerID'].value) assert tape_description['ManufacturerID'].value == manufacturer print("Model", tape_description['Model'].value) assert tape_description['Model'].value == model print("FormFactor", tape_description['FormFactor'].value)
def test_result(self): f = aaf.open(main_test_file, 'r') assert len(f.storage.master_mobs()) == 1 mob = f.storage.lookup_mob(mob_id) assert mob.name == mob_name for i, slot in enumerate(mob.slots()): print slot.name assert slot.name == slot_names[i] seg = slot.segment #print seg if slot.slotID == NumMobSlots: assert isinstance(seg, aaf.component.Sequence) else: assert isinstance(seg, aaf.component.SourceClip) src_mob = seg.resolve_ref() for s in src_mob.slots(): tape_mob = s.segment.resolve_ref() tape_description = tape_mob.essence_descriptor print tape_mob print tape_description print "ManufacturerID =", tape_description[ 'ManufacturerID'].value assert tape_description[ 'ManufacturerID'].value == manufacturer print "Model", tape_description['Model'].value assert tape_description['Model'].value == model print "FormFactor", tape_description['FormFactor'].value
def test_file(self): f = aaf.open(main_test_file, "r") mob = f.storage.lookup_mob(mob_id) for slot in mob.slots(): for i, p in enumerate(slot.segment.parameter["testParam"].points()): assert point_values[i] == float(p.value)
def test_file(self): f = aaf.open(main_test_file, 'r') mob = f.storage.lookup_mob(mob_id) for slot in mob.slots(): for i, p in enumerate( slot.segment.parameter['testParam'].points()): assert point_values[i] == float(p.value)
def test_basic(self): test_file = os.path.join(sandbox, "test_EdgeCode.aaf") f = aaf.open(test_file, 'w') mob = f.create.CompositionMob() f.storage.add_mob(mob) edge_code_header = 'BOB' # manually initialize edgecode = aaf.component.EdgeCode(f, header=edge_code_header) edgecode['Length'].value = 10 mob.append_new_timeline_slot("0/1", edgecode, 0, "edgecode", 0) #print(edgecode.header) assert edgecode.header == edge_code_header # test create interface edgecode2 = f.create.EdgeCode(100, header=edge_code_header) assert edgecode2.header == edge_code_header assert edgecode2['Length'].value == 100 edgecode.header = u"BOB2" assert edgecode.header == "BOB2" f.save() f.close() f = aaf.open(test_file, 'r') mob = f.storage.composition_mobs()[0] edgecode = mob.slots()[0].segment assert edgecode.header == "BOB2"
def test_basic(self): test_file = os.path.join(sandbox, "test_TimelineMobSlot.aaf") f = aaf.open(test_file, 'w') timeline = f.create.TimelineMobSlot() timeline.mark_in = 1 assert timeline.mark_in == 1 timeline.mark_in = 2 assert timeline.mark_in == 2 timeline.mark_out = 100 assert timeline.mark_out == 100 timeline.mark_out = 10 assert timeline.mark_out == 10 # File won't save unless MobSlot has a segment seq = f.create.Sequence("picture") timeline.segment = seq mob = f.create.MasterMob() mob.append_slot(timeline) f.storage.add_mob(mob) f.save() f.close() f = aaf.open(test_file, 'r') mob = f.storage.master_mobs()[0] timeline = mob.slots()[0] print(timeline) assert timeline.mark_in == 2 assert timeline.mark_out == 10 f.close()
def _extract_start_timecode(mob): """Given a mob with a single timecode slot, return the timecode in that slot or None if no timecode slots could be found. """ tc_list = [ s.segment['Start'].value for s in mob.slots() if s.segment.media_kind == 'Timecode' ] if len(tc_list) == 1: return tc_list[0] elif len(tc_list) > 1: raise otio.exceptions.NotSupportedError( "Error: mob has more than one timecode slots, this is not" " currently supported by the AAF adapter. found: {} slots, " " mob name is: '{}'".format(len(tc_list), mob.name)) else: # tc_list is empty return None