Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
CameraHal的ION实现主要在文件 CameraHal_Mem.cpp中, 提供了三种实现
#define CAMERA_MEM_PMEM 0
#define CAMERA_MEM_ION 1
#define CAMERA_MEM_IONDMA 2
目前定义的是CAMERA_MEM_IONDMA,也就是用的IonDmaMemManager类, video/preview/jpeg/raw buffer都会调用ion来创建
createVideoEncBuffer
createPreviewBuffer
createRawBuffer
createJpegBuffer
CameraHal::CameraHal() -> CameraHal.cpp
mCamMemManager = new IonDmaMemManager() ->
IonDmaMemManager::IonDmaMemManager -> CameraHal_Mem.cpp
ion_open ->
open("/dev/ion", O_RDWR); ->
ion_open -> ion.c
ion_client_create
BufferProvider::createBuffer -> CameraBuffer.cpp
mCamBuffer->createPreviewBuffer -> //假设是创建preview buffer.
IonDmaMemMana
OS: Android 6.0
Kernel: 3.10.92
CameraHal的ION实现主要在文件 CameraHal_Mem.cpp中, 提供了三种实现
#define CAMERA_MEM_PMEM 0
#define CAMERA_MEM_ION 1
#define CAMERA_MEM_IONDMA 2
目前定义的是CAMERA_MEM_IONDMA,也就是用的IonDmaMemManager类, video/preview/jpeg/raw buffer都会调用ion来创建
createVideoEncBuffer
createPreviewBuffer
createRawBuffer
createJpegBuffer
CameraHal::CameraHal() -> CameraHal.cpp
mCamMemManager = new IonDmaMemManager() ->
IonDmaMemManager::IonDmaMemManager -> CameraHal_Mem.cpp
ion_open ->
open("/dev/ion", O_RDWR); ->
ion_open -> ion.c
ion_client_create
BufferProvider::createBuffer -> CameraBuffer.cpp
mCamBuffer->createPreviewBuffer -> //假设是创建preview buffer.
IonDmaMemMana