【发布时间】:2017-05-17 00:54:17
【问题描述】:
我正在用 C++ 编写一个 Android 应用程序,并希望从包含 YUV420sp 图像的内存块中获取一个 GraphicBuffer。具体来说,我有一个来自相机的 dataCallbackTimestamp 回调函数的 IMemory,它为我提供了一个带有视频帧图像的内存块,我想将它添加到 BufferQueue 而不执行 memcpy。我正在使用 HAL,但我客户的硬件上没有可用的 HAL3 或 Camera2(这会使这变得微不足道)。
特别是,如何从 void* 创建零拷贝 ANativeWindowBuffer 或 GraphicBuffer ?我需要能够为 4K 视频每秒映射 30 个这样的 GraphicBuffers。 我搜索了互联网和示例,但不知道如何在没有 memcpy 的情况下执行此操作(这会降低我的帧速率)。
我可以处理像素格式等,但只需要帮助从内存中创建实际的 GraphicBuffer。
【问题讨论】:
标签: android c++ graphics android-ndk android-ion