Skip to content

fix: SG-43605: OTIO export failing when OCIO is active, and support reversed-order stack blending#1291

Open
markreidvfx wants to merge 2 commits into
AcademySoftwareFoundation:mainfrom
markreidvfx:nas_contrib_otio_export_fixes_v1
Open

fix: SG-43605: OTIO export failing when OCIO is active, and support reversed-order stack blending#1291
markreidvfx wants to merge 2 commits into
AcademySoftwareFoundation:mainfrom
markreidvfx:nas_contrib_otio_export_fixes_v1

Conversation

@markreidvfx

Copy link
Copy Markdown
Contributor

Summarize your change.

Fix OTIO export failing when OCIO is active, and support reversed-order stack blending.

When OCIO is enabled, the RVLinearize node is not present and the CDL parameters are instead located on an RVColor node. The export hook calls associatedNode("RVLinearize"), which returns an empty string, and the subsequent call to commands.getIntProperty("{}.CDL.active".format(linearize)) then raises an exception.

This fix loops over both RVLinearize and RVColor nodes, checking propertyExists before accessing CDL properties.

Also reverses the input ordering when exporting an RVStack with supportReversedOrderBlending enabled, so the OTIO layer order matches RV.

Describe the reason for the change.

OTIO export throws this exception when OCIO is active:

File ".../sourcePostExportHook.py", line 21, in hook_function
    if commands.getIntProperty("{}.CDL.active".format(linearize))[0] != 0:
Exception: "invalid property name .CDL.active", program exception

Describe what you have tested and on which operating system.

Tested on Rocky Linux 9.

  1. Load media with OCIO active
  2. Activate a CDL on RVColor:
from rv import commands, extra_commands
source = commands.nodesOfType("RVSource")[0]
color = extra_commands.associatedNode("RVColor", source)
commands.setIntProperty(f"{color}.CDL.active", [1], True)
commands.setFloatProperty(f"{color}.CDL.slope", [1.1, 0.9, 1.0], True)
  1. File > Export > OTIO — fails with "invalid property name .CDL.active"

When OCIO is active, CDL parameters live on the RVColor node rather
than RVLinearize. Search both node types for an active CDL and export
whichever is found, so CDL grades are not silently dropped in the
exported OTIO timeline.

Signed-off-by: Mark Reid <markreid@netflixanimation.com>
When an RVStack has supportReversedOrderBlending enabled, reverse the
input ordering before writing the OTIO stack so the exported timeline
matches the compositing order displayed in RV.

Signed-off-by: Mark Reid <markreid@netflixanimation.com>
@bernie-laberge bernie-laberge changed the title fix: OTIO export failing when OCIO is active, and support reversed-order stack blending fix: SG-43605: OTIO export failing when OCIO is active, and support reversed-order stack blending Jun 8, 2026
@bernie-laberge bernie-laberge added PR: Acknowledged New PR has been acknowledge by the TSC community Contribution from the Open RV Community PR: Triaging PR is been triaged, this will set the priority for the TSC to review and test the PR and removed PR: Acknowledged New PR has been acknowledge by the TSC labels Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Contribution from the Open RV Community PR: Triaging PR is been triaged, this will set the priority for the TSC to review and test the PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants