×
Namespaces

Variants
Actions

配置eAAC+解码的MMF插件

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台: S60 3rd Edition
S60 3rd Edition (initial release)

文章
huwell 在 20 Dec 2007 创建
最后由 hamishwillee 在 30 May 2013 编辑


  • 详细描述


所有的S60第三版手机都有


基于CMMFCodec的eAAC+解码器。


可以不加限制供第三方程序使用。这个解码器由一个MMF插件完成,可以通过MMF controller在程序中使用。


为了使用这个解码器,我们还需要完成一些配置工作。配置的细节描述如下:


生成编码器的实例:

codec = CMMFCodec::NewL(UID);





参数UID可以是下面任意一种:

eAAC+ Decoder UID :     0x10207aa9
 
AAC Decoder UID: 0x101faf81





然后调用:

codec->ConfigureL( TUid aConfigType, const TDesC8 &aConfigData );





参数设置如下:

aConfigType = KUidMmfCodecAudioSettings;




(from \epoc32\include\mmf\plugin\mmfCodecImplementationUIDs.hrh)



aConfigData是由一个


11个元素组成的RArray<TInt>对象完成的:

[0] Fs:输入采样率<必填>

AAC解码器所需的采样率。


[1] 输出通道<必填>

eAAC+解码器可以用来判定输出通道的数目(1个或2个)

eAAC+解码器可以用来复制单声道到2个声道中,或者混音双声道为单声道。

(注意:这个参数一般都指明输入声道数的,但对eAAC+来说,却要指定为输出声道数)


[2] Profile(1或3)<必填>

1 = AAC-LC
 
3 = AAC-LTP





[3] 单位为byte的输出帧大小

如:将4096设置为每帧1024采样率的立体声AAC-LC的帧大小。

注意如果指定了SBR并且FOut=2*Fs,那么输出采样率数目应设为8192。

(这并非是用户配置选项,解码器将忽略该值)



[4] 每帧的采样率(1024)<旧参数>

只有1024才能被解码器支持。


[5] 输入采样率(和[0]一样)<必填>


[6] 不使用<旧参数>


[7] 过采样模式(0, 1) <必填>

0 正常模式
1 设置为Fout = Fs 这种情况下Fout将等于2*Fs(SBR开启,并且Fs <= 24kHz)
Decoder is specified for level 3 support of AAC+ (max output sample rate is 48kHz





[8] 采样大小(16) <必填> 每个采样的比特数


[9] Fout: 输出采样率(0, 8000, 16000, FOut<推荐>)

调用3gp过采样到8kHz或16kHz

0可以用来指明不执行3gp 8/16重新采用工具



[10] 扩展对象类型(5或6);只有


Profile = 1才有效(必填)

5 = SBR (AAC-LC + SBR)
 
6 = PS (AAC-LC + SBR + PS)
 
在成功调用ConfigureL()后,音频数据将开始解码:
 
codec->ProcessL( sourceBuffer, destBuffer );





注意:

sourceBuffer必须包含一个或多个完整的AAC/eAAC+帧,对部分帧的解析是不被支持的。

在S60第二版,FP3中,destBuffer必须足够大,以便填充足够的数据(这通常意味着输入AAC帧数量*2048*通道数的总和)

This page was last modified on 30 May 2013, at 07:37.
63 page views in the last 30 days.
×