Standard version: 1.5
Pierre (RE:Vision Effects), Peter Loveday (BMD Fusion)
Regions of definition are well defined concepts within OFX, the ‘format’ of a clip is not. For example a clip may be HD, 4K, SD etc… while the RoD need not be congruent to the ‘format’ at all. Furthermore, effects have no way of changing the spatial format. For example an effect that up scales images from SD to 4K would want to flag the change in format as well as the RoD, otherwise it will be interpreted as a zoom.
The 'format' nomenclature is taken from Nuke.
(Pierre: Adding this thread from Nuke dev forum as reference
Currently we use the clip properties kOfxImageEffectPropProjectExtent, kOfxImageEffectPropProjectSize and kOfxImageEffectPropProjectOffset to represent the format. This should be simplified to...
These are present on all input clips.
We have a new action to compute the format of the output clip, kOfxImageEffectActionGetImageFormat, which would ask the effect to set the appropriate properties on the outArgs.
(pierre adds this suggestion to make this more general purpose): Aside the action, we might want to help make this work in all hosts as it works in that host already when possible: For example, in Nuke there is also a format_knob in their native SDK (NDK)- this shows up as a menu with options for user to select from an existing defined choice of setups and even create new Format presets.
Format_knob(f, &formats, "format");
int, int, double (W,H,PAR)
This would not be directly supportable as presented here. So maybe we need at Descriptor time to check what the host can support. This could be as simple as for overlays - draw or not.
kOfxParamPropHasHostOverlayHandle and kOfxParamPropUseHostOverlayHandle (for plugin to know to draw or not 2D point parameters for example).
A. This plugin might need to resize output (plugin write 0/1) - Host supports Image Format? (host write 0/1)
B. If Host support Image Format and plugin requests that,
then there is another handshake needed: via Action?:
If yes again, then plugin must set regular parameters and expects an action to set this. (so this must be known during description)
Else plugin just query that as needed? This would like that create a very "workable solution" where an host that relies on sequence nesting to resize could display for the Format menu for example: match input size | match output size.