手机的音视频解码分为软解码和硬解码,symbian对mp3,aac,amr的支持比较全,本地文件播放/录制/流媒体播放都OK,而wma作为微软主推的音频格式,symbian就没那么友好了,只用CMMFCodec实现了本地文件的软解码。以下是S60 3版所有的音视频编码格式, 搞相关方向的赶紧收藏:)
Codecs in S60 Devices
Different S60 devices may have different multimedia codecs. There are similarities between S60 devices, but there are differences, as well. The mere presence of a codec (e.g. mp3) in a device does not tell too much to developers. We need to know what APIs can be used to access that codec.
This page has several purposes:
- Show which codecs are in different S60 devices (3rd edition) and what are the APIs through which they can be accessed
- Provide an application to check this info for upcomming S60 phones.
For the theory behind the tables, please take a look on the following articles and documents:
[edit] Devices
Click on a device to see detailed info about its codecs.
S60 3rd edition:
S60 3rd edition FP1:
S60 3rd edition FP2:
-
32H1
- N78
[edit] Audio Codecs
API (Codec type) | AMR-WB (True Tones) | RealAudio 1 Voice, 7 | RealAudio10 | MP3 | AAC (both AAC-LC and AAC-LTP) | eAAC+, AAC+ | WMA | AMR-NB | VoIP (NB): G.711, iLBC, G729 |
---|---|---|---|---|---|---|---|---|---|
DevSound, CMdaAudioOutputStream (Accelerated HwDevice ) | 30H1, 30H3, 31H1 | 30H1 | 30H1 | 30H1, 30H3, 31H1 | 30H1, 30H3, 31H1 | - | - | 30H1, 30H3, 31H1 | 30H1, 30H3, 31H1 |
DevSound, CMdaAudioOutputStream (All-ARM HwDevice) | 30H2, 31H2 | - | - | 30H2, 31H2 | - | - | - | 30H2, 31H2 | - |
DevSound, CMdaAudioInputStream (Accelerated HwDevice ) | - | - | - | - | 30H3 | - | - | 30H1, 30H3, 30H2, 31H2, 31H1 | 30H1, 30H3, 31H1 |
DevSound, CMdaAudioInputStream (All-ARM HwDevice) | - | - | - | - | - | - | - | - | - |
CVideoPlayerUtility API (RealPlayer codec/wrapper) | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | - | (11) | - | 30H1, 30H2, 30H3, 31H2, 31H1 | - |
CMdaAudioPlayerUtility (CMMFController) | 30H1, 30H2, 30H3, 31H2, 31H1 | - | - | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1(7), 30H2(10), 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | - |
CMdaAudioRecorderUtility (CMMFController) | - | - | - | - | (1) | - | - | 30H1, 30H2, 30H3, 31H2, 31H1 | - |
CMMFCodec (99) (decoder) | 30H1(2), 30H2(3), 30H3, 31H2, 31H1 | - | - | 30H1(6), 30H2(9), 30H3, 31H2, 31H1 | 30H1(5), 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1, 30H2, 30H3, 31H2, 31H1 | 30H1(4), 30H2(8), 30H3, 31H2, 31H1 | - |
CMMFCodec (encoder) | - | - | - | - | 30H1, 30H2, 30H3, 31H2, 31H1 | - | - | 30H1(4), 30H2(8), 30H3, 31H2, 31H1 | - |
- ( 1) CMMFCodec-based AAC encoder present, but there is no MMF Controller to use this codec alone. AAC encoding used in capturing video from phone's camera, or getting AAC emcapsulated inside mp4 file format (without video).
- ( 2) without (not in): N80, N91
- ( 3) without (not in): 5500
- ( 4) without (not in): E60, E61, E65, E70, N91
- ( 5) without (not in): N92,
- ( 6) without (not in): N91
- ( 7) without (not in): E60, E61, E70
- ( 8) without (not in): 5500, E50,
- ( 9) without (not in): 5500
- (10) without (not in): E62
[edit] Video Codecs
API & Codec type | RV 8/9/10 | H.263/MPEG-4 | H.264 |
---|---|---|---|
MDF DevVideoRecord (Accelerated HwDevice ) | - | 30H1, 30H3, 31H1 | - |
MDF DevVideoRecord (All-ARM HwDevice) | - | 30H2(2), 30H3, N75, 31H2, 31H1 | - |
CVideoPlayerUtility (RealPlayer codec/wrapper) | 30H1 (1), 30H2, 30H3, 31H1, 31H2 | 30H1 (1), 30H2, 30H3, 31H1, 31H2 | 30H1 (1,3), 30H3, 31H1, 31H2 |
- (1) RealVideo, H.263/MPEG-4 and H.264 codecs in 30H1 are implemented in DSP
- (2) Without (not in): E62
- (3) Without (not in): Eseries phones (E60, E61, E70)
[edit] FAQ
Q: I know that Device X has the codec Y, but the codec is not listed in the tables above. Why?
A: This is because the codec can not be accessed by any of the APIs listed in the tables.
[edit] The Application
- SIS file: codecs_public_armv5_v7.SIS
- Sources: Codecs_public_release20061220.zip