我尝试使用此指令创建Android GraphicBuffer
new GraphicBuffer(160,98,HAL_PIXEL_FORMAT_YV12,GraphicBuffer :: USAGE_HW_TEXTURE | GraphicBuffer :: USAGE_SW_WRITE_RARELY)
它适用于我的Android 4.0设备Huawei Mediapad,但不适用于Android 2.3 HTC Desire。 那是我得到的错误:
05-28 16:53:15.994:W / GraphicBufferAllocator(3765):alloc(160,98,842094169,00000120,...)失败-22(无效参数)
如果我将像素格式从HAL_PIXEL_FORMAT_YV12更改为HAL_PIXEL_FORMAT_RGB_565,那么它在我的两台设备上都能正常工作。我想Android 2.3不支持YV12 但无论如何我都需要YUV像素的格式。
答案 0 :(得分:0)
如果您需要YUV,请使用NV21,即HAL_PIXEL_FORMAT_YCrCb_420_SP,并且所有API级别都支持。
虽然YV12是在API级别9中引入的,但只保证从API 12开始支持所有设备。