СС2015 - Modal dialog is waiting for response.
how can I get the pluginID in Effect type plugins?
I am craeting Effcet plugin and I want to get the PluginID because I want to execute the script file using AEGP_ExecuteScript() function?.
so Could you please tell me how can I get the pluginID in Effect plugins?
Thanks
Manjunath G
second parameter "const A_char* inScriptZ" description in AEGP_ExecuteScript()??
The prototype of AEGP_ExecuteScript() is
SPAPI A_Err (*AEGP_ExecuteScript)(AEGP_PluginID inPlugin_id, const A_char* inScriptZ,// in const A_Boolean platform_encodingB, AEGP_MemHandle* outResultPH0, AEGP_MemHandle* outErrorStringPH0);
What is the second parameter "const A_char* inScriptZ" describes?
Is it path of the script file or direct script only?
Thanks
Manjunath
Text justification using AEGP
Is it possible to retrieve the text justification of a text layer using AEGP suites ?
The jsx equivalent is
var just = layer.property("ADBE Text Properties").property("ADBE Text Document").value.justification;
Thanks
Image Buffer Pixel Array?
I have a little problem which I am unable to figure out. I need the image buffer with only pixels but not any padding. Currently I am using the following code.
int num = (int)(output->width*output->
unsigned char * data;
data = new unsigned char[num] ;
for(int y = 0; y < output->height; y++)
{
memcpy(&data[y*output->width*sizeof(PF_Pixel8)], (char *)¶ms[LAYER_INPUT]->u.ld.data+params[LAYER_INPUT]->u.ld.rowbytes*y, output->width*sizeof(PF_Pixel8));
}
To test whether its working or not, I have the following snippet
for(int y = 0; y < output->height; y++)
{
memcpy((char *)output->data+output->rowbytes*y,&data[y*output->width*sizeof(PF_Pixel8)] , output->width*sizeof(PF_Pixel8));
}
delete [] data;
But, then image is all glitched and jaggy when I test it. What did I do wrong?
AEGP_GetProjectPath in CS5, MemHandle to char
Hey guys, I'm trying to port a plug-in from windows ( cs4 ) to mac (cs5), and surprisingly it's been pretty smooth, I have however run into a couple of issues.
/* CS4 - Windows code */
A_char astrFullpath[AEGP_MAX_PATH_SIZE];
ERR(suites.PROJ_SUITE()->AEGP_GetProjectPath(ahProjectH, astrFullpath));
... so I know now we have to create a MemHandle, which will give us the Unicode string.. like so
/* CS5 - mac code */
AEGP_MemHandle path;
ERR(suites.PROJ_SUITE()->AEGP_GetProjectPath(ahProjectH, &path));
.... my question is, how do I create a A_char out of my path MemHandle?
I think the MemHandle is a UTF16Char, but I need it to be a char*....
I hope I'm not overlooking something really simple, programming is just a hobby of mine!
Thanks in advance!
Premiere + OpenGL
Hello.
I created a plugin in After Effects SDK CS6 (Adobe Forum members wrote that my plugin should work both in AE and Premiere).
In AE my plugin works perfectly. In Premiere, when I don't use OpenGL and for example colorize footage everything is ok. When I use OpenGL my plugin crashes Premiere on the first line of OpenGL code...
I don't know why. I read that Premier has multi-threading render but when I enable multi-threading render option in AE everything renders ok.
How I use OpenGL:
I create hidden OpenGL context, grab all the pixels and add them to the input pixels.
Thanks in advance for answer.
Dave
Are plugins cross-platform?
Are plugins developed for after effects compatible accross both Mac and Windows, or does one need to take into consideration the platform their using when developing a plugin?
AEGP_IterateGeneric, AEGP_WorldH and AEGP_GetBaseAddr
I have an effect I am working on that performs several iterations over an AEGP_WorldH
This is accomplished by the following scenario:
AEGP_WorldH outputWorld;
ERR(suites.WorldSuite3()->AEGP_New( NULL,
AEGP_WorldType_8,
width,
height,
&outputWorld));
PF_Pixel8 *pxlOut;
ERR(suites.WorldSuite3()->AEGP_GetBaseAddr8(outputWorld, &pxlOut));
PF_Pixel8 *bop_outP = (PF_Pixel8*)pxlOut;
for (register A_long yL = 0; yL < height ; yL++) {
for (register A_long xL = 0; xL < width; xL++) {
//do fun stuff
bop_outP++;
}
}
I would like to take some of the iterations that can be broken up into smaller units of
work and feed them into the generic iteration function to take advantage of the multiple
CPUs on my computer.
I have a structure, and from the examples I have seen in the forum it looks like I should
be sending a structure with PF_EffectWorlds into the generic function and then performing
iterations on a row by row basis?
I was wondering if it would be possible to send in an AEGP_WorldH so that I could use it
in a similair way to how i'm already using it in my main render function or would I need to
convert to PF_EffectWorld first and pass that PF_EffectWorld in with the structure?
After Effects crash when calling ProjSuite5()->AEGP_OpenProjectFromPath
I'm running 12.2
I have code that opens a project.
The only time this code doesn't make after effects crash is in the ImportFile command method; however, I'm trying to run a server ontop of my plugin so I can control after effects remotely.
AEGP_ProjectH projH = NULL;
AEGP_SuiteHandler suites(S_sp_basic_suiteP);
A_UTF16Char templatePath[AEGP_MAX_PROJ_NAME_SIZE];
const wchar_t* wide_templatePath = L"C:\\Projects\\TT1.aep";
copyConvertStringLiteralIntoUTF16(wide_templatePath, templatePath);
ERR(suites.ProjSuite5()->AEGP_OpenProjectFromPath(templatePath, &projH));
I click debug and hook into visual studio and it's saying.
Unhandled exception at 0x000000003201B840 (Projector.aex) in AfterFX.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.
I've even tried registering into the IdleHook and it still crashes.. Any ideas?
resize the output
I want to change the size of output buffer. So I need to put my code in Frame_Setup according to the "Resizer" sample project.
What embarassed me is that only after calculation can I get the expected size.But I can't obtain the input image in Frame_Setup.
I don't know how can I solve this problem. I will be grateful if you can give me advice.
btw, It's not necessary to calculate the size every time before rendering. What I exactly need is getting input image the first time
I enter Frame_Setup function. Then I can make sure what size is of the output video.
PF_CreateNewAppProgressDialog - how to use it?
Hi!
I am trying to figure out how to use PF_CreateNewAppProgressDialog().
I get an After Effects error: bad PF_ProgPtr (25::2002) when calling it
CODE:
PFAppSuite6 *pfApp = NULL; | |||
A_UTF16Char | title[256] , | ||
button[256]; | |||
PF_AppProgressDialogP prog_dlgP = NULL; | |||
basic_dataP->pica_basicP->AcquireSuite(kPFEffectUISuite, kPFEffectUISuiteVersion1, (const void**)&pfApp); | |||
if(pfApp) | |||
{ | |||
pfApp->PF_CreateNewAppProgressDialog(title, button, true, &prog_dlgP); | |||
// After Effects error: bad PF_ProgPtr (25::2002) here | |||
if(prog_dlgP) | |||
{ | |||
pfApp->PF_AppProgressDialogUpdate(prog_dlgP, 0, 0); | |||
} | |||
basic_dataP->pica_basicP->ReleaseSuite(kPFEffectUISuite, kPFEffectUISuiteVersion1); | |||
} |
Thanks
JS
New After Effects CC 2017 plug-in SDK is live
As usual, freely available here: http://www.adobe.com/devnet/aftereffects.html
Direct link: http://www.adobe.com/devnet/aftereffects/sdk/cc2017.html
Possible to call / load an external DLL in GlobalSetup()?
Hi Again
So, I'm needing to use a DLL provided to me by a third party. I need to call a function from it in GlobalSetup(). I've linked the DLL (x64) correctly as Visual Studio is building the .aex just fine. However, when I go to debug and apply the effect to a solid, for exampe, AE tells me:
After Effects error: plugin "testplug.aex" could not be loaded (126).
(48 :: 46)
Then, I click 'OK', and when I apply the effect again it gives me the following error:
After Effects error: invalid filter
(25 :: 3)
From my experience this usually means that After Effects cannot find some kind of DLL, but I might be wrong. When this error comes up, I do see the following in Visual Studio's debug output:
First-chance exception at 0x00007FF8BB0D871C in AfterFX.exe: Microsoft C++ exception: long at memory location 0x000000000083AE78.
First-chance exception at 0x00007FF8BB0D871C in AfterFX.exe: Microsoft C++ exception: long at memory location 0x000000000083AFAC.
First-chance exception at 0x00007FF8BB0D871C in AfterFX.exe: Microsoft C++ exception: long at memory location 0x000000000083B610.
I doubt that means anything, but just thought I would share that info in case it does.
I've pinned down the problem to the first line of code that calls a function from the third-party DLL. When I comment out that line, everything is okay, but when I uncomment it, I get the errors above. So, my question is if there is anything I can further to do debug the DLL issue. The DLL was just shipped with an SDK, so I don't have access to the source.
If there is any insight you all can offer, I would be most appreciative.
Thanks and best,
Arie
About Dialog message length
Does anybody know if it is possible to extend the message length beyond PF_MAX_EFFECT_MSG_LEN (255 characters) or provide another way to provide about information?
I am using a number of third party libraries in my plugin which require crediting as part of their licence conditions and they will not all fit in. Unless I can expand this dialog or find another way to provide the credit then I may not be able to deliver this project :-(
Trouble with PF_OutFlag_I_USE_AUDIO and PF_CHECKOUT_LAYER_AUDIO
I am trying to render a graphical representation of the layer's audio waveform. I have seen
, with the problem checking out the audio, but i cannot get even that far.
In my GlobalSetup function i set out_flags thus..
out_data->out_flags = PF_OutFlag_I_USE_AUDIO;
but in my PF_Cmd_FRAME_SETUP function, and PF_Cmd_RENDER function ( also PF_Cmd_SMART_PRE_RENDER PF_Cmd_SMART_RENDER)
the PF_InData src_snd structure is always empty and in_data->start_sampL == 0, in_data->dur_sampL == 0, in_data->total_sampL == 0
I am clearly missing something, I really appreciate any guidance,
Thanks
Steve (London, UK - any Adobe plugin developers nearby?)
Draft quality input layer
Hi guys,
Im building a plugin using region recognition of flat colors. Then I m building up region list by color and gathering it in clusters.
My problem is when using "Best quality" setting, After Effects generate some kind of anti aliased lines that I really dont want to have in my input (it make the number of region considerably bigger). It seems that this anti aliasing process occurs BEFORE the effect computation.
I would like to get an input layer without the anti aliased lines (i.e in draft mode).
I can render it with aegp suites but it s really slow. I would love to be able to specify when checking out layers the pixels I want and their quality.
Does anyone know how to do it?
Thanks in advance.
Command to run and begin playing project?
For some plugin development tasks, it would be helpful if there were a command to load and begin playing a project at 100% zoom immediately upon AE starting up. I've been able to get AE to load my project by passing it as the first command line argument. Is there a way to then start playing immediately?
After Effects + OpenGL
I know that this subject was already touched upon here a couple of years ago but I want to refresh it.
I'm interested in implementing OpenGL in After Effects' plugin. Is is possible yet? If yes - how?
This is my simple example code I would like to use in After Effects plugin:
int size = 500;
glColor4f(1, 0, 0, 1);
glBegin(GL_POLYGON);
glVertex2f(-size, -size);
glVertex2f(-size, size);
glVertex2f(size, size);
glVertex2f(size, -size);
glEnd();
Any help would be appreciated.
can someone guide for after effects plugin development??
Can someone guide for after effects plugin development??
Its very hard to find directions to do one.
Have written some scripts in extended script with support of adobe community and online tutorials.
But i know Plugin development is not easy task but my curiosity kills me if i dont try.Can someone plz guide.
I have downloaded SDK CC 2015. There are bunch of examples, template Skelton, AEGP folder.All Visual studio solutions.
When i try to open it, it says project not loaded some installation components are missing, reinstall by turning microsoft visual studio c++ 2015 on.
Can someone just share a very small step by step brief from start to end.??
From Coding to .aex format??
thanks