Properties that are doubles canonical but should really be ints in pixels space
A range of spatial values, which refer to regions on the image plane or pixels in the UI, are specified as doubles rather than ints. These are are both properties on several actions’ in and out args, as well as a returned value from a function in a suite.
The following properties should have been integers rather than doubles….
Also, the double rect out properties in the GetRegionOfDefinition and GetRegionOfInterest actions should also be integers.
The function clipGetRegionOfDefinition in the OfxImageEffectSuiteV1 returns values in a pointer to a OfxRectD, this should return values in a OfxRectI.
If it were not for the function signature in the ImageEffectSuite, we could simply add integer properties correspondingto the double properties and all would work fine. Unfortunately, to fix this we need to rev up the OfxImageEffectSuite to version 2 and modify the function signature to return integer values as well as add integer equivalents of the various properties.
The current proposal is to make v1.5 friendly to the idea of OfxImageEffectSuiteV2 and tie these changes to that suite increment.
To add to a year ago comment here: I still think this would only make sense to do IF/WHEN we do a V2 ImageSuite -
Simple question: What would be the naming strategy here particularly for #define to avoid confusion -kOfxImageEffectPropProjectSize becomes kOfxImageEffectPropProjectSizeV2 ?
Alternatively some of these could be wrapped in suites (at least the Project Size stuff). We probably need for layer in comp and video track in NLE sequence a suite which deprecates Project Size to be a form of global project reference (that one can also interpret as a default for things like generators...).
For illustration in AE (for example HitFilm host is like that), we can do:
SErr = suites.ItemSuite()->AEGP_GetItemDimensions(itemPH,&widthPL, &heightPL);RV_PL
SErr = suites.ItemSuite()->AEGP_GetItemPixelAspectRatio(itemPH,&parPL);
And that can be different for every comps...
In Premiere SDK we can do:
PrSDKSequenceInfoSuite *InfoSuite = NULL;
err = AEFX_AcquireSuite( in_data,out_data,kPrSDKSequenceInfoSuite,kPrSDKSequenceInfoSuiteVersion,NULL,(void**)&InfoSuite);
(*InfoSuite->GetFrameRect)( outTimelineID, &outFrameRect);
*XSize = outFrameRect.right - outFrameRect.left;
*YSize = abs(outFrameRect.bottom - outFrameRect.top);