AVX Connectivity Toolkit
What is AVX?
Avid Video eXtensions (AVX) is a cross-platform software architecture designed to allow software effect plugin modules to be dynamically linked with host application software packages transparently. AVX plugins dynamically extend the collection of visual effects supported by any Avid host application that supports the AVX interface.
The AVX environment consists of a software library and an application programming interface (API) that handles the flow of image data, the passing of effect parameters, and the communication necessary to enable effects to be included in the host application’s user interface, or to invoke their own user interface.
The design of the AVX interface allows effect plugins to be written simply and efficiently using a minimal amount of code. The plugin effect module can specify parameters to be displayed by the host application, eliminating the need for plugin specific user interface code. However, AVX also has provisions for effect plugins to invoke their own platform specific user interfaces.
The AVX interface is independent from the underlying operating system and host application. The AVX architecture will work on Windows and Macintosh platforms.
AVX Software Developers’ Kit
The AVX Software Developers’ Kit (SDK) consists of the following:
- AVX Developers’ Guide and Reference
- AVX library and header files
- Sample effect plugins, including source code and build environment
- WindTunnel Host Application Test Environment
- Developer support
Brief AVX Technical Summary
A plugin is a package of code designed to do a specific task that can be loaded and accessed by a client application at run-time. Plugin effect architectures allow new effects to be added, or existing effects to be updated without affecting the host application. AVX supports plugins that can handle image data and optional plugin based user interfaces. Plugins that implement host based user interfaces have a variety of parameter types available including direct manipulation.
AVX supports plugins implemented in C++. C++ plugins derive from a pair of AVX classes, and support library functions are implemented as base class member functions. AVX plugins are packaged as dynamically linkable modules (DLM) which are implemented as follows on the 3 supported platforms:
- Macintosh Code Resources
- Windows Dynamic Link Libraries (DLL)
The AVX API Design Goals:
- Only required functions need to be implemented in the DLM
- Optional functions omitted from the DLM have default fall-back functions in the support library
- The API can be extended by adding new optional functions and support library handlers
- AVX is backward compatible: host applications that do not have support for new optional functions will still work