Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transition duration incorrect in CMX 3600 #895

Open
JoshBurnell opened this issue Feb 25, 2021 · 0 comments
Open

Transition duration incorrect in CMX 3600 #895

JoshBurnell opened this issue Feb 25, 2021 · 0 comments
Labels
bug A problem, flaw, or broken functionality. time calculations

Comments

@JoshBurnell
Copy link
Contributor

JoshBurnell commented Feb 25, 2021

Hey, guys,

The cmx_3600.py adapter appears to use a duration for Transitions that doesn't conform to the CMX 3600 spec.

According to this spec (Page 30), the duration is stored in a "RATE" field.

This guide makes it a little easier to read:

75 frame dissolve from reel 123 to reel 123B on video and A1:

Edit # Reel Name  Channel Trans      Dur      Source IN          Source OUT          Record IN         Record OUT
105 123    B     C        03:05:57:17 03:05:57:17 01:00:21:20 01:00:21:20
105 123B   B     D    075 03:15:33:09 03:15:35:24 01:00:21:20 01:00:24:05

However, the cmx_3600.py adapter appears to use the length of the previous clip:
https://github.com/PixarAnimationStudios/OpenTimelineIO/blob/84c8245c070b12d7e627c145435a5db9add0d2de/src/py-opentimelineio/opentimelineio/adapters/cmx_3600.py#L668

Test EDL:
cmx_3600_transition.edl.zip

Recreation Steps:

In [13]: cat cmx_3600_transition.edl
TITLE:   0800_Cut_v3_ToLayout_021121_EDL 
FCM: NON-DROP FRAME
001  ABC0100. V     C        01:00:12:15 01:00:17:01 01:00:48:20 01:00:53:06 
002  ABC0200. V     C        01:00:11:07 01:00:14:09 01:00:53:06 01:00:56:08 
003  ABC0200. V     C        01:00:14:09 01:00:14:09 01:00:56:08 01:00:56:08 
003  ABC0300. V     D    026 01:00:10:08 01:00:13:09 01:00:56:08 01:00:59:09 
* BLEND, DISSOLVE 
004  ABC0400. V     C        01:00:11:09 01:00:17:20 01:00:59:09 01:01:05:20

In [14]: import opentimelineio as otio

In [15]: timeline = otio.adapters.read_from_file("cmx_3600_transition.edl")

In [16]: timeline.tracks[0][2].duration()
Out[16]: otio.opentime.RationalTime(value=73, rate=24)
@JoshBurnell JoshBurnell added the bug A problem, flaw, or broken functionality. label Feb 25, 2021
ssteinbach pushed a commit that referenced this issue Mar 5, 2021
#896)

* #895 Change cmx_3600 adapter to use transition duration frames
* #895 Add spec link to docs

Co-authored-by: jburnell <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A problem, flaw, or broken functionality. time calculations
Projects
None yet
Development

No branches or pull requests

2 participants