- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 V4l2和 Android Camera HAL -(3)
map原来放在了这里,通过dequeueV4l2FrameLocked取出的一个buffer被送入V4L2Frame对象的map函数中处理,值得注意的是在dequeueV4l2FrameLocked的最后,实际上是构造了一个V4L2Frame对象来返回,传入了宽、高、格式、buffer index、buffer大小和偏移量,以这些参数构造的V4L2Frame对象会在之后被使用。于是通过mmap的调用我们赋值了一个通用指针addr,它指向了操作系统为我们准备的一块映射区域起始处。
2025-03-18 23:42:20
795
原创 V4l2和 Android Camera HAL -(2)
那么为什么没有在QUERYBUF之后立刻mmap呢,我个人是这样理解的:这里仅对buffer进行了查询和入队操作,还没有采集好的数据进来存放,所以可以暂时不mmap,等真正使用的时候再进行映射,这个过程会在下一篇视频数据采集的flow中详细介绍。,因为我们仍无法操作处于内核空间的buffer,因此需要将他们通过mmap映射到用户空间,这就要求必须知道他们的大小、偏移等信息,这些信息统一被储存到v4l2_buffer结构体中,在mmap调用结束后,依次把这些空的buffer加入采集队列,也就是。
2025-03-18 23:41:16
633
原创 V4l2和 Android Camera HAL -(1)
如果设置失败或与预期帧率有较大偏差,则返回相应的错误码。至此,通过V4L2接口进行数据采集的前期准备就完成了一个阶段,这个阶段也基本对应了camera hal中的configureStream前半阶段,接下来就要进入buffer的管理部分,我们下期再见。酷图中所示VIDIOC_S_PARM的调用主要用来设置帧率到设备中,顺带一提上图所示的VIDIOC_S_CTRL在hal也没有找到对应的调用。1.打开视频设备文件,进程视频采集的参数初始化,通过V4L2接口设置视频图像的采集窗口、采集的点阵大小和格式。
2025-03-18 23:40:03
687
原创 C++中的std::async 和 std::future 在 camera HAL 中的使用
MTK Camera HAL 中的 std::async 和 std::future应用
2022-11-24 17:54:17
339
原创 Android Camera中的aidl与binder (二)- mRemote对象拾遗
android camera aidl binder 学习
2022-08-01 19:15:59
545
原创 source insight 中c++ 返回类型后置定义函数解析失败问题
事情起源于在看mtk camera代码的时候,source insight始终无法正常解析一些函数,例如:可以看到函数名没有加粗,函数体内部变量也是乱七八糟,一旁的符号表更是一塌糊涂:但同时又有一些函数可以被正常parse:这给阅读复杂的源码造成了不小的麻烦于是仔细阅读书写方式,产生了两个疑问:1.会不会是命名空间造成的混乱?2.函数后面的->没见过,是什么作用?带着两个疑问去继续阅读代码,首先尝试解决1号疑问,我做了以下尝试:a....
2022-04-18 17:55:09
2623
转载 AndroidStudio SSL peer shut down incorrectly 问题
AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。这时候我们就需要配置镜像来解决这个问题。(为了提高jar包的下载速度也可以配置)配置的方法就是在根build.gradle中添加镜像仓库,一般我们选择阿里的 http://maven.aliyun.com/nexus/content/groups/public/完整的如下所示(2021.6.22更新)buildscript {
2022-01-06 16:34:37
257
原创 CamX-Chi 高通Android Camera HAL框架学习(二)- configureStreams的调用流程
接上篇,梳理configureStreams的流程,因为具体代码涉及保密,这个系列的文章都不会有详细的解释,不过图也很详细了,欢迎交流探讨。参考:Android Qcom Camera流程分析_上电失败的博客-CSDN博客Android Camera简单整理(二)-Qcom HAL3 Camx架构学习_TaylorPotter的博客-CSDN博客工具使用可以见上篇:QCom CamX-Chi HAL框架学习-openCamera 的调用流程_Evayangelion的博客-CSDN...
2021-11-29 19:33:03
2835
原创 CamX-Chi 高通Android Camera HAL框架学习(一)- openCamera 的调用流程
QCom CamX-Chi HAL框架学习-openCamera 的调用流程
2021-11-19 17:43:31
3106
原创 android camera hal3架构难点分析
还没想好标题起什么,先暂时记录一下看代码的过程中的一些老旧疑难,一起解决掉。1.mtk更新了新的hal,新的架构似乎和google原生的比较像,有点难懂,尝试理解一下。不清楚mtk代码是否需要保密,所以下面还是用google 原生的代码来理解:先来看看熟悉的地方,provider对象的构造:\hardware\interfaces\camera\provider\2.4\default\CameraProvider_2_4.cppusing android::hardware::camer
2021-08-10 19:52:04
688
原创 Android Studio 4.2.1 引用自己编译的framework.jar
想验证一下自己在framework中添加的接口,久违下载了Android Studio打算写个APP试一试,许久没有版本已经来到了4.2.1,以前的iml文件也完全找不到,按照之前的配置方法修改之后还是没法引用到新加的接口,最后发现iml文件已经被放到.idea/modules/app下,于是修改一下原来的iml路径:preBuild { doLast { def imlFile = file("..\\.idea\\modules\\app\\" + project.pare
2021-07-27 16:28:10
956
5
原创 Android P - CameraProvider启动流程梳理
service vendor.camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provider@2.4-service class hal user cameraserver group audio camera input drmrpc ioprio rt 4 capabilities SYS_NICE writepid /dev/cpuset/camera-daemon/tas...
2021-07-22 11:34:59
863
1
原创 YUV444、YUV422、YUV420知识存档
对于一张图片,对其进行yuv采样存放会有几种格式,常见的有YUV444 YUV422 YUV420这些格式的显著的区别就是对每个像素的信息采样方式的不同比如如下的一张图片,每个格子代表一个像素 P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 ..
2021-07-19 11:04:13
3687
原创 Android P - CameraService启动流程梳理
\frameworks\av\camera\cameraserver\main_cameraserver.cpp这里是一切的开始,main_cameraserver.cpp被init进程运行启动int main(int argc __unused, char** argv __unused){ signal(SIGPIPE, SIG_IGN); // Set 3 threads for HIDL calls hardware::configureRpcThr...
2021-06-24 14:12:13
608
原创 Android Camera API2 学习 Framework & HAL
入职半年了,开始几个月一直做一些没什么营养的搬砖工作,浪费精力又学不到东西。前两个月终于有机会接触一下Android Camera整个系统的知识,公司内部也没有什么快速上手培训之类的,只能用网上各位前辈的文章来指路,加上自己添加的几条log来啃源码。不得不说,Camera这个系统真是又大又繁杂,学起来很痛苦。时间紧任务重就用截图来展示了,仅作为自己的记录,能帮到各位最好不过,有错误也烦请指正。从比较完善的Camera API2开始,尝试跟踪一下open的流程。首先应用调用cameraManag.
2021-02-26 11:47:51
659
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人