There are two types of codecs: MMF software codecs and hardware-accelerated (DSP-based) codecs.
Software codecs are part of the MMF controller framework and implemented as standard ECOM plug-ins. Use of DSP codecs has the advantage of increased processing speed while lowering the power consumption of a device. DSP-based codecs are commonly used for A/V encoding and decoding on OMAP processors.
Software codecs are derived from the CMMFCodec class and operate in their own threads. They convert source data in a certain FourCC coding type to a destination buffer of another FourCC coding type usually via CMMFDataPath or CMMFDataPathProxy. [...]
Support of hardware-accelerated codecs in the MMF relies upon the CMMFHWDevice interface. Loading and managing of hardware codecs is beyond the controller’s competency, and therefore it is left out to the lower layers, such as CMMFDevSound and CMMFHwDevice, to control them. Unlike software codecs, hardware-accelerated codecs provide an asynchronous interface for data transformation. Typically, they would be equipped with direct hooks to the hardware offering better performance and more flexibility to the third-party developers.