
Android Camera开发【小驰Camera私房菜】
文章平均质量分 69
全网最具价值的Android Camera开发系列资料~
作者:Android Camera开发,从Camera app一直做到Hal和驱动~
欢迎订阅,相信能扩展你的知识面,提升个人能力~
优惠券已抵扣
余额抵扣
还需支付
¥199.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
小驰行动派
Android开发,专注音视频、camera领域。欢迎关注
展开
-
小驰私房菜系列-目录
14_mm-camera_查看stream流配置、选择的sensor分辨率。17_mm-camera_Camera 打开、切换速度日志分析。25_Qcom_Camera 稳定性、性能问题 debug手段。15_mm-camera_高通HDR dump分析。30_MTK平台Camera基本流程,日志信息打印。11_mm-camera 添加客制化分辨率。24_MTK平台修改camera数据方向。12_mm-camera 必知必会01。13_mm-camera 必知必会02。18_qcom_camx 日志系统。原创 2023-03-28 23:17:16 · 582 阅读 · 0 评论 -
050_小驰私房菜_MTK Camera debug, data rate 、mipi_pixel_rate 确认
下面的信息我们可以看到,mipi_pixel_rate = 501.357739Mpps,mipi rate = 10000000,是对应的我们驱动文件里面配置写的mipi_pixel_rate的值。而 mipi_pixel_rate = 501.357739Mpps 才是真正计算出来的值。data rate的值如果需要修改,需要修改sensor对应寄存器的值。试过如果只是修改驱动文件里面的mipi_pixel_rate ,对sentest实际打印出来的mipi_pixel_rate 值没有影响。原创 2025-01-04 23:43:57 · 181 阅读 · 0 评论 -
049_小驰私房菜_MTK Camera debug,通过adb 命令读写Camera sensor寄存器地址的值
设备先adb root。1)读取寄存器地址的值。2)往寄存器地址写值。原创 2025-01-04 23:42:28 · 394 阅读 · 0 评论 -
048_小驰私房菜_MTK 平台meta配置支持raw数据获取,高通平台思路一样
这篇文章,主要介绍下,app层是怎么去判断一个平台是否支持上层获取raw图的。不错了,很多人应该想到了,那就是通过meta信息来判断,具体的meta tag,详细看文章。另外一点,如果平台框架本身是支持的,然后由于我们meta信息没配全,导致app无法获取raw图,那我们是需要配哪些meta信息,怎么配,这篇文章也有讲到。首先第一个,google是提供了标准的api,也就是通过imageReader去获取raw图的。通过dump media.camera 信息,快速的确认,当前平台是否支持raw格式获取。原创 2025-01-05 09:15:00 · 93 阅读 · 0 评论 -
047_小驰私房菜_Qcom 8系列,Jpeg GPU 旋转
大家想查看相关逻辑流程,可以在camx代码里面直接搜索overrideGPURotationUsecase,既可以看到相关判断逻辑。(这个修改只在qcom8系列上验证过,不同基线代码可能有差异)overrideGPURotationUsecase=1 后,直接底下出图就给它旋转个90度,图片查看软件就不会再去做旋转了。Gallery这些图片浏览软件,在显示的时候,会去拿图片的exif信息的方向值来参考,来决定显示的时候是否需要做旋转。或者在/vendor/etc/camera/原创 2025-01-04 23:38:03 · 137 阅读 · 0 评论 -
046_小驰私房菜_MTK平台,Camera添加自定义拍照尺寸
中添加MTKCAM_TEST变量,通过变量MTKCAM_TEST控制是否需要添加该组分辨率。,adb push到vendor/lib64/下,重启生效。原创 2025-01-05 06:00:00 · 74 阅读 · 0 评论 -
【无标题】
除了下面修改,还有寄存器的修改。寄存器的配置,需要模组厂提供。kernel部分的修改,只是提供参。我们直接用MTK相机来验证就好。打开MTK相机,切换到录像模式,在录像模式下,点击到设置,在设。这篇文章主要介绍,在MTK平台上,Camera需要支持60帧的录像,会涉及到哪些内容的修改。前面针对60fps录像app上的修改,也是查看了MTK原生相机代码,总结出来的。从下面的内容我们可以看到,MTK平台,会有个专门的hfpsMode。置里面,打开enable 60fps开关。原创 2025-01-04 23:35:21 · 59 阅读 · 0 评论 -
044_小驰私房菜_MTK平台Camera关闭多帧
效果调试的需要,有时需要将平台多帧关闭,这篇文章介绍MTK平台如何关闭多帧。原创 2025-01-04 23:32:26 · 159 阅读 · 0 评论 -
043_小驰私房菜_MTK Camera,Hal层将camera型号写到property属性中
在kernel和hal层,都是有地方能获取到当前摄像头的型号,就看在哪里添加方便。获取到摄像头硬件型号后,将其写入到property属性,app层需要知道当前设备的摄像头型号,然后做一些差异化处理。底下如何上报这个摄像头型号?然后app就可以通过读取该属性来获取当前摄像头型号。原创 2025-01-04 23:30:22 · 266 阅读 · 0 评论 -
042_小驰私房菜_MTK Camera yuv旋转90度方案
做旋转可以在app层接收到数据后,自行做旋转,也可以在hal层,针对yuv format这路流进行旋转。那我们做旋转也可以采用类似的方式。预览和录像是正常的,这个是因为预览和录像有方向相关属性可以调整,系统会根据摄像头mount的角度已经当前设备的方向,进行对应的旋转。这个下面这个文件,可以修改摄像头的mount角度。,可以看到前摄的Orientation是270,所以原始出图是做了90度的旋转。这个方案,思路就是在配流信息中,将rotation信息进行修改。注:本文章所用权归:小驰成长圈,禁止转载宣传!原创 2023-12-23 23:05:00 · 302 阅读 · 0 评论 -
041_小驰私房菜_MTK平台添加支持通过原生Camera API接口调用UsbCamera
从下面的日志里面可以看到,由于还有其它的selinux权限问题,导致camera error。:通过调用Android Camera API去调用UsbCamera,需要做哪些修改?setenforce 0来确认,解决selinux问题是否就正常。后面再根据实际的avc异常信息,添加selinux权限。注:本文章所用权归:小驰成长圈,禁止转载宣传!-------这里遇到的问题,是在。需要把自己的app包名,写到。中添加如下内容,问题解决。修改目录/device/修改目录/system/原创 2023-12-23 23:01:16 · 365 阅读 · 0 评论 -
040_小驰私房菜_MTK平台,添加camera客制化size
另外需要确认的是,目前驱动配置的寄存器里面,是否已经配置了大于我们我们自定义size的size配置,如果已经有了,那么可以选择继续使用当前sensor配置就好。如果想要sensor直出支持的自定义size,则sensor相关寄存器需要重新配置。首先,这个添加的size,是在sensor支持的最大size范围内的。sensor这边配置完成后,还需要在metadata中添加我们自定义的size,app才能获取到该组size。这篇文章的例子,是需要sensor这边配置一组2560 * 1600的配置。原创 2023-09-23 22:24:57 · 362 阅读 · 0 评论 -
039_小驰私房菜_Camera perfermance debug
针对不同的性能问题,可以添加不同的参数来针对抓取,否则抓取出来的文件过大,会导致打不开文件。作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~KERNEL_DEFCONFIG改成xxx-perf_defconfig。在chrome浏览器里输入地址 chrome://tracing/文件就可以查看到trace信息,根据trace信息来分析性能。5、用 chrome 浏览器打开trace file查看。欢迎订阅,相信能扩展你的知识面,提升个人能力~原创 2023-09-23 22:19:03 · 304 阅读 · 0 评论 -
038_小驰私房菜_Camx添加自定义vendorTag
Camx添加自定义vendorTag。原创 2023-08-13 23:21:21 · 470 阅读 · 0 评论 -
037_小驰私房菜_Qcom Camx,使用GPU Node做Flip
高通CamX框架下,官方给我们提供了GPU Node,使用这个Node,可以做Memcpy、Rotate、DownScale以及Flip。一、Add “NodePropertyGPUCapsMaskType ” to Flip。原创 2023-08-13 23:17:09 · 348 阅读 · 0 评论 -
036_小驰私房菜_MTK-Camera驱动配置项winsize信息
在camera sensor驱动代码里面,我们会看到 winsize相关的模块需要填写。那这部分内容,具体对应的应该填写哪。我们来看下 SENSOR_WINSIZE_INFO_STRUCT结构体的定义,就可以看到上面每组数据所代表的意义。那 SENSOR_WINSIZE_INFO_STRUCT 结构体的每个变量又该如何去理解呢?原创 2023-08-13 23:16:00 · 535 阅读 · 0 评论 -
camera hal|如何学习一个新平台
hal层的工作,需要对camera有个整体的熟悉了解。很多东西是相通的,而且比较好的模式应当是,要学会去平台化,要学习的是平台的设计模式,而不是具体的平台。比如高通的camx框架,就有一套自己的日志打印规则,mtk的当然也有自己的一套。我自己目前从事的是android camera hal 的工作,工作上接触到的芯片平台要么是高通的,要么是mtk的。今天想聊聊的是,接触一个新的平台,我们怎样才能快速的入门?接触一个新平台,我个人比较推荐的方式也是,先对这个平台有个大体的了解,然后再细分模块去了学习了解。原创 2023-08-13 23:14:14 · 568 阅读 · 2 评论 -
035_小驰私房菜_Qualcomm账号注册以及提case流程
4) Cases下,可以查看已经提交的case,也可以提交新的case.1) 登陆个人账号后,点击Support → Cases。3) Home下可以查看到已经添加的case。, 采用公司邮箱注册个人账号;2) 点击 Cases。原创 2023-08-13 23:12:16 · 1809 阅读 · 0 评论 -
034_小驰私房菜_[问题复盘] Qcom平台,某些三方相机拍照旋转90度
如果设置 overrideGPURotationUsecase = 1,相当于直接底下出图就给它旋转个90度,这个时候生成的jpeg exif信息是不会携带方向的。这样图片查看软件显示图片的时候就不会再去做旋转了。下面的截图内容我们可以看到,如果m_IsGpuNodePresent为false的时候,才会写orientation相关信息。Gallery这些图片浏览软件,在显示的时候,会去拿图片的exif信息的方向值来参考,来决定显示的时候是否需要做旋转。通过设置下面属性,可对jpeg编码方向做旋转。原创 2023-08-13 23:08:37 · 653 阅读 · 0 评论 -
033_小驰私房菜_Qcom平台8系列-Dump Jpeg & Jpeg Exif信息修改
里面,把JPEG_DUMP_TO_FILE 打开即可。dump生成的jpeg文件生成在 /data/vendor/camera/如果想客制化Jpeg 的exif信息,比如Jpeg的方向这些信息,可以在下面相关代码里面进行修改。有时我们想把hal这边拍照的jpeg格式数据直接dump出来对比看下。该怎么打开dump开关呢?jpeg相关代码逻辑在camx/src/swl/jpeg/ 路径下。原创 2023-08-13 23:05:43 · 339 阅读 · 0 评论 -
032_小驰私房菜_MTK平台拍照相关JpegNode Dump
输入上面命令之前,设备需要root和remount。命令输入后,需要把camerahalserver kill 掉才生效,设备重启后,命令实效。dump 完后,dump 出来的 buffer 都放到 /data/vendor/camera_dump 这个目录下了。setenforce 0 (注意:这里一定得setenforce 0,不然写文件没权限)192*144 是缩略图,2448 * 3264 是输入的buffer。在/data/vendor/目录下,创建JpegYuv文件夹。原创 2023-08-13 23:00:36 · 346 阅读 · 0 评论 -
031_小驰私房菜_MTK平台Camera基本流程,日志信息打印
Camera Device Manager 的 LOG TAG 是: mtkcam-devicemgr。//4)这个地方可以看到配流情况,分别是format 33和format 35,也就是拍照流和yuv流。Camera Devive Hal3 的 LOG TAG 是: mtkcam-dev3。然后更细节的日志打印,每个模块可能都有一些属性开关,这个需要以实际代码为准来确认。日志tag mtkcam-dev3,我们看下CameraDevice相关的日志。//1) camera 开始打开。原创 2023-08-13 22:59:36 · 641 阅读 · 0 评论 -
小驰私房菜_30_qcom根据关键日志信息,快速排查问题
全网最具价值的Android Camera开发资料。欢迎订阅~原创 2023-07-01 18:03:37 · 250 阅读 · 0 评论 -
小驰私房菜_29_app设置帧率相关接口
全网最具价值的Android Camera开发资料。欢迎订阅~原创 2023-07-01 17:59:00 · 246 阅读 · 0 评论 -
小驰私房菜_28_Qcom Camx相关名词
全网最具价值的Android Camera开发资料。欢迎订阅~原创 2023-07-01 17:57:09 · 354 阅读 · 0 评论 -
小驰私房菜_27_MTK 录像分辨率修改相关
全网最具价值的Android Camera开发资料。欢迎订阅~原创 2023-07-01 17:53:15 · 467 阅读 · 0 评论 -
小驰私房菜_26_YUV数据存在数据对齐,工具打开花图时如何处理?
全网最具价值的Android Camera开发资料。欢迎订阅~原创 2023-07-01 17:53:10 · 424 阅读 · 0 评论 -
小驰私房菜_25_Qcom_Camera 稳定性、性能问题 debug手段
在堡机测试中,遇到过一些问题,是由于当前系统性能问题,导致camera hal层直接触发了signal abort,然后出现so库crash。”,如果出现大量的frameMessage:requestId=0,则极大可能是驱动已经出现丢帧,这时需要抓kernel日志进一步确认。在堡机、压力测试等测试环境下,我们会遇到一些camera相关的稳定性问题,例如出现so库crash等,具体的问题,需要根据具体问题分析,这篇文章仅记录遇到的情况。注:本文章所用权归公众号:小驰成长圈,禁止转载宣传!原创 2023-06-26 22:45:25 · 604 阅读 · 0 评论 -
小驰私房菜_24_MTK平台修改camera数据方向
不过这个地方的 .dir和.orientation,会影响camera预览数据的方向。驱动这边,可以直接修改相关的寄存器,控制sensor输出的方向,类似的翻转和filp,都可以修改sensor寄存器实现。如上图所示,.port信息在最新的v4l2框架下,应该是没有用的,实际使用的port口是在dts文件中进行配置。上层的修改,只能是修改预览的方向。IMGSENSOR_SENSOR_IDX_MAIN 对应的是camera id 0,注:本文章所用权归公众号:小驰成长圈,禁止转载宣传!原创 2023-06-26 22:44:19 · 390 阅读 · 0 评论 -
小驰私房菜_23_Android Camera体系结构学习(一)
Android的启动包括linux内核的启动和android系统架构的启动。android系统里面有一个很重要的进程叫做init进程,init进程是linux系统中用户空间的第一个进程,进程号为1。当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取。adb shell ps 看下camera相关的进程,可以看到有cameraserver和provider 2个进程(provider是Android 8.0之后才有的)。原创 2023-06-26 22:41:10 · 322 阅读 · 0 评论 -
小驰私房菜_22_Camera问题debug搜索关键日志信息
如下面日志打印所示,我们还可以看到是调用的Camera API 1还是Camera API 2.如下面日志所示,可以当前sensorMode是0,feature1是3,feature2是6.根据关键日志信息,能帮忙我们快速的定位和分析问题。我想查看当前sensor支持的size,那可以在dump 的信息中搜索。可以看到配了3路流,分别是format 33、34、35.里面的信息其实非常的丰富,可以专门找介绍。fornat 35 表示的是yuv流;2) framework层 日志。logcat 日志关键字“原创 2023-06-26 22:39:21 · 215 阅读 · 0 评论 -
小驰私房菜_21_高通AF对焦软件的基本流程
目前的super PD可以支持Advanced对焦模式,当conf满足需求时,只需要初次搜索就可以满足搜索流程。TOF + CAF由于距离是根据AF table计算的距离,有一点的误差,所以必须的存在fine search。4) 数据经过算法处理后将输出我们此时的对焦状态,根据此时的对焦状态进行操作马达进行对焦状态。3) camx软件流程会统计所需要的值,将算法所需要的信息输出给算法。2)如下面日志所示,我们可以看到STATS_AF 相关日志。中添如下内容,打开af debug日志。原创 2023-06-26 22:38:08 · 886 阅读 · 0 评论 -
小驰私房菜_20_fwk/hal 过滤分辨率
举个例子:比如我不想 APP选择到低于480P的分辨率,那我们上报给APP的分辨率里面,就把低于480P的分辨率过滤掉就好。(大部分的第三方APP,目前其实还是用的Camera1的API接口,类似扫一扫的功能,采用Camera1 API已经足够)我们知道,正常的app请求相应的预览/拍照等分辨率的时候,首先是会通过相关的API先查找相机本身支持的分辨率的。那针对上面的问题,我们能做的就是,给app反馈相机支持的分辨率的时候,对支持的分辨率进行过滤。实际开发过程中,我们可以会遇到类似的场景。原创 2023-06-26 22:35:59 · 147 阅读 · 0 评论 -
小驰私房菜_19_打印实时frame number 以及fps
在定位分析问题的时候,有些时候需要确认是否掉帧?到 vendor/etc/camera/下,然后重启设备,或者kill camera相关进程。里面就有个CalculateResultFPS 的方法,里面间隔10s会打印当前实时预览帧率。里面,process_capture_request就有打印。查看下vendor/etc/camera目录下,是否有。有时遇到预览卡顿的问题,我们想看下当前预览帧率。number的打印,很多地方都会有,如下代码所示,文件,没有就创建一个,然后在。原创 2023-06-26 22:34:57 · 250 阅读 · 0 评论 -
小驰私房菜_18_qcom_camx 日志系统
对应上面的表格,CamxLogGroupISP 对应的值是 1原创 2023-06-26 22:33:51 · 310 阅读 · 0 评论 -
小驰私房菜_17_mm-camera_Camera 打开、切换速度日志分析
------------------------------ 下面是日志片段分析 ---------------------------------在做性能分析的时候,摄像头打开、关闭、出图速度,这些都会是关键的点。PROFILE_CLOSE_CAMERA 是camera关闭。PROFILE_OPEN_CAMERA 是camera打开,// Camera 0 打开耗时0.564s。// Camera 1关闭耗时 0.062s。//Camera 0 关闭耗时0.057s。原创 2023-06-26 22:32:37 · 174 阅读 · 0 评论 -
小驰私房菜_16_高通设备开机模式
Android Camera开发。原创 2023-06-26 22:29:03 · 304 阅读 · 0 评论 -
小驰私房菜_12_mm-camera 必知必会01
这个针对不同的平台,路径也会有所不一样,有些平台是在/android/vendor/qcom/proprietary/devicetree-4.19/qcom/ 下 ,更旧一点的平台则是在 /android/kernel/msm-4.9/arch/arm64/boot/dts/qcom/下。这边修改的内容,编译版本后,内容对应的就是设备里面 /vendor/etc/camera/ 路径下的camera_config.xml,这个camera_config.xml文件。ii、isp 预览yuv dump;原创 2023-04-02 11:22:14 · 746 阅读 · 0 评论 -
小驰私房菜_15_mm-camera_高通HDR dump分析
如何dump,一般的思路是这样的,高通的文档基本都会有介绍相应模块的dump命令,文档里面会直接给出对应的dump命令。在应用界面找到hdr模式的开关,然后打开。(下图所示是google camera go apk 的hdr模式开关界面,不同的apk界面会不同,视实际情况而定)(选择了hdr模式后,google的camera go apk,预览界面的右上角,会出现如下图所示的HDR图标)//选择了hdr模式后,mode 值会设置为8,也就是hdr模式,这时拍照,会走这边的流程。4)hdr dump 命令。原创 2023-04-02 11:27:19 · 630 阅读 · 1 评论 -
小驰私房菜_14_mm-camera_查看stream流配置、选择的sensor分辨率
我们前面搜索logcat | grep "STREAM INFO"的时候,其实还会看到下面的日志输出。通过上面的日志,我们可以看到上层是配置了3路流,分别是 1024 * 768 、480 * 320 、320 * 240,那对应的format又是分别表示的什么呢?日志上很清楚的就可以看到,当前是选的res_idx 1这组分辨率。res_idx 1对应的就是驱动里面配置的Res 1这组分辨率(如下图所示)。关于查看走的sensor哪组分辨率配置,我们可以搜索关键字“Matched”,可以搜索到如下信息。原创 2023-04-02 11:26:36 · 675 阅读 · 0 评论