Qcom 平台 camera 之 RAW+YUV图抓取

目录

前言

抓取注意事项

dumping mask bit 定义  

Andorid5/8 – HAL1 – 拍照 – RAW 

调试 抓取拍照 RAW 图 Android9.0

Android9.0 – HAL1 – preview – RAW

操作步骤:

抓取的脚本:

相关的代码:

抓到的 RAW 图:

        注意点:

Android9.0 – HAL1 - snapshot – RAW

操作步骤:

抓取脚本:

相关的代码:

抓到的 RAW 图:

注意点:

Android9.0 – HAL1 - video – RAW 

Android9.0 另一种方式抓 snapshot raw 图 

RAW 图裁剪参数 - 驱动配置

Android9.0 – HAL1 – preview – YUV 

抓取步骤: 

        抓取的脚本:

相关的代码:

抓到的 YUV 图:

 注意点:

Android9.0 – HAL1 - snapshot – YUV

抓取步骤:

抓取的脚本:

相关的代码:

抓到的 YUV 图:

注意点:

Android9.0 – HAL1 – video – YUV

抓取步骤:

抓取的脚本:

抓到的 YUV 图:

相关的代码:

注意点:

Android9.0 – HAL3 – Callback – YUV

抓取步骤:

抓取脚本:

相关的代码:

抓到的 YUV 图:

        注意点:

Android9.0 dump Metadata

dump 属性配置

dump 路径文件和函数定义:

雪山千古冷,独照峨嵋峰


 

前言

简述Qcom 平台,抓取raw图、YUV图的抓取方式,和相关的代码流程。

旨在camera sensor存在比较明显的效果问题的时候,判断问题出在哪个环节。

Note: 

抓取 RAW YUV图之前需要先确认当前Android版本和Camera APP使用的是哪种HAL接口。

HAL1HAL3,在HAL层中 camera的这部分差异较大,实现流程不同,需要注意。

参考文档 :

kba-161204073328_2_how_to_dump_camera_image_buffer.pdf

抓取raw图的文件路径和代码:

HAL1 代码位置:

  • HAL1 接口位置

8953_APP_P\hardware\qcom\camera\QCamera2\HAL\QCamera2HWI.cpp

  • HAL1 回调函数位置

8953_APP_P\hardware\qcom\camera\QCamera2\HAL\QCamera2HWICallbacks.cpp

  • HAL1 dump 函数

void QCamera2HardwareInterface::dumpFrameToFile

  • HAL1 dump 属性
  • HAL1 dump JPEG 图

hardware/qcom/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp:

2920:    property_get("persist.vendor.camera.dumpimg", value, "0");

  • HAL1 dump YUV 图

hardware/qcom/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp:

3097:    property_get("persist.vendor.camera.dumpimg", value, "0");

 

HAL3 代码位置:

  • HAL3 接口位置

hardware\qcom\camera\QCamera2\HAL3\QCamera3HWI.cpp

  • HAL3 回调函数位置

hardware\qcom\camera\QCamera2\HAL3\QCamera3Channel.cpp

  • HAL3 dump 函数

void QCamera3Channel::dumpYUV(...)

  • HAL3 dump 属性

property_get("persist.vendor.camera.dumpimg", prop, "0");

  • HAL3 dump YUV 图

hardware/qcom/camera/QCamera2/HAL3/QCamera3Channel.cpp:

542:    property_get("persist.vendor.camera.dumpimg", prop, "0");

 

抓取注意事项

HAL 架构问题

  •  首先要注意抓取的 Camera APP 使用的HAL1 还是 HAL3 架构
  •  因为不同 hal 架构,所需要的抓取命令不同

数据流的时效性问题:

要抓取的这路流什么时候存在,是打开相机就存在还是需要触发才出现,

  •  preview:预览数据流, 打开相机预览流就开始启动了。打开相机触发。[常开流]
  •  video:录像数据流, 只有开启录像,这路流才存在。开启录像触发。[触发流]
  •  metadata:元数据配置流, 每个 Capture 都会伴随一个 metadata 流。[待补充]
  •  snapshot:拍照数据流, 只有拍照动作才会存在这路流。拍照触发。[触发流]
  •  callback:Google Camera2 相机存在这路流,请用这个App进行测试。[待补充]
  •  以上基线代码默认配置的流。其他新增的流,要和APP开发人员确认什么时候流存在。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值