首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于AC-3的Android MediaCodec

用于AC-3的Android MediaCodec
EN

Stack Overflow用户
提问于 2015-01-22 13:32:33
回答 1查看 2.2K关注 0票数 1

我正在尝试用解码AC3音频。如果我将csd-0设置为初等流描述符,我就可以成功地解码AAC。

在尝试解码AC3时,我在配置中使用了以下MediaFormat:

代码语言:javascript
复制
AMEDIAFORMAT_KEY_MIME: "audio/ac3"
AMEDIAFORMAT_KEY_CHANNEL_COUNT: 6
AMEDIAFORMAT_KEY_SAMPLE_RATE: 48000
AMEDIAFORMAT_KEY_IS_ADTS: 0

在调用AMediaCodec_configure时,我收到以下错误消息:

代码语言:javascript
复制
01-22 12:37:58.760: E/ACodec(10548): [OMX.Nvidia.bypass.decoder] configureCodec returning error -2147483648
01-22 12:37:58.760: E/ACodec(10548): signalError(omxError 0x80001001, internalError -2147483648)
01-22 12:37:58.760: E/MediaCodec(10548): Codec reported err 0x80001001, actionCode 0, while in state 3
01-22 12:37:58.760: E/MediaCodec(10548): configure failed with err 0x80001001, resetting...

我需要一些额外的数据来提供解码器吗?我不熟悉AC3标准,也许在csd-0中必须提供的基本流描述符是等效的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-22 15:38:12

在OpenMAX IL (这是MediaCodec内部使用的标准)中,没有关于如何处理AC-3的官方规范,但尽管如此,一些制造商确实公开了这样的解码器。

我之前曾尝试在三星GalaxyS3上做这样的解码工作,而我不需要传递任何额外的数据。有关此实验的信息,请参见https://github.com/mstorsjo/vlc/commit/omxil-ac3

我不知道这个特定的Nvidia解码器是否有不同的行为,或者在ACodec/MediaCodec之间是否有其他的缺失,这使得它无法使用。(上面的示例直接使用内部OMX,从MediaCodec可用之前开始。)为了完成这个问题的答案,我想我应该在Galaxy S3上重新测试这个实验,无论是通过OMX还是通过MediaCodec,然后是在一个Nvidia设备上(这是您正在测试的Nexus 9吗?)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28090060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档