【问题标题】:Android GraphicBuffer with pixel format HAL_PIXEL_FORMAT_YV12像素格式为 HAL_PIXEL_FORMAT_YV12 的 Android GraphicBuffer
【发布时间】:2013-05-28 13:08:12
【问题描述】:

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

【问题讨论】:

    标签: android opengl-es android-ndk egl


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 2014-03-11
      • 2014-06-09
      • 2014-03-20
      • 1970-01-01
      相关资源
      最近更新 更多