AVX Connectivity Toolkit
What is AVX?
Avid Video eXtensions (AVX) is a cross-platform software architecture designed to allow software effect plug-in modules to be dynamically linked with host application software packages transparently. AVX plug-ins 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 plug-ins to be written simply and efficiently using a minimal amount of code. The plug-in effect module can specify parameters to be displayed by the host application, eliminating the need for plug-in specific user interface code. However, AVX also has provisions for effect plug-ins 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 plug-ins, including source code and build environment
- WindTunnel Host Application Test Environment
- Developer support
Brief AVX Technical Summary
A plug-in is a package of code designed to do a specific task that can be loaded and accessed by a client application at run-time. Plug-in effect architectures allow new effects to be added, or existing effects to be updated without affecting the host application. AVX supports plug-ins that can handle image data and optional plug-in based user interfaces. Plug-ins that implement host based user interfaces have a variety of parameter types available including direct manipulation.
AVX supports plug-ins implemented in C++. C++ plug-ins derive from a pair of AVX classes, and support library functions are implemented as base class member functions. AVX plug-ins 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