Android GraphicBuffer,像素格式为HAL_PIXEL_FORMAT_YV12

时间:2013-05-28 13:08:12

标签: android opengl-es android-ndk egl

我尝试使用此指令创建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像素的格式。

1 个答案:

答案 0 :(得分:0)

如果您需要YUV,请使用NV21,即HAL_PIXEL_FORMAT_YCrCb_420_SP,并且所有API级别都支持。

虽然YV12是在API级别9中引入的,但只保证从API 12开始支持所有设备。