Copy link to clipboard
Copied
Our plugin code relies on AEGP_GetActiveItem(), which doesn't seem to work anymore since updating to AE 17.0.6. Calling AEGP_GetActiveItem() from the render function returns error 1 which is undocumented.
Please help.
Copy link to clipboard
Copied
Okay, it seems like calling any ItemSuite8 or. ColorSettingsSuite2 functions from the render thread fails since AE 17.0.6. Any hints on what we can do about it? Since we really need to do so.
Copy link to clipboard
Copied
Hi Reimund,
Thank you for taking the time to post this. Is is possible that you are calling AEGP_GetActiveItem from a thread that is not the main thread? If so, this is addressed in AE 17.1 but you may get unexpected results since calling AEGP_GetActiveItem off the main thread is not supported.
Cheers,
Jason
Copy link to clipboard
Copied
Hi Jason,
yep, that’s right, we’re calling these functions in the render function that obviously may get called from a separate render thread. We can work around the ItemSuite8 functions by scheduling them on the main thread idle callback. The ColorSettingsSuite2 stuff, however, must be called on the render thread in our case. So we really must find a proper workaround for this new restriction (it has been working flawlessly in versions prior to v17).
Thanks again for your assistance.
Copy link to clipboard
Copied
For the ColorSettingsSuite it should only be the view related callbacks like
AEGPD_DoesViewHaveColorSpaceXform and
AEGPD_XformWorkingToViewColorSpace that need to be on the main thread. If these are being used to change the render then one should be aware this could change rendering across machines with different display profiles and have cache implications if the dependency is not tracked with GuidMixInPtr.
Copy link to clipboard
Copied
Hi Jason,
it‘s at least the AEGPD_XformWorkingToViewColorSpace that we need to call on the render thread, which currently fails with Error 1 (undefined). Can we expect this to change in 17.1? A workaround would either imply applying the transform manually, e.g. by building a LUT on the main thread that’s applied in the render function or by caching frames on the render function in order to process them on the main thread idle (= BAAD). I’m a little puzzled why something that’s been so easy and working flawlessly in older AE versions should now require hacks like these just in order to support >v17.