Skip to content

Conversation

@giardiello
Copy link

Summary

This PR enhances pyocioamf with support for AMF v2.0 and OCIO 2.5+ configurations:

  • AMF v2.0 support with automatic version detection from namespace URI or version attribute
  • OCIO 2.5+ config support using the amf_transform_ids interchange attribute for transform lookup
  • New CLI options for flexible conversion control
  • Split CTF generation for AMF v2.0 workingLocation marker
  • New example file demonstrating v2.0 format

Changes

AMF Version Support

  • Auto-detects v1.0 vs v2.0 from namespace URI (urn:ampas:aces:amf:v1.0 / v2.0) or version attribute
  • Handles both v1.0 element names (SOPNode/SatNode) and v2.0 names (ASC_SOP/ASC_SAT)

OCIO Config Compatibility

  • For OCIO 2.5+ configs: Uses dedicated amf_transform_ids interchange attribute
  • For OCIO 2.1-2.4 configs: Falls back to description-based transform ID search
  • Dynamic ACES2065-1 colorspace detection via role lookup, common names, and aliases

CLI Enhancements

  • --config: Specify a custom OCIO config file (supports OCIO 2.1+)
  • --no-idt: Exclude input transform from conversion
  • --no-lmt: Exclude look transforms from conversion
  • --no-odt: Exclude output transform from conversion
  • --split-by-working-location: Generate split CTFs at workingLocation marker

New Files

  • example_v2.amf: AMF v2.0 example with ASC_SOP/ASC_SAT elements

Test Plan

  • Convert example.amf (v1.0) - backwards compatible
  • Convert example_v2.amf (v2.0) - new format support
  • Test with OCIO 2.4 config (description-based lookup)
  • Test with OCIO 2.5 config (amf_transform_ids lookup)
  • Test --no-idt, --no-lmt, --no-odt exclusion options
  • Test --split-by-working-location with workingLocation marker

Backwards Compatibility

All existing functionality is preserved. The script will:

  • Auto-detect AMF version and use appropriate element parsers
  • Auto-detect OCIO config version and use appropriate lookup method
  • Default to existing behavior when no CLI options are specified

This commit enhances pyocioamf with several new features:

- AMF v2.0 support with automatic version detection from namespace URI
  or version attribute. Handles both v1.0 element names (SOPNode/SatNode)
  and v2.0 names (ASC_SOP/ASC_SAT).

- OCIO 2.5+ config support using the amf_transform_ids interchange
  attribute for transform lookup. Falls back to description-based
  search for OCIO 2.1-2.4 configs.

- New CLI options:
  - --config: Specify a custom OCIO config file
  - --no-idt: Exclude input transform from conversion
  - --no-lmt: Exclude look transforms from conversion
  - --no-odt: Exclude output transform from conversion
  - --split-by-working-location: Generate split CTFs based on
    workingLocation marker (AMF v2.0 feature)

- Dynamic ACES2065-1 colorspace detection using role lookup,
  common name search, and alias matching.

- New example_v2.amf demonstrating AMF v2.0 format.

Signed-off-by: giardiello <giardiello@me.com>
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jan 6, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

- Remove incorrect AMF version association with CDL element names.
  SOPNode/SatNode and ASC_SOP/ASC_SAT are both valid ASC CDL naming
  conventions, not version-specific.

- Simplify ACES2065-1 colorspace detection to use the aces_interchange
  role, which is defined in all standard ACES configs.

- Update README to clarify CDL element naming conventions.

Signed-off-by: giardiello <giardiello@me.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