Skip to main content
Inspiring
May 25, 2023
Question

Reload/Render in PremierePro using After Effects SDk

  • May 25, 2023
  • 1 reply
  • 590 views

I'm using the After Effects SDK to develop a plugin for both After Effects and PremierePro.
The AfterEffects part is done. Thanks to expert @shachar carmi sir.
As suggested by him, I was able to get the re-render called for AfterEffects by changing an invisible param value in IdleHook.
Now I'm facing the same issue in PremierePro. I'm receiving frame data in a separate thread and want the render to be called. However when I play or scrub through the timeline, Render is called and frames start to appear. But I want the preview frame to be reloaded as well, but it doesn't until I scrub through the timeline. 

Is there a way or anything that can trigger render from a separate thread, just like changing param Val in AE.

Note: I'm setting 

out_data->out_flags |= PF_OutFlag_USE_OUTPUT_EXTENT | PF_OutFlag_NON_PARAM_VARY; in GlobalSetup

This topic has been closed for replies.

1 reply

Community Expert
May 26, 2023

premier doesn't support most (if not all) of AE's AEGP suites. as far as i know, premier doesn't offer equivalent facilities that would allow to acheive this goal.

perhpas it's possible via javascript? does premier even have that? (premier is not my strong suite...)

Inspiring
May 26, 2023

Thanks for responding and premiere doesn't support AEGP suites. But as mentioned in the AfterEffects SDK,
"Premiere will also perform speculative rendering, to render a set of frames ahead in the timeline, so that if/when the editor starts playback, the initial frames will be ready. This means that when repositioning the time needle, or when changing effect parameters, Premiere will ask the effect to render a set of frames ahead of the current time. If the frames have previously been rendered and cached, the effect will not see these render requests because the cached frames will be used."
As written in the above lines, when I scrub through the timeline, Render is called for sure. But as soon as the data is received I want the current frame to update. From the above lines it seems that it may be updated by changing a param val, as it does for AfterEffects. For AfterEffects, one could either register an IdleHook or if we have in_data, a paramVal can be changed by calling UpdateParamUI. Can you guide how to get it done here.

Also, Guide me if "
RegisterTransitionStartParam" can help?

 

Inspiring
May 28, 2023

Actually in the AfterEffects, I am not using IdleHook. I am using the commandHook to register a command in the Edit menu in the beginning (that changes a param val), and then later when I want to render I call that command. 
Is there a way to get that in PremierePro? 

There is one more thing you can help me with. If I find no way to force a re-render from a separate thread, what I want to do is to play the timeline programaticaaly, is there a way to do that? 
There are play and pause functions in the ControlSurfaceHostTransportSuite.h file of PremiereSDK, but I don't know how to call them.