Skip to content

Commit 06136cd

Browse files
authored
SVG adapter fixes (#1195)
- Check if media reference contains target_url - Fix drawing transitions at end of track
1 parent 7f3b381 commit 06136cd

File tree

1 file changed

+11
-12
lines changed
  • src/py-opentimelineio/opentimelineio/adapters

1 file changed

+11
-12
lines changed

src/py-opentimelineio/opentimelineio/adapters/svg.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ class ClipData(object):
519519

520520
def __init__(self, src_start=0.0, src_end=0.0, avlbl_start=0.0,
521521
avlbl_end=0.0, avlbl_duration=0.0,
522-
trim_start=0.0, trim_duration=0.0, target_url='', clip_id=0,
522+
trim_start=0.0, trim_duration=0.0, clip_id=0,
523523
transition_begin=None, transition_end=None):
524524
self.src_start = src_start
525525
self.src_end = src_end
@@ -528,7 +528,6 @@ def __init__(self, src_start=0.0, src_end=0.0, avlbl_start=0.0,
528528
self.avlbl_duration = avlbl_duration
529529
self.trim_start = trim_start
530530
self.trim_duration = trim_duration
531-
self.target_url = target_url
532531
self.clip_id = clip_id
533532
self.transition_begin = transition_begin
534533
self.transition_end = transition_end
@@ -587,7 +586,7 @@ def _draw_timeline(timeline, svg_writer, extra_data=()):
587586
clip_data = ClipData(src_start, src_end, avlbl_start,
588587
avlbl_end, avlbl_duration, trim_start,
589588
trim_duration,
590-
item.media_reference.target_url, clip_count - 1)
589+
clip_count - 1)
591590
if current_transition is not None:
592591
clip_data.transition_begin = current_transition
593592
current_transition = None
@@ -808,7 +807,7 @@ def _draw_track(track, svg_writer, extra_data=()):
808807
draw_item(item, svg_writer, (clips_data[item_count],))
809808
item_count += 1
810809
elif isinstance(item, otio.schema.Transition):
811-
cut_x = svg_writer.x_origin + (clips_data[item_count].src_start *
810+
cut_x = svg_writer.x_origin + (clips_data[clip_count].src_start *
812811
svg_writer.scale_x)
813812
draw_item(item, svg_writer, (cut_x,))
814813
transition_count += 1
@@ -935,19 +934,19 @@ def _draw_clip(clip, svg_writer, extra_data=()):
935934
available_range_text = r'available_range: {}, {}'.format(
936935
repr(float(round(clip.available_range().start_time.value, 1))),
937936
repr(float(round(clip.available_range().duration.value, 1))))
938-
if clip.media_reference.target_url is None:
939-
target_url_text = r'target_url: {}'.format('Media Unavailable')
940-
else:
941-
target_url_text = r'target_url: {}'.format(clip.media_reference.target_url)
942-
available_range_text = available_range_text
943937
available_range_location = Point(media_origin.x + svg_writer.font_size,
944938
media_origin.y - svg_writer.font_size)
945-
target_url_location = Point(media_origin.x + svg_writer.font_size,
946-
media_origin.y - 2.0 * svg_writer.font_size)
947939
svg_writer.draw_text(available_range_text, available_range_location,
948940
svg_writer.font_size,
949941
)
950-
svg_writer.draw_text(target_url_text, target_url_location, svg_writer.font_size)
942+
if hasattr(clip.media_reference, 'target_url'):
943+
if clip.media_reference.target_url is None:
944+
target_url_text = r'target_url: {}'.format('Media Unavailable')
945+
else:
946+
target_url_text = r'target_url: {}'.format(clip.media_reference.target_url)
947+
target_url_location = Point(media_origin.x + svg_writer.font_size,
948+
media_origin.y - 2.0 * svg_writer.font_size)
949+
svg_writer.draw_text(target_url_text, target_url_location, svg_writer.font_size)
951950
# Draw arrow from clip to media reference
952951
clip_media_height_difference = (((clip_count - 1) * 2.0 + 1) *
953952
svg_writer.clip_rect_height)

0 commit comments

Comments
 (0)