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

SDK: When undoing a parameter change, Premiere fails to notify plugin via PF_Cmd_USER_CHANGED_PARAM

Participant ,
Nov 02, 2025 Nov 02, 2025

When users change the value of a parameter declared by a plugin with the

PF_ParamFlag_SUPERVISE flag, the plugin ought to get notified via PF_Cmd_USER_CHANGED_PARAM. Premiere Pro fails to do so when undoing the change. Plugins get PF_Cmd_USER_CHANGED_PARAM when the value is set, but not when the value is unset.

 

Steps to reproduce:

- Take an existing plug-in based on the AE SDK, and make one of its non-slider* parameters observable by setting its PF_ParamFlag_SUPERVISE flag.

- Set a breakpoint / print something to the console / beep when handling the PF_Cmd_USER_CHANGED_PARAM command.

- Apply the plugin inside Premiere Pro.

- Change the observed parameter value and notice that Premiere will immediately invoke the PF_Cmd_USER_CHANGED_PARAM command.

- Select Edit > Undo and notice that no messages are sent to the plugin, which therefore has no chance of responding to the change.

 

* You cannot reproduce this bug with slider parameters because they are victim to another bug (a regression actually)... the PF_Cmd_USER_CHANGED_PARAM command is never invoked for sliders.

 

Expected:

Plug-ins should receive a PF_Cmd_USER_CHANGED_PARAM command regardless of how a parameter value has changed, directly or as a result of undoing a previous operation.

 

Notes:

Plugins rely on PF_Cmd_USER_CHANGED_PARAM to – among other things – change parameter UI state. E.g. if parameter A is toggled ON, the plug-in may choose to make a second parameter B visible in the inspector.

This bug means that when the user undoes a change, the parameter UI in the inspector can be left in an inconsistent state, with the wrong parameters visible/enabled.

 

Bug Acknowledged
TOPICS
Bug
78
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

correct answers 1 Pinned Reply

Adobe Employee , Nov 03, 2025 Nov 03, 2025

If the user triggers Undo, your effect does receive the previous parameters (with correct state info), right? 

>Plug-ins should receive a PF_Cmd_USER_CHANGED_PARAM command regardless of how a parameter value has changed...

A distinction, which may or may not make a difference: In the case you describe, the user doesn't change the param; they instead invoke Undo, to avoid changing the param. 

In that case, where Undo obviates any changes to the param, I'm struggling to understand the cases where you

...
Status Acknowledged
Translate
7 Comments
Community Beginner ,
Nov 03, 2025 Nov 03, 2025

My plugins are experiencing the same problem 

Translate
Report
Adobe Employee ,
Nov 03, 2025 Nov 03, 2025

If the user triggers Undo, your effect does receive the previous parameters (with correct state info), right? 

>Plug-ins should receive a PF_Cmd_USER_CHANGED_PARAM command regardless of how a parameter value has changed...

A distinction, which may or may not make a difference: In the case you describe, the user doesn't change the param; they instead invoke Undo, to avoid changing the param. 

In that case, where Undo obviates any changes to the param, I'm struggling to understand the cases where your plugin would want any outcome, other than the one provided by the host given your plugin the previous, valid params. 

This doesn't (yet) make sense to me: 

PPro: "Okay, the user said they didn't want any changes, so I put everything back where it was...but here's a PF_Cmd_USER_CHANGED_PARAM message, just in case!" 


Status Acknowledged
Translate
Report
Participant ,
Nov 04, 2025 Nov 04, 2025

Thanks for looking into this! Hopefully I can do a decent job explaning why plugins need to be able to respond to parameter value changes under all situations.

 

Plugins can have hundreds of parameters, and some only matter when specific conditions are true. We solve this problem through dynamic parameter UI: hidind and/or disabling those parameters that aren't useful under the current effect configuration. This much should be obvious, but what may not be obvious is that any changes to a parameter’s visibility or state aren't actually pushed to the undo stack. After Effects and Premiere Pro don't agree on how to give plugins the power to hide or disable parameters either (Premiere Pro wins! :-)).

 

Imagine this scenario:

- User enables parameter A, a checkbox.

- Plugin receives "parameter A was changed!" notification from the host via PF_Cmd_USER_CHANGED_PARAM.

- Plugin shows parameter B, previously hidden. There is dynamic UI rule that says "parameter B should only be visible if the feature enabled by A is on". For example, a "Blur Radius" slider parameter only needs to be displayed if the user has enabled "Blur".

 

If the user selects Undo, both After Effects and Premiere Pro fail to notify the plugin that parameter A has changed again. And therefore the plugin does not get a chance to hide parameter B. This leaves the UI in an inconsistent state.

 

An optimistic software engineer be tempted to say: "The solution is to make sure any changes to parameter state should also be added to the undo stack, so that in the example above, parameter B would become hidden again as part of the Undo command." I strongly advise against this, I've seen it tried and failed elsewhere and besides the tricky differences between your two apps, it has the potential to introduce complexity into the logic that handles caching: e.g. should changing a parameter’s visibility or state invalidate the frame cache? Bottom line: don't do anything, just send plugins PF_Cmd_USER_CHANGED_PARAM when a value has changed under all conditions and let them update their own UI as appropriate.

 

Now for those who are reading this through a web search. Because the two apps have very different opinions about almost every SDK issue, there is a costly workaround to ensure your plugin has the correct UI, at least in After Effects. After the Undo operation, After Effects sends an PF_Cmd_UPDATE_PARAMS_UI, at which point the plugin can re-evaluate all of its UI rules and make sure the user sees the right UI in the inspector. Premiere Pro sends no message at all, so there is no workaround possible. And truth be told, this workaround sucks. Updating all of your UI is not great either. It is far more efficient for a plugin to do this task:

 

- Parameter A has changed. What parameters depend on parameter A? I'll make sure to only update those.

 

...than having to do this every time the plugin receives PF_Cmd_UPDATE_PARAMS_UI:

 

- Iterate over all parameters, evaluating all UI rules which is potentially an O(n^2) problem, to make sure I am showing the correct UI to users.

 

Hope this helps. I would have attached a video example but replies don't seem to get that option.

 

 

Translate
Report
Community Expert ,
Nov 04, 2025 Nov 04, 2025

@FxFactory,

 

> I would have attached a video example but replies don't seem to get that option.

 

Reply by email is limited, but replying on the forum allows adding pix/video.

 

Stan

 

 

Translate
Report
Participant ,
Nov 04, 2025 Nov 04, 2025

@Stan Jones The Insert Video button wants me to type a link to an external source (YouTube?). Is there any way to just embed/attach? Even with a size limit (e.g. 10MB) that would be great.

Translate
Report
Community Expert ,
Nov 04, 2025 Nov 04, 2025

I could swear I just saw one, but you are correct.

 

Stan

 

Translate
Report
Community Expert ,
Nov 04, 2025 Nov 04, 2025
LATEST

There is an attachment area (that allows video) below the reply box for discussions, but not for bugs. Weird.

 

Stan

 

Translate
Report