Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Failing a plugin render call

Explorer ,
Apr 25, 2023 Apr 25, 2023

I'm developing a plugin for Premiere using the After Effects api. When my plugin encounters an unrecoverable error I want to communicate that back to the user. The text needed for this can get quite lengthy; it contains crucial details the user needs to resolve the issue.


Right now I show an error popup to the user using the error suite (PrSDKErrorSuite3). Since the amount of text can be too much for these popups, I just tell "an error occured", and instead redirect the user to the correct spot on the time line. I know that viewing an error's details will show the complete text, but having my text chopped off in that popup looks messy. I also only produce rendered error messages from then on, listing all the details the user needs to know. When the user is scrubbing the time line this is an easier way to bring the error to the user's attention. However, this popup and these 'special' rendered frames could easily be missed when the user starts an unattended render job (either using Premiere or Media Encoder).


Render calls can return a status code back to Premiere (PF_Err vs. prSuiteError), so I've dabbled with that.


When doing a real render job in Premiere (Render In to Out, or an Export),

  • My own error popup still trigger,
  • Premiere gives the user it's own error dialog and stops rendering (which is a better workflow than I currently have),
  • The returned rendered error frame is ignored (which is OK by me; the render is cancelled anyway and the result is discarded).


So far so good.  But when scrubbing on the time line,

  • My own error popup still trigger,
  • Premiere doesn't show an error dialog (fine with me),
  • Premiere again ignores the returned render buffer. For software renders it instead shows the last rendered frame while for GPU renders it just shows a black frame.


I'd like to make Premiere always use the rendered result frame when scrubbing the time line. Us there any way I can influence this?

 

Alternatively I could stop returning error codes again when the user is scrubbing the time line.  I can differentiate between hosts (Premiere vs. Media Encoder), but is there a way for me to differentiate what type of render I'm dealing with (time line scrubbing vs. a real render job)?

TOPICS
SDK
235
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
no replies

Have something to add?

Join the conversation