小编use*_*546的帖子

从Surface编码时,编码器在Adreno GPU上崩溃

我一直在努力解决这个问题一个多星期,而且很可能是高通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): …
Run Code Online (Sandbox Code Playgroud)

android video-encoding mediacodec

66
推荐指数
1
解决办法
2856
查看次数

OpenCV:如何使用其他字体而不是HERSHEY与cvPutText(如Arial)

我想写一个图像格式化的文本.OpenCV仅提供一组有限的默认字体.是否可以使用其他人?例如,从*.ttf文件(在Ubuntu中)读取它们?

opencv image truetype

14
推荐指数
2
解决办法
2万
查看次数

OpenGL矩阵 - 无法找到正确的矩阵

编辑:总结我想做的事情,更简洁:

将大小纹理渲染为wi,hi输出纹理wo,ho,以便保持输入纹理的宽高比,并且它适合输出纹理,如果宽高比不同,则最终使用黑色边框.为此我想使用透视投影,因为我可以旋转或应用其他变换到输入纹理.

然后我希望这个输出纹理显示在屏幕上,大小ws, hs,hs可能大于ws.再次,保持纵横比和适合黑色边框.这里正交投影应该足够,因为只需要渲染到屏幕,不需要进一步处理.

我想在没有黑客的情况下这样做,为了让我的生活更轻松,以防我以后想要旋转,缩放原始纹理.我可以通过试验和错误来计算如何修改参数以获得我现在想要的东西,但宁愿按照预期的方式使用每个矩阵.

android opengl-es projection render-to-texture opengl-es-2.0

11
推荐指数
0
解决办法
184
查看次数

如何从OMX logcat消息开始调试MediaCodec错误?

使用MediaCodec,很多时候错误消息来自OMX层.如何使用它们来帮助调试不那么微不足道的问题?例如,我有一个应用程序有时无法创建用于解码h264流的编解码器.它似乎只发生在三星S4(I9505)等设备上,而S3,Nexus 4(旧)则没有发生.在大多数情况下,在S4上相同的视频被解码.在创建编解码器之前,有一些密集的计算,包括OpeGL的东西.它失败的那一行是:

MediaCodec.createByCodecName(codecInfo[0].getName());
Run Code Online (Sandbox Code Playgroud)

codecInfo[0].getName()具有值OMX.qcom.video.decoder.avc和在logcat的以下输出:

06-23 19:12:18.197: I/OMXClient(23749): Using client-side OMX mux.
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): In OMX vdec Constructor
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): vidc.dec.debug.ts value is 0
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): vidc.dec.debug.concealedmb value is 0
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): vidc.dec.debug.extradata value is 0
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): Successfully opened vdec ion devicefd = 35
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): Successfully created vdec ionlock
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): Vdec instances = 1, ion device fd = 35
06-23 19:12:18.197: E/OMX-VDEC-1080P(282): omx_vdec::component_init(): Start of New Playback …
Run Code Online (Sandbox Code Playgroud)

android openmax mediacodec

6
推荐指数
0
解决办法
5068
查看次数