我按照以下方法访问YUV
缓冲区。它适用于少数手机。但是在S3和Note 3中我遇到了问题。任何原因 ?请帮帮我。
sp<GraphicBuffer> mCurrGraphicBuffer;
void *vaddr;
mCurrGraphicBuffer = mVideoBuffer->graphicBuffer();
mCurrGraphicBuffer->lock(GRALLOC_USAGE_SW_READ_OFTEN, &vaddr);
我试图谷歌,但没有任何帮助我。
答案 0 :(得分:1)
提供映射虚拟地址的lock
的实现取决于gralloc
中供应商的内部实现。
您的问题的一个潜在原因可能是GraphicBuffer
可能未创建usage
标志GRALLOC_USAGE_SW_READ_OFTEN
。
如果可能,请在创建usage
之前在GraphicBuffer
标记中启用此标记,然后重试您的实验,我觉得应该会成功。