Skip to content

source_range and available_range incorrect #53

@jminor

Description

@jminor

Bug Report

Incorrect Functionality

Converting this AAF to OTIO produces the wrong source_range and available_range for the three clips included.

To Reproduce

  1. Unzip the attached ZIP
  2. Run otioconvert -i simple_timecode_test.aaf -o simple_timecode_test.otio
  3. Examine the source_range and available_range for each of the three clips with otiotool -i simple_timecode_test.otio --list-clips --inspect test_pattern
TIMELINE: simple_timecode_test.Exported.02
  ITEM: test_pattern_media_1920x1080_24_DNxHD-LB-tc-1-hour (<class 'opentimelineio._otio.Clip'>)
    source_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    trimmed_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    visible_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    available_range: TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))
    range_in_parent: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    trimmed range in timeline: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    visible range in timeline: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    range in Sequence (<class 'opentimelineio._otio.Track'>): TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    range in tracks (<class 'opentimelineio._otio.Stack'>): TimeRange(RationalTime(0, 24), RationalTime(120, 24))
  ITEM: test_pattern_media_1920x1080_24_DNxHD-LB-tc-zero (<class 'opentimelineio._otio.Clip'>)
    source_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    trimmed_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    visible_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    available_range: TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))
    range_in_parent: TimeRange(RationalTime(120, 24), RationalTime(120, 24))
    trimmed range in timeline: TimeRange(RationalTime(120, 24), RationalTime(120, 24))
    visible range in timeline: TimeRange(RationalTime(120, 24), RationalTime(120, 24))
    range in Sequence (<class 'opentimelineio._otio.Track'>): TimeRange(RationalTime(120, 24), RationalTime(120, 24))
    range in tracks (<class 'opentimelineio._otio.Stack'>): TimeRange(RationalTime(120, 24), RationalTime(120, 24))
  ITEM: test_pattern_media_1920x1080_24_DNxHD-LB-no-tc (<class 'opentimelineio._otio.Clip'>)
    source_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    trimmed_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    visible_range: TimeRange(RationalTime(0, 24), RationalTime(120, 24))
    available_range: TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))
    range_in_parent: TimeRange(RationalTime(240, 24), RationalTime(120, 24))
    trimmed range in timeline: TimeRange(RationalTime(240, 24), RationalTime(120, 24))
    visible range in timeline: TimeRange(RationalTime(240, 24), RationalTime(120, 24))
    range in Sequence (<class 'opentimelineio._otio.Track'>): TimeRange(RationalTime(240, 24), RationalTime(120, 24))
    range in tracks (<class 'opentimelineio._otio.Stack'>): TimeRange(RationalTime(240, 24), RationalTime(120, 24))
TIMELINE: simple_timecode_test.Exported.02
  CLIP: test_pattern_media_1920x1080_24_DNxHD-LB-tc-1-hour
  CLIP: test_pattern_media_1920x1080_24_DNxHD-LB-tc-zero
  CLIP: test_pattern_media_1920x1080_24_DNxHD-LB-no-tc

Expected Behavior

The 1st clip test_pattern_media_1920x1080_24_DNxHD-LB-tc-1-hour source media has a starting timecode of 01:00:00:00 therefore:

  • source_range should be TimeRange(RationalTime(86400, 24), RationalTime(120, 24)) instead of TimeRange(RationalTime(0, 24), RationalTime(120, 24))
  • available_range should be TimeRange(RationalTime(86400, 24), RationalTime(120, 24)) instead of TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))

The 2nd clip test_pattern_media_1920x1080_24_DNxHD-LB-tc-zero source media has a starting timecode of 00:00:00:00 therefore:

  • available_range should be TimeRange(RationalTime(0, 24), RationalTime(120, 24)) instead of TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))

The 3rd clip test_pattern_media_1920x1080_24_DNxHD-LB-no-tc source media has no embedded starting timecode therefore:

  • available_range should be TimeRange(RationalTime(0, 24), RationalTime(120, 24)) instead of TimeRange(RationalTime(0, 24), RationalTime(1.0368e+07, 24))

Additional Context

The AAF was authored with Avid Media Composer 2023.12.0.58093.0

The attached ZIP has the source media for all three clips, the exported AAF from Avid Media Composer and the converted OTIO from that AAF which demonstrates the incorrect values.

simple_timecode_test_bug_repro.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions