MTK Camera HAL 层数据传递主要三模块:
一:预览(StartPreview)
二:拍照(TakePicture)
三:回传(PreviewCallBack)
一:预览(StartPreview)
AP层下达预览指令后如何获取数据,数据是什么格式的,最后拿到数据后
是如何去预览,以下分为四部分解析预览数据流程
1 :AP 层到HAL 层流程及获取数据参数
AP层下达startPreview后调到JNI层
android_hardware_Camera_startPreview,在CameraClient中去设
setPreviewWindow和mHardware->startPreview,通过
Cam1DeviceBase:: startPreview去初始化DisplayClient,获取
getPreviewFormat,getPreviewSize及initBuffers初始化预览数据的Buf.
2 :预览线程的创建及数据处理
HAL层PreviewClient下达eID_WAKEUP创建
onClientThreadLoop线程,在线程 waitAndHandleReturnBuffers中
通过dequeProcessor获取实时预览数据.
3: 数据是如何显示出来的
AP层setPreviewSurface后调用JNI层setPreviewTarget,此函数