Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

配置eAAC+解码的MMF插件

From 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 04:37.
131 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×