Skip to content

Conversation

john-paulsmith
Copy link
Contributor

This change adds new properties and an action to help hosts with editorial timeline conform, as described in #217.

kOfxPropAka will allow plug-ins to list alternative names by which any named object could be known. A kOfxPropAka2D property covers multidimensional parameters. For example, an effect could list the name it is known by in a different API such as AVX or Adobe. It can also list the names its parameters are known by, which might be GUIDs or similar.

The conform action, kOfxActionConform, will allow plug-ins to update their parameter values and keyframes based on information passed from the host. Prior to invoking this action, hosts will set parameter values to the best of their ability, and the plug-in will examine these and update them based on internal knowledge about where they came from. For example, a spatial parameter might need to be adjusted to compensate for different origin.

A host may be creating an effect instance based on information imported from another host which uses a different plug-in API. In this case, effects and parameters might have different names. This property allows a plug-in to specify alternative names for any object such as effects and parameters.

Signed-off-by: John-Paul Smith <[email protected]>
This new action allows plug-ins to conform their parameters to match a project imported from a non-OpenFX host.

Signed-off-by: John-Paul Smith <[email protected]>
Some foreign APIs don’t support multidimensional parameters. Plug-ins can set kOfxPropAka2D to provide alternative names for each dimenesion of a parameter, allowing the host to map them correctly.

Signed-off-by: John-Paul Smith <[email protected]>

/** @brief Alternative names for parameter dimensions.
- Type - string X N X M
Copy link
Contributor

Choose a reason for hiding this comment

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

This is, I assume, for the case where the OFX plugin uses a single parameter with a 2D param type, but one foreign host uses (e.g.) TranslateX and TranslateY and another uses tx and ty. How do you store those mappings in a 1D string array property? What does "string X N X M" mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was imagining this as if it was a 2D array, but of course that would require knowing the number of names per dimension, which there is no way to specify as it stands. We could assume the same number of names per dimension, but that breaks in the case of mapping something like an RGB foreign param into an RGBA OFX param.

An alternative is to split the property so that we have kOfxPropAka0, kOfxPropAka1, etc. which will probably be easier to work with.

Another way to do this would be extend properties to support 2D arrays natively, but it seems excessive for this proposal so I'll go with the numbered properties.

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