Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 766178d

Browse files
committedJun 29, 2023
set timecode length to match the length video essence
1 parent 7c3dc68 commit 766178d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed
 

‎examples/aaf_embed_media_tool.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ def create_matte_key_definition(f):
371371
def import_video_essence(f, mastermob, stream, compmob=None, tapemob=None, timecode_start_time=None):
372372
tape_clip = None
373373
edit_rate = stream['frame_rate']
374-
start_time = None
374+
375375
if tapemob:
376376
tape_clip = tapemob.create_source_clip(1, start=timecode_start_time)
377377

@@ -417,6 +417,8 @@ def import_video_essence(f, mastermob, stream, compmob=None, tapemob=None, timec
417417
op_group.segments.append(mastermob.create_source_clip(color_slot.slot_id, length=length))
418418
op_group.segments.append(mastermob.create_source_clip(alpha_slot.slot_id, length=length))
419419

420+
return color_slot
421+
420422
def create_mastermob_from_streams(f, media_streams, mob_name, tape_name=None, edit_rate = None):
421423
mastermob = f.create.MasterMob(mob_name)
422424
f.content.mobs.append(mastermob)
@@ -457,25 +459,27 @@ def create_mastermob_from_streams(f, media_streams, mob_name, tape_name=None, ed
457459
break
458460

459461
tapemob = None
460-
462+
timecode_slot = None
461463
if tape_name:
462464
tapemob = f.create.SourceMob()
463-
tapemob.create_tape_slots(tape_name, edit_rate, timecode_rate)
465+
_, timecode_slot = tapemob.create_tape_slots(tape_name, edit_rate, timecode_rate)
464466
f.content.mobs.append(tapemob)
465467

466468
for stream in media_streams:
467469
if stream['type'] == 'video':
468470
print("importing video...")
469471
start = time.time()
470-
import_video_essence(f, mastermob, stream, compmob, tapemob, timecode_start_time)
472+
slot = import_video_essence(f, mastermob, stream, compmob, tapemob, timecode_start_time)
473+
# otio currently uses the length of the timecodes slot length for available ranges
474+
# in a media reference ensure it matches video length
475+
timecode_slot.segment.length = slot.segment.length
471476
print("imported video in %f secs" % (time.time()- start))
472477

473478
for stream in media_streams:
474479

475480
if stream['type'] == 'audio':
476481
print("importing audio...")
477482
start = time.time()
478-
sample_rate = stream['sample_rate']
479483
slot = mastermob.import_audio_essence(stream['path'], edit_rate)
480484
if compmob:
481485
sound_slot = compmob.create_sound_slot(edit_rate)

0 commit comments

Comments
 (0)
Please sign in to comment.