C++로 안드로이드 애플리케이션을 작성 중이며 YUV420sp 이미지가 포함 된 메모리 블록에서 GraphicBuffer를 가져오고 싶습니다. 특히, 비디오 프레임의 이미지가있는 메모리 블록을 제공하는 카메라의 dataCallbackTimestamp 콜백 함수에서 가져온 IMemory가 있으며,이를 memcpy를 수행하지 않고 BufferQueue에 추가하려고합니다. 나는 HAL을 사용하고 있으며 HAL3 또는 Camera2를 내 클라이언트의 HW에서 사용할 수 없습니다 (이것은 간단합니다).zero-copy를 사용하여 안드로이드 메모리를 GraphicBuffer에 매핑하십시오.
특히 제로 복사본 ANativeWindowBuffer 또는 void * 밖으로 GraphicBuffer를 만드는 방법은 무엇입니까? 나는 4K 비디오를 위해 초당 30 개의 GraphicBuffers를 매핑 할 수 있어야한다. 인터넷과 예제를 샅샅이 뒤졌지만 memcpy (내 프레임을 죽이기)없이이 작업을 수행하는 방법을 알아낼 수는 없습니다.
픽셀 형식 등을 처리 할 수 있지만 메모리에서 실제 GraphicBuffer를 만드는 데 도움이 필요합니다.