Plugin Development for Adobe Premiere and After Effects
- Course Number:
- Software Version:
- CC 2015
- Original Run Date:
- January 2016
- 6 hours 25 minutes
Effects. Even though C/C++ development is indeed more complex than scripting or writing expressions, we
will learn enough to leverage the sample projects that come with Adobe’s SDKs to create our own vignette
effect. We will delve into 8bit, 16bit and 32bit processing in RGB and YUV color spaces, make our way
through SDK documentation, and even make inroads into GPU processing with CUDA and OpenCL.
Previous C/C++ knowledge is not required, though some experience with any programming or scripting
language will definitely help.
Bart Walczak wears many creative hats - an editor, a vfx artist, a developer. Among other things he's an Adobe Certified Expert in Premiere Pro and an author of a few useful Premiere and After Effects tools that you might already be using without even knowing it. You can find his plug-ins and scripts on his website - www.creativeimpatience.com.
Class 1Hardware and software requirements for crossplatform development. Installing XCode/ Visual Studio. Downloading Adobe and nVidia SDKs. Setting up testing platform. Compiling a sample plugin to get started, basic debugging. Differences between debug and release versions. A few words about Adobe Technology Program.
Class 2C primer: Overall structure of C programs and libraries source code. Compilation, linking and building. Basic syntax. Variable types. Defining and assigning variables. Creating custom types and why it’s important for plugin development. Loops and conditionals. Defining and calling functions. Pointers/references versus values. C memory management.
Class 3C++ primer: Difference between C and C++. Classes and objects. Private and public members – methods and properties. Memory management in C++. Macros. Crossplatform development and compiler directives. Modern C++ additions and how using the makes C++ code easier to read and write.
Class 4Getting to know Premiere and AE SDKs. What is a plugin anyway? Plugin types. Code organization. Entry function and order of operations. Designing a vignette effect. Understanding and optimizing processing time.
Class 5Repurposing template Skeleton project for our vignette plugin. Writing PiPL information. Setting up interface controls. Passing control values to a render function in an optimal manner, rendering the vignette.
Class 6Adding a control for vignette centre point, creating transformation matrix and making sure our vignette can be repositioned. Testing our plugin with various aspect ratio and interlaced footage, at various playback resolutions.
Class 7Adding 32bit float compatibility for After Effects.
Class 8Adding Premiere Pro compatibility for 8bit and 32bit float RGB and YUV processing. Understanding BGRA and VUYA color spaces. Making use of YUV processing to make vignette faster.
Class 9Looking into GPU acceleration for Premiere. Limitations of GPU processing and language subset to use. Writing a CUDA core.
Class 10Repurposing CUDA core for OpenCL. Finishing touches. Building a release version.