A flexible interface that enables an application to communicate directly with
processing
modules to easily control the processing of streaming data. The interface provides
basic commands for applications to use to communicate with processing modules and
provides the flexibility to adapt to changing standards. The interface enable an
application to set the type of input and output data formats of a processing module
and control when the processing module processes input data and generates output
data. The processing modules enurmerate its capabilities by category, by media
type, or by both category and media type. Processing modules are registered by
class ID, category, whether the application needs a key, the number and types of
input data types, and the number and type of output data types to register.