Skip to main content
tomasz_cc
Inspiring
April 10, 2019
Question

Premiere Pro - Checkout current layer with applied effects?

  • April 10, 2019
  • 1 reply
  • 1723 views

Hey guys,

I'm working on a plugin that should work in AE and in Premiere Pro.

My question is about the latter one - is it possible to checkout a current layer where the plugin is applied and get access to the image already processed by the plugins that are before my plugin?

Example:

We have a clip with 2 effects:

1. Lumetri

2. My plugin

I want to be able to open a dialog window from my plugin and show the image with changes made in Lumetri. What I get is the RAW unprocessed image "before" the lumetri changes.

Any hints?

Thanks in advance,

Tom

This topic has been closed for replies.

1 reply

April 10, 2019

I can't tell exactly, but isn't the default behaviour for both AE and PPro that when checking out the *input* layer, you will get it post-fx already? Meaning with all the previous effects in the chain already applied? Only when checking out additional layers with a layer parameter, you will get only their raw pixel data without any effects possibly applied.

And somewhat related: AE offered in recent SDK releases/AE version the option to checkout layer pre-/post effects/masks

tomasz_cc
tomasz_ccAuthor
Inspiring
April 10, 2019

Not in PF_Cmd_USER_CHANGED_PARAM or PF_Cmd_DO_DIALOG.

I have "Edit" button in the plugin and I open a new window with the image preview and what I get in:

PF_CHECKOUT_PARAM(in_data,
  MY_INPUT,
  in_data->current_time,
  in_data->time_step
  in_data->time_scale
  &my_param);

PF_EffectWorld* src = &my_param.u.ld

src is a raw image with no applied plugins no matter what is in the effect chain before my plugin...

The behavior is the same for both PP and AE.

...and there must be a way because Colorista can do it

April 10, 2019

Ok, AEGP is not supported in Premiere Pro in general. So still looking for another way.


Ah, yes, I should have known that myself with the AEGP

Well, as I said, if you check out your source layer in the render thread, you will get it with all previous effects already applied. You could store this data in the sequence data and access it then in your UI thread for displaying the image. This shared sequence data approach only works for non multi-threaded rendering environments, so no longer with AE 13.5 and above!

If you look at the notes for the HistoGrid example, you will see some explanation of this old method, which *maybe* still applies to Premiere pro:

    HistoGrid.cpp:

    A simple example of how the UI can request asynchronous rendered upstream frames

    for lightweight processing in AE 13.5 and later.  This effect calculates

    a sampled 10x10 color grid from the upstream frame,  calcs and displays a preview

    of that color grid.  In render, a higher quality grid is calculated and used to

    modify the output image creating a blend of a color grid + the original image.

    BACKGROUND

    As of 13.5, UI and Render thread introduction means lightweight histograms must

    asynchronously request the frame needed inside of DRAW.  This replaces the pattern of

    calculation of histograms inside of render, storing in sequence data, and then

    passing back REFRESH_UI outflag.  That method no longer works in 13.5 because

    the render sequence data is not in the same database as the UI and must not be written to.