Skip to content

Commit e9a1f2b

Browse files
committed
Can name reels via clip.metadata['cmx_3600']
1 parent b944ce8 commit e9a1f2b

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

opentimelineio/adapters/cmx_3600.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,8 @@ def write_to_string(input_otio, rate=None, style='avid'):
647647
and isinstance(a_side.media_reference, otio.schema.Gap)
648648
):
649649
a_side_line.reel = 'BL'
650+
elif a_side.metadata.get('cmx_3600', {}).get('reel'):
651+
a_side_line.reel = a_side.metadata.get('cmx_3600').get('reel')
650652

651653
# Advance the edit number
652654
edit_number += 1
@@ -669,6 +671,8 @@ def write_to_string(input_otio, rate=None, style='avid'):
669671
and isinstance(b_side.media_reference, otio.schema.Gap)
670672
):
671673
b_side_line.reel = 'BL'
674+
elif b_side.metadata.get('cmx_3600', {}).get('reel'):
675+
b_side_line.reel = b_side.metadata.get('cmx_3600').get('reel')
672676

673677
# Event line to represent the middle cut
674678
cut_line = EventLine(
@@ -723,6 +727,8 @@ def write_to_string(input_otio, rate=None, style='avid'):
723727
and isinstance(clip.media_reference, otio.schema.Gap)
724728
):
725729
event_line.reel = 'BL'
730+
elif clip.metadata.get('cmx_3600', {}).get('reel'):
731+
event_line.reel = clip.metadata.get('cmx_3600').get('reel')
726732

727733
lines.append(str(event_line))
728734
lines += generate_comment_lines(

tests/test_cmx_3600_adapter.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,33 @@ def test_nucoda_edl_write_with_transition(self):
438438

439439
self.assertEqual(result, expected)
440440

441+
def test_custom_reel_names(self):
442+
track = otio.schema.Track()
443+
tl = otio.schema.Timeline(tracks=[track])
444+
tr = otio.opentime.TimeRange(
445+
start_time=otio.opentime.RationalTime(1.0, 24.0),
446+
duration=otio.opentime.RationalTime(24.0, 24.0)
447+
)
448+
cl = otio.schema.Clip(
449+
source_range=tr
450+
)
451+
cl.metadata['cmx_3600'] = {
452+
'reel': 'v330_21f'
453+
}
454+
tl.tracks[0].append(cl)
455+
456+
result = otio.adapters.write_to_string(
457+
tl,
458+
adapter_name='cmx_3600',
459+
style='nucoda'
460+
)
461+
462+
self.assertEqual(
463+
result,
464+
'001 v330_21f V C '
465+
'00:00:00:01 00:00:01:01 00:00:00:00 00:00:01:00\n'
466+
)
467+
441468
def test_mixed_avid_nucoda_read_raises_exception(self):
442469
with self.assertRaises(cmx_3600.EDLParseError):
443470
otio.adapters.read_from_string(

0 commit comments

Comments
 (0)