Skip to content

SMPTE CFL - WIP#35

Open
cozdas wants to merge 25 commits intoautodesk-forks:mainfrom
cozdas:cozdas/SMPTE_CLF
Open

SMPTE CFL - WIP#35
cozdas wants to merge 25 commits intoautodesk-forks:mainfrom
cozdas:cozdas/SMPTE_CLF

Conversation

@cozdas
Copy link

@cozdas cozdas commented Jan 28, 2026

  • Exploratory work on SMPTE CLF format, currently supports reading the main new features only.

…e main new features only.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
@cozdas cozdas requested a review from doug-walker January 28, 2026 20:26
…m. There are still some lose ends.

- The reader no longer allows the Version and xmlns attributes at the same time
- added --smpte switch to ociomakeclf tool.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…when" the xmlns is an SMPTE version text.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
- Now enforcing the ID to be ST2136-1:2024 on read and write.
- now enforcing content of CLF version string if it's present in a SMPTE CLF.
- Added more tests

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
… more generic --format %s

- For SMPTE variant, the write now writes v3 instead of ST2136-1:2024
- Re-worked the version loading logic to untangle it a bit.
- replaced the clf test data folder with the new folder structure and updated the existing test accordingly.
- TODO: add tests for the newly added clf files

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are some initial comments. I'm wondering if it would be a worthwhile simplification to not have two separate formats.

- Adding separate element and attribute Id's
- Adding warning comments to few misleading elements which break the general design.
- Simplifying the SMPTE version handling.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
- updating the test files accordingly
- Some cleanup

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
- General cleanup, hopefully tests will be happy now.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…on the group ops. It uses a raw config to create the ops. The generated Id matches the id attribute that the CTF writer generates.

- createclf tool is updated to have the generateid flag
- added experimental STRIP_NAMESPACES control flag to CTF parser. When set to true, all the name spaces are stripped before parsing the elements. This makes the parser understand elements with name spaces (e.g. clf:ProcessList). Parser can still be confused if multiple names paces are used though.
- CTF TransformWriter::generateID() now generates the id always in the SMPTE format
- Added few more tests
- general cleanup

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for leading you in the wrong direction on the GroupTransform::getCacheID!

And sorry that this is turning into a bigger project than anticipated. Here are some other comments.

- ociomakeclf now uses optimized processors's cache ID to populate Id Element.
- make sure that Processor always generate UUID as the cacheID, even when it has zero ops.
- misleading CTFReaderTransform::getOps() function name is changed to getOpDataVec()

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…ow there's a switch to turn that off during parsing. Currently the name space stripping it turned off during the info element parsing.

- all of the encountered input and output descriptors are now collected just like the description element. collecting the language attribute will need re-working the whole metadata structure, which can be the next step.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
- CLF reader now allows non-compliant Id elements, but with a warning. Writer still throws.
- More tests added
- General cleanup.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
- remove id attr from the broadcast clf (unbreak the build)
- Expand the tests

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…ces.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Here are the few remaining items I found.

Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is where I recommend inserting the new tests in FileFormatCTF_tests.cpp.

Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I un-resolved a two items in the conversation above:

  1. Add the requested process_list_conflicting_versions.ctf and test.
  2. Add the requested process_list_higher_ns_version.clf and test.

But the highest priority is to start the PR with whatever we have as soon as possible. Remaining items could come in additional commits.

if (!idEl.empty())
{
m_formatter.writeContentTag(METADATA_INPUT_DESCRIPTOR, inputDesc);
if (m_subFormat == SubFormat::FORMAT_CLF && !ValidateSMPTEId(idEl))

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could remove the subformat check, even if we write it in CTF, it should validate.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Copy link

@doug-walker doug-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AWESOME, nice work! Please proceed with the public PR.

Signed-off-by: ozdasc <cuneyt.ozdas@autodes.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.

2 participants