Feature/conform#218
Conversation
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 <jps@borisfx.com>
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 <jps@borisfx.com>
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 <jps@borisfx.com>
|
|
||
| /** @brief Alternative names for parameter dimensions. | ||
|
|
||
| - Type - string X N X M |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
This change adds new properties and an action to help hosts with editorial timeline conform, as described in #217.
kOfxPropAkawill allow plug-ins to list alternative names by which any named object could be known. AkOfxPropAka2Dproperty 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.