AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO
EDL Adapter incorrectly processing EDL that ends with "hanging dissolve event"
- Dominant language
- C++
- Stars
- 2k
- Forks
- 351
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 1
Description
I have an EDL that ends with a Transition between two clips.
In the EDL, it looks like this, a "hanging dissolve event":
```
TITLE: TRANSITION_TEST_2
FCM: NON-DROP FRAME
001 ABC0000. V C 01:00:06:18 01:00:08:00 01:04:11:17 01:04:12:23
002 ABC0010. V C 01:00:06:15 01:00:08:18 01:04:12:23 01:04:15:02
003 ABC0010. V C 01:00:08:18 01:00:08:18 01:04:15:02 01:04:15:02
003 ABC0020. V D 035 01:00:06:22 01:00:10:07 01:04:15:02 01:04:18:11
* BLEND, DISSOLVE
```
That should result in an OTIO that includes three Clips with a Transition between the last two clips, like this:

However, the EDL Adapter is create a Transition to a Gap, like this:

Test EDL attached.
Unittest:
```
def test_hanging_transition(self):
"""
Test A->B Transition with no ending clip.
"""
tl = otio.adapters.read_from_file("dissolve_test_5.edl")
self.assertEqual(len(tl.tracks[0]), 4)
self.assertIsInstance(tl.tracks[0][0], otio.schema.Clip)
self.assertIsInstance(tl.tracks[0][1], otio.schema.Clip)
self.assertIsInstance(tl.tracks[0][2], otio.schema.Transition)
self.assertEqual(tl.tracks[0][2].duration().value, 35.0)
self.assertEqual(tl.tracks[0][3].duration().value, 96.0)
self.assertIsInstance(tl.tracks[0][3], otio.schema.Clip)
```
Contributor guide
Research direction
Start with the named test_hanging_transition unittest and the dissolve_test_5.edl fixture, following the otio.adapters.read_from_file entry point for the EDL adapter. Done means the parsed track has three Clips with a Transition between the last two, followed by the final Clip, with durations matching the assertions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100