android gpu 视频编码,android – 编码器崩溃对Adreno GPU编码从Surface

我一直在努力解决这个问题超过一个星期,很可能是一个错误的Qualcomm GPU /硬件视频编码器。因为我们被迫发布应用程序,并且他们的开发人员论坛没有提供任何反馈,我也在这里发布它,希望有人能够提供一些线索,或更好,一个解决方法,以便编码器中的错误未触发。

应用程序从Surface编码。当某些图像被渲染到表面时,编码器在同一位置(当当前正在编码的帧是关键帧时)失败(100%)。在崩溃点从编码器的Logcat输出(最后一行以非常高的速率重复):

11-26 11:41:33.312: E/OMX-VENC-720p(25949): ERROR: async_msg_process() - Error statuscode = 1

11-26 11:41:33.312: E/ACodec(29317): [OMX.qcom.video.encoder.avc] ERROR(0x80001009)

11-26 11:41:33.312: E/MediaCodec(29317): Codec reported an error. (omx error 0x80001009, internalError -2147483648)

11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: venc_use_buf:set input buffer failed

11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: in dev_use_buf

11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: empty_buffer_done() failed!

11-26 11:41:33.372: E/OMX-VENC-720p(25949): m_fbd_count at o/p flush = 306

11-26 11:41:33.372: E/OMX-VENC-720p(25949): m_etb_count at i/p flush = 313

11-26 11:41:33.372: E/OMX-VENC-720p(25949): ERROR: ioctl VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER failed

11-26 11:41:33.372: E/OMX-VENC-720p(25949): ERROR: dev_fill_buf() Failed

11-26 11:41:33.372: E/OMX-VENC-720p(25949): ERROR: FTBProxy() failed!

我可以通过在记录GL应用程序中替换绘图的两个几何形式绘制一个有问题的图像,全屏,在横向模式,并将比特率更改为更高的值(7Mbps),也可以复制它在Grafika。

编码器的崩溃发生在更大的比特率。

与Grafika,我测试和编码器崩溃的三星S4,国际版本和原来的Nexus 4.与我们的软件,这是一个比渲染平原图像复杂一点,它仍然崩溃两者。未在任何其他Adreno设备上测试。在三星S3,与Mali 400 GPU,它工作正常。

在4Mbps,我们的应用程序中的编码器仍然在S4和N4,但后来崩溃。 Grafika在N4在同一个地方,但不是在S4上崩溃。

编辑:根据下面的评论,它也可以在从缓冲区编码同一图像时再现。各种测试似乎缩小了条件以再现它:h264 hw编码器在高通设备上,编码许多帧的静态图像(这由于类似的帧而在编码器中确定非常低的比特率),在编码关键帧仅当编码某些图像时出现错误,其似乎具有更多细节,即,对于帧内编码需要许多比特)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值