What is AVX?
Avid 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 Design Goals:
- Platform and host application independence
- Easy and transparent extensibility
- Simple user interface provided by the host application
- Support for custom platform dependent plug-in supplied user interface
- Backward compatibility
- Several types of image buffer organizations and colorspaces
- Resolution independence
- Simplicity in plug-in implementation
- Support for sequences of frames as well as static images
The AVX interface is complete and supported in Avid Symphony, Avid Media Composer, Avid NewsCutterAVX plug-ins have been developed by over a dozen ISVs
We are currently evaluating AVX plug-in vendors to participate in the program. Evaluation is to determine if the vendor is willing to work in a Beta capacity, and have an established marketing and support infrastructure. The advantages to becoming an AVX developer include early access to AVX technology, access to a large installed base, ability to contribute to the priority of the AVX feature set, and joint marketing opportunities with Avid.
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