Multimedia Framework Architecture (MMF)
S60 devices have many audio and video codecs. The availability of these codecs and their performance are device-dependent. Also, there are several APIs that a third-party application can use to access these codecs.
Audio decoders can be accessed using the following APIs:
- CMdaAudioOutputStream (Archived:Audiostream playback)
Audio encoders can be accessed using the following APIs:
Video decoders can be accessed using the following APIs:
- CVideoPlayerUtility (video and audio).
Video encoders can be accessed using the following APIs:
- MDF DevVideoRecord
- CVideoRecorderUtility (video and audio).
For more details on how to use these APIs, please see the following documents:
The APIs for accessing codecs can be classified into two types: low-level APIs and high-level APIs. The low-level APIs are:
- MDF DevVideoRecord, used to access video encoders (and preprocessors);
- DevSound, used to access audio encoders and decoders.
MDF and DevSound codecs can be accelerated or all-ARM (which means they run fully in software). MDF and DevSound codecs, accelerated or not, are sometimes referred to as HwDevice.
Not all audio codecs are implemented below DevSound. Some audio codecs are implemented at the MMF level, using the CMMFCodec interface (see illustration above). Video decoders can be implemented inside RealPlayer Engine, fully in software, or using hardware acceleration.