Skip to main content
Participant
November 5, 2013
Answered

PiPL and code version mismatch warning

  • November 5, 2013
  • 3 replies
  • 11391 views

Hey, I was hoping someone could help me understand PiPL versions.  I have had some problems with a warning flag when I apply my plugin in after effects, getting a warning flag that says:

"effect has version mismatch.  Code version is 2.0 and PiPL version is 2.0 (108600) (25 :: 16)"

 

This is a pretty unhelpful message as 2.0 == 2.0. 

 

I've found I can make the error go away if I dutifully replicate the header and pipl versioning found on the adobe sdk examples, but this is kind of annoying and I'd like to understand it better. 

To load without error, my PiPL resource looks like this:

                    AE_PiPL_Version { 2, 0 },

                    AE_Effect_Version { 1048577 } /* 2.0 */

and my plugin header looks like this:

#define          MAJOR_VERSION                    2

#define          MINOR_VERSION                    0

#define          BUG_VERSION                    0

#define          STAGE_VERSION                    PF_Stage_DEVELOP

#define          BUILD_VERSION                    1

 

I'm guessing the "code version" the warning refers to is a concatenation of major and minor versions, and it seems the "PiPL version" the warning is reporting comes from AE_Effect_Version (1048577) and NOT AE_PiPL_Version (2,0). 

 

If I change ANY of the values in the plugin header (not just major/minor versions), I get the warning.  So I suspect the AE_Effect_Version number is some kind of a hash of all the version info (major, minor, bug, stage, build versions), and that the warning is a bit misleading. 

Can anyone explain more about that number, 1048577?  Is it some kind of hex value?  Thanks!

This topic has been closed for replies.
Correct answer thenes

When I first started trying to figure out the versions in the PiPL it was kicking my butt,  so here are my notes on how to figure out the number for the effect version:

RESOURCE_VERSION =

MAJOR_VERSION * 524288 +

MINOR_VERSION * 32768 +

BUG_VERSION * 2048 +

STAGE_VERSION * 512 +

BUILD_VERSION

So for your setup of

#define          MAJOR_VERSION                  2

#define          MINOR_VERSION                  0

#define          BUG_VERSION                      0

#define          STAGE_VERSION                 PF_Stage_DEVELOP  // this is a 0 from the enum in AE_Effect.h

#define          BUILD_VERSION                   1

it would be:

RESOURCE_VERSION =

2 * 524288 +

0 * 32768 +

0 * 2048 +

0 * 512 +

1

Which would yierd you: 1048577

So it would end up being:

AE_Effect_Version {

   1048577

}

Hopefully that helps

3 replies

Participant
December 8, 2023

I have the same issue. i updated my graphics driver and my  (sapphire and boris continium) plugin started showing version mismatch error in after effects 2018.please can anyone help with a solution?

Participant
November 5, 2013

Works exactly as you said, thanks! 

I might make a little script to generate the AE_Effect_Version automatically, make life easier. 

thanks again!

Legend
January 7, 2014

I'm actually trying to script this now, and am running into the issue that the Code Version does not match the PiPL version even though the error message shows they are the same.

effect "My Effect" has version mismatch.  Code version is 1.2 and PiPL version is 1.2 (9001a) (25 :: 16)

I created a new header file containing the defines used for versioning.  I created this separate header file so I can write to it during a pre-build phase using my IDE--either Xcode or Visual Studio 2013.  That file looks like this:

#define MAJOR_VERSION  1

#define MINOR_VERSION  0

#define BUG_VERSION  0

#define STAGE_VERSION 0

#define BUILD_VERSION 1

#define RESOURCE_VERSION 524289     //Used in PiPL file

Then I include this header in my effect's main header file

...

#include "Version_Info.h"

...

Then I use the defined RESOURCE_VERSION term in my PiPL file like so

AE_Effect_Version {

     RESOURCE_VERSION

}

This method works with the defines declared above, but if I change any of the values and alter the RESOURCE_VERSION to the numerical representation according the thenes formula, I get an error.  There is code in my effect's PF_Cmd_GLOBAL_SETUP function that sets outdata->my_version like so:

out_data->my_version = PF_VERSION( MAJOR_VERSION,

  MINOR_VERSION,

BUG_VERSION,

  STAGE_VERSION,

  BUILD_VERSION);

Not sure if that has anything to do with the "mismatch", but I'm at a loss for how I can easily update the version of my plugin at build time.  Any suggestions?

Thanks,

Arie

Community Expert
January 7, 2014

if you're on windows, you have to erase to .rc file, and only then will the

compiler create a new updated one from the .r file.

On Tue, Jan 7, 2014 at 5:08 PM, Arie Stavchansky

thenesCorrect answer
Inspiring
November 5, 2013

When I first started trying to figure out the versions in the PiPL it was kicking my butt,  so here are my notes on how to figure out the number for the effect version:

RESOURCE_VERSION =

MAJOR_VERSION * 524288 +

MINOR_VERSION * 32768 +

BUG_VERSION * 2048 +

STAGE_VERSION * 512 +

BUILD_VERSION

So for your setup of

#define          MAJOR_VERSION                  2

#define          MINOR_VERSION                  0

#define          BUG_VERSION                      0

#define          STAGE_VERSION                 PF_Stage_DEVELOP  // this is a 0 from the enum in AE_Effect.h

#define          BUILD_VERSION                   1

it would be:

RESOURCE_VERSION =

2 * 524288 +

0 * 32768 +

0 * 2048 +

0 * 512 +

1

Which would yierd you: 1048577

So it would end up being:

AE_Effect_Version {

   1048577

}

Hopefully that helps