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是什么原因,该怎样解决?

解决方案 »

  1.   

    Invalid argument 无效参数
    请贴出播放视频相关代码
      

  2.   

    显示设备分配BUFFER失败,可能是显示驱动OPEGLES的问题,呵呵
      

  3.   

    google 在ICS 上graphicbuffer管理机制做了改动。可以对比4.0和2.3的,softwareRenderer.cpp
    但是gralloc.xxx.so目前又不支持HAL_PIXEL_FORMAT_YV12。
    最简单的办法,是注释掉softwareRenderer.cpp,65行,case OMX_COLOR_FormatYUV420Planar: 播放就有视频出来了。
      

  4.   

    对的,要么自己修改一下gralloc.xx.so吧,支持HAL_PIXEL_FORMAT_YV12就OK了,
    目前流行硬件解码,所以估计google都没有测试这一块,就把代码上传了
      

  5.   

    问题解决了?我也在用GL搞现实,Q:1049568282