Skip to content

OTIO import: map ImageSequenceReference clip trims into media frame space - #324

Open
soupkitchenfilms wants to merge 1 commit into
AcademySoftwareFoundation:developfrom
soupkitchenfilms:pr/develop-otio-imageseq-trim
Open

OTIO import: map ImageSequenceReference clip trims into media frame space#324
soupkitchenfilms wants to merge 1 commit into
AcademySoftwareFoundation:developfrom
soupkitchenfilms:pr/develop-otio-imageseq-trim

Conversation

@soupkitchenfilms

Copy link
Copy Markdown

xSTUDIO clip active ranges are media-native file frames, but OTIO source_range is expressed in the media reference's available_range space. Conforms anchored to absolute timecode (EDL/CSV-derived OTIOs where available_range.start_time is timecode-as-frames) import with trims ~1.2M frames outside the media — every clip shows wrong frames and cross-track record sync is lost.

This maps ImageSequenceReference trims through start_frame:

trim = start_frame + (source_start - available_start)

Identity whenever available_start == start_frame (xSTUDIO/NLE-authored OTIO), so existing behaviour is preserved; timecode-anchored conforms become frame-exact. Verified against a 25-clip, 4-track production conform (cut-in frames and record positions match the generating lineup exactly).

Happy to add a unit test if you can point me at the preferred harness for timeline import.

Supersedes #308, re-based onto develop (process_item moved but still applies source_range->start_time() verbatim, so the mis-anchoring persists there).

…pace

xSTUDIO clip active ranges are media-native file frames, but OTIO
source_range is expressed in the media reference's available_range space.
Conforms anchored to absolute timecode (EDL/CSV-derived OTIOs where
available_range.start_time is the timecode-as-frames of the first file
frame) imported with trims ~1.2M frames outside the media — every clip
displayed the wrong frames and cross-track record sync was lost.

Re-anchor ImageSequenceReference trims through start_frame:

    trim = start_frame + (source_start - available_start)

This collapses to the previous verbatim behaviour whenever
available_start == start_frame (xSTUDIO/NLE exports), and rescues
timecode-anchored conforms. Verified frame-exact against a 25-clip
4-track production conform (record positions and cut-in frames match the
generating lineup).

Signed-off-by: soupkitchenfilms <13426391+soupkitchenfilms@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant