- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我已经为这个问题苦苦挣扎了一个多星期,很可能是 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!
我也可以在 Grafika 上复制它只需在 Record GL 应用程序中将两个几何图形的绘制替换为绘制有问题的图像之一,全屏,横向模式,并将比特率更改为更高的值 (7Mbps)。码率越大,编码器崩溃的速度越快。
这是一个 image这似乎很容易打破它,这里是RecordFBOActivity.java进行所需的更改。
使用 Grafika,我在三星 S4、国际版和原始 Nexus 4 上进行了测试,编码器崩溃了。使用我们的软件,它比渲染纯图像稍微复杂一点,它仍然在两者上崩溃。未在任何其他 Adreno 设备上进行测试。在配备 Mali 400 GPU 的三星 S3 上,它运行良好。
在 4Mbps 时,我们应用程序中的编码器仍会在 S4 和 N4 上崩溃,但稍后会崩溃。 Grafika 在 N4 上的同一个地方崩溃,但在 S4 上没有。
编辑:根据下面的评论,当从缓冲区编码相同的图像时,它也可以被复制。各种测试似乎缩小了重现它的条件:Qualcomm 设备上的 h264 hw 编码器,为许多帧编码静止图像(由于相似的帧,这确定编码器中的比特率非常低),编码关键帧时出现错误(仅在对某些图像进行编码时才会出现错误,这些图像似乎具有更多细节,即帧内编码需要很多位。
最佳答案
这似乎是上面所说的一个错误。
关于android - 从 Surface 编码时 Adreno GPU 上的编码器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255626/
我有两个奇怪的错误,有时会在我为 View 设置动画时出现(在 NineOldAndroids 的帮助下)。很难调试所以我还不确定,但我认为这可能是由 v.setLayerType(View.LAYE
有时,当我使用 Eclipse 运行我的应用程序时,我在启动时遇到此错误,应用程序意外关闭并在 logcat 中显示此错误: Tag : Adreno-GSL Text : :ioctl_
我们在使用 Adreno 220 GPU 的 Sony Xperia S 手机上进行 GLSL alpha 测试时遇到问题。设备运行 Android 4.0.4。 在 Adreno 200、Adren
我正在尝试从 Snapdragon 820 设备(三星 Galaxy S7)上的 Adreno 530 GPU 获取 CL_DEVICE_MAX_COMPUTE_UNITS 和 CL_DEVICE_M
我从这里下载了适用于 Linux 的 adreno profiler https://developer.qualcomm.com/mobile-development/maximize-hardwa
我已经为这个问题苦苦挣扎了一个多星期,很可能是 Qualcomm GPU/硬件视频编码器中的一个错误。由于我们被迫发布应用程序,而他们的开发者论坛没有提供任何反馈,我也将其发布在这里,希望有人能够提供
只是想分享一个经验,我想看看是否有人遇到过这样的问题,他们是否找到了原因,更重要的是他们是如何解决的。 问题非常简单:在 Nexus 6(作为 Adreno 420 GPU)上调试 native 代码
我在两个测试设备上遇到问题 - Samsung Galaxy J5、Android 6.0.1、内核 3.10.49-11903637、Build MMB29M.J510FNXXU2AQG3 GPU
我是一名优秀的程序员,十分优秀!