@@ -371,7 +371,7 @@ def create_matte_key_definition(f):
371
371
def import_video_essence (f , mastermob , stream , compmob = None , tapemob = None , timecode_start_time = None ):
372
372
tape_clip = None
373
373
edit_rate = stream ['frame_rate' ]
374
- start_time = None
374
+
375
375
if tapemob :
376
376
tape_clip = tapemob .create_source_clip (1 , start = timecode_start_time )
377
377
@@ -417,6 +417,8 @@ def import_video_essence(f, mastermob, stream, compmob=None, tapemob=None, timec
417
417
op_group .segments .append (mastermob .create_source_clip (color_slot .slot_id , length = length ))
418
418
op_group .segments .append (mastermob .create_source_clip (alpha_slot .slot_id , length = length ))
419
419
420
+ return color_slot
421
+
420
422
def create_mastermob_from_streams (f , media_streams , mob_name , tape_name = None , edit_rate = None ):
421
423
mastermob = f .create .MasterMob (mob_name )
422
424
f .content .mobs .append (mastermob )
@@ -457,25 +459,27 @@ def create_mastermob_from_streams(f, media_streams, mob_name, tape_name=None, ed
457
459
break
458
460
459
461
tapemob = None
460
-
462
+ timecode_slot = None
461
463
if tape_name :
462
464
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 )
464
466
f .content .mobs .append (tapemob )
465
467
466
468
for stream in media_streams :
467
469
if stream ['type' ] == 'video' :
468
470
print ("importing video..." )
469
471
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
471
476
print ("imported video in %f secs" % (time .time ()- start ))
472
477
473
478
for stream in media_streams :
474
479
475
480
if stream ['type' ] == 'audio' :
476
481
print ("importing audio..." )
477
482
start = time .time ()
478
- sample_rate = stream ['sample_rate' ]
479
483
slot = mastermob .import_audio_essence (stream ['path' ], edit_rate )
480
484
if compmob :
481
485
sound_slot = compmob .create_sound_slot (edit_rate )
0 commit comments