问题描述
在Camera的Hal层修改数据流,系统相机应用获取到的数据会改变,除此之外,调用相机服务的第三方应用获取到的数据也会得到改变。比如Oppo手机 ColorOS 12 OMOJI功能:微信视频通话的时候可以使用3D表情功能。
如果在相机的Hal层对数据流进行修改,第三方使用相机服务的应用得到的数据也会改变。
具体怎样对Camera Hal层的数据进行修改?
解决问题思路
1.找到Camera Hal层的数据流
2.了解数据流格式,对其进行修改
问题解决
找到Preview数据流:
hardware\qcom\camera\QCamera2\HAL3
QCamera2HardwareInterface::preview_stream_cb_routinemm_camera_super_buf_t *super_frame, QCameraStream * stream, void userdata)
//了解下 mm_camera_super_buf_t数据结构
typedef struct {
uint32_t camera_handle;
uint32_t ch_id;
uint32_t num_bufs;
uint8_t bUnlockAEC;
uint8_t bReadyForPrepareSnapshot;
mm_camera_buf_def_t bufs[MAX_STREAM_NUM_IN_BUNDLE]; /