AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO

EDL Adapter: should author and read timeline::global_start_time attribute rather than source_range.start_time of track

Open
#1,385 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
2k
Forks
351
Avg merge
1d 12h
Merged PRs (30d)
1

Description

## To Reproduce

```python
import opentimelineio as otio

# Read the screening example from the sample data
timeline = otio.adapters.read_from_file("tests/sample_data/screening_example.edl")

# Note that the source range on the track is offset to make the start timecode work - this assertion passes
assert timeline.tracks[0].source_range.start_time == otio.opentime.RationalTime(value=-86243, rate=24)

# This assertion should pass, but does not because global_start_time is None
assert timeline.global_start_time = otio.opentime.from_timecode("00:59:53:11", 24)

# We should be able to set global_start_time and make the first event record time start at the provided tc
timeline.global_start_time = otio.opentime.from_timecode("02:00:00:00", 24)

# The first event of the written out timeline should have a record start TC of 02:00:00:00
otio.adapters.from_name("cmx_3600").write_to_string(timeline)
```

## Expected Behavior

I would expect that the first event's record start timecode would be set as the `global_start_time` on the timeline, and that the `global_start_time` on the timeline would be the first event record time - rather than relying on the `source_range` on tracks to set the time.

Contributor guide

Open the contributing guide

Research direction

Reproduce the behavior with tests/sample_data/screening_example.edl using adapters.read_from_file, then inspect the EDL adapter and the cmx_3600 write_to_string path. Done means reading preserves timeline.global_start_time and setting it causes the first written event to use that value as its record start timecode.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.