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

AfterEffects multiprocessor problems

Explorer ,
Oct 21, 2010 Oct 21, 2010

Copy link to clipboard

Copied

My effect works in two passes and uses an averaging technique over a large number of frames in a composition. It stores the results of the first pass (preview) in the sequence data for use in the second (render) pass. There are a few other effects that work this way, such as a motion stablilizer.

This works fine on a single processsor system or when render multiple frames simultaneously is turned off. It seems to work fine in Premiere Pro since I use the flag PF_OutFlag2_PPRO_DO_NOT_CLONE_SEQUENCE_DATA_FOR_RENDER.

Is there a similar flag or method for After Effects?

When I debug my effect on an eight cpu machine, I can see that one thread is used for my effect user interface while the other seven threads are being used for rendering. The other seven seem to have different sequence data (In fact all have different global data), so they cannot use the sequence data that was prepared while previewing.

Is there another way around this problem?

Thanks,

Mike

TOPICS
SDK

Views

1.6K

Translate

Translate

Report

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 Correct answer

Adobe Employee , Nov 02, 2010 Nov 02, 2010

Hi Mike,

If the string "EffectsCompatability -- Effect MP Compatible 4" isn't working, then it's probably just off by a version number.  Have you tried 3 or 5?

After Effects CS4 calls PF_Cmd_GLOBAL_SETUP with appl_id == 'PrMr' because AE loads the MediaCore library, which happens to provide AE plug-in hosting for Premiere Pro/Elements.  If you don't need to know which app you're running it during GLOBAL_SETUP, you can ignore this spurious call.  This was fixed in CS5 so that AE's MediaCore no long

...

Votes

Translate

Translate
Adobe Employee ,
Oct 21, 2010 Oct 21, 2010

Copy link to clipboard

Copied

Hi Mike,

You’d need to use AEGP calls on PF_Cmd_GLOBAL_SETUP to add a preference. To change it for CS5, you'd do something like this:

AEGP_PersistentBlobH prefsH;
persistentDataSuite->AEGP_GetApplicationBlob(&prefsH);
persistentDataSuite->AEGP_SetLong(prefsH, "EffectsCompatability -- Effect MP Compatible 6", “Your Plugin MatchName”, 0);

This will create something like this in the AE prefs file:

["EffectsCompatability -- Effect MP Compatible 6"]
                 "0-Default For New Entries" = "1"
                 "Your plugin match name" = "0"

This key has been known to change.  For example, in CS4, it was "EffectsCompatability -- Effect MP Compatible 4".  In CS3, I believe it was just "EffectsCompatability -- Effect MP Compatible"

Regards,

Zac

Votes

Translate

Translate

Report

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
Explorer ,
Oct 25, 2010 Oct 25, 2010

Copy link to clipboard

Copied

Zac,

Thanks for the tip, it worked like a charm in CS5.

But, it's not working for me in CS4. Are those keys documented anywhere?

-Mike

Votes

Translate

Translate

Report

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
Adobe Employee ,
Oct 26, 2010 Oct 26, 2010

Copy link to clipboard

Copied

Hi Mike,

No, their not currently documented.  Did you try the "EffectsCompatability -- Effect MP Compatible 4" string for CS4?

Regards,

Zac

Votes

Translate

Translate

Report

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
Explorer ,
Oct 26, 2010 Oct 26, 2010

Copy link to clipboard

Copied

Zac,

Here's the code I put in my globalSetup...

if ((in_data->appl_id == 'FXTC') && (in_data->version.major == PF_AE90_PLUG_IN_VERSION) && (in_data->version.minor== PF_AE90_PLUG_IN_SUBVERS))

{

// 12.14 means we are running AE CS4

AEGP_PersistentBlobH prefsH;

error = suites.PersistentDataSuite1()->AEGP_GetApplicationBlob(&prefsH);

error = suites.PersistentDataSuite1()->AEGP_SetLong(prefsH, "EffectsCompatability -- Effect MP Compatible 4", "my match name", (A_long)0);

}

It excutes with no errors, but doesn't seem to work. When I do a render on a multi-core machine, I can watch as globalSetup is called again on another thread. I have used AEBP_GetLong to double check and have verified that it is getting set correctly.

Incidentally, I found some strange behavior on startup...

1) Launch AECS4

2) During the AECS4 slash screen, globalSetup is called (strangely) with in_data->appl_id = "PrMr",   what is this all about???

3) AECS4 continues on and displays the recent projects list

4) I click on a project that uses my effect and globalSetup is called again, but this time (correctly) with  in_data->appl_id = "FXTC"

Why does AE call globalSetup with a premiere code? Why does it call globalSetup so early?

Thanks,

Mike

Votes

Translate

Translate

Report

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
Adobe Employee ,
Nov 02, 2010 Nov 02, 2010

Copy link to clipboard

Copied

Hi Mike,

If the string "EffectsCompatability -- Effect MP Compatible 4" isn't working, then it's probably just off by a version number.  Have you tried 3 or 5?

After Effects CS4 calls PF_Cmd_GLOBAL_SETUP with appl_id == 'PrMr' because AE loads the MediaCore library, which happens to provide AE plug-in hosting for Premiere Pro/Elements.  If you don't need to know which app you're running it during GLOBAL_SETUP, you can ignore this spurious call.  This was fixed in CS5 so that AE's MediaCore no longer attempts to load AE plug-ins, since those are handled by AE itself.

Regards,

Zac

Votes

Translate

Translate

Report

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
Explorer ,
Dec 08, 2010 Dec 08, 2010

Copy link to clipboard

Copied

LATEST

Effect MP Compatible 5 worked with CS4

Thanks

Votes

Translate

Translate

Report

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