Plugin Development for Adobe Premiere and After Effects

Taught by

Course Number:
Software Version:
CC 2015 
Original Run Date:
January 2016 
6 hours 25 minutes 
In this course we will tackle the hard core topic of plug­in development for Adobe Premiere and Adobe After
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 8­bit, 16­bit and 32­bit 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 -
Plugin Development for Adobe Premiere and After Effects
Watch our overview of the course

Class Listing

Class 1

Hardware and software requirements for cross­platform development. Installing XCode/ Visual Studio. Downloading Adobe and nVidia SDKs. Setting up testing platform. Compiling a sample plug­in to get started, basic debugging. Differences between debug and release versions. A few words about Adobe Technology Program.

Class 2

C 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 plug­in development. Loops and conditionals. Defining and calling functions. Pointers/references versus values. C memory management.

Class 3

C++ primer: Difference between C and C++. Classes and objects. Private and public members – methods and properties. Memory management in C++. Macros. Cross­platform development and compiler directives. Modern C++ additions and how using the makes C++ code easier to read and write.

Class 4

Getting 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 5

Repurposing template Skeleton project for our vignette plug­in. Writing PiPL information. Setting up interface controls. Passing control values to a render function in an optimal manner, rendering the vignette.

Class 6

Adding a control for vignette centre point, creating transformation matrix and making sure our vignette can be repositioned. Testing our plug­in with various aspect ratio and interlaced footage, at various playback resolutions.

Class 7

Adding 32­bit float compatibility for After Effects.

Class 8

Adding Premiere Pro compatibility for 8­bit and 32­bit float RGB and YUV processing. Understanding BGRA and VUYA color spaces. Making use of YUV processing to make vignette faster.

Class 9

Looking into GPU acceleration for Premiere. Limitations of GPU processing and language subset to use. Writing a CUDA core.

Class 10

Repurposing CUDA core for OpenCL. Finishing touches. Building a release version.