Android4.0 模拟器 视频播放 出现
W/GraphicBufferAllocator( 34): alloc(176, 144, 842094169, 00002930, ...) failed -22 (Invalid argument)
E/SurfaceFlinger( 34): GraphicBufferAlloc::createGraphicBuffer(w=176, h=144) failed (Invalid argument), handle=0x0
E/SurfaceTexture( 34): [SurfaceView] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
W/SoftwareRenderer( 37): Surface::dequeueBuffer returned error -22
是什么原因,该怎样解决?
------解决方案--------------------
Invalid argument 无效参数
请贴出播放视频相关代码
------解决方案--------------------
显示设备分配BUFFER失败,可能是显示驱动OPEGLES的问题,呵呵
------解决方案--------------------
google 在ICS 上graphicbuffer管理机制做了改动。可以对比4.0和2.3的,softwareRenderer.cpp
但是gralloc.xxx.so目前又不支持HAL_PIXEL_FORMAT_YV12。
最简单的办法,是注释掉softwareRenderer.cpp,65行,case OMX_COLOR_FormatYUV420Planar: 播放就有视频出来了。
------解决方案--------------------
对的,要么自己修改一下gralloc.xx.so吧,支持HAL_PIXEL_FORMAT_YV12就OK了,
目前流行硬件解码,所以估计google都没有测试这一块,就把代码上传了