Android Camera FW 里的requestId和frameId

安卓相机frameworks里面经常出现requestId和frameId,最近简单看了一下代码,发现相关流程还是很复杂的,总结来看requestId 就是上层(java)发送的repeating(capture)请求的id,是从0开始递增的。

这是CameraDeviceImpl.java里面下发请求的代码,调用到cameraserver里的submitRequestList

到CameraDeviceClient.cpp里面,mRequestIdCounter是随着应用层下发request递增的

省略部分代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

虽然这里的requestId会通过ANDROID_REQUEST_ID这个TAG设置到Hal层,但是其实HAL并不太需要真个id,此时还看不出这个requestId有啥作用,接下来看result返回的时候怎么使用的。

capture result 返回最终会到这里的insertResultLocked,mResultExtras.requestId会设置给result metadata传到应用层

再回到CameraDeviceImpl,就是通过requestId到 mCaptureCallbackMap里面去找对应的回调接口回调给上层

所以综上看 requestId就是一个标记上层下发request的作用,回调metadta的时候方便找到对应的回调接口,所以requestId的作用仅仅是联系APP和FW的,对于HAL来说没有作用。

frameId是每帧都加一的。

到CameramanOutputUtils.cpp里面看到requestId就是在InFlightMap里面存着,而InFlightMap就是记录request信息的,通过frameNumber找到对应的request

这里的frameNumber就是Camera3Device.cpp里面threadLoop不断递增的frameId,每下发一次request就不断地递增的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/126735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Godot 官方2D游戏笔记(1):导入动画资源和添加节点

前言 Godot 官方给了我们2D游戏和3D游戏的案例,不过如果是独立开发者只用考虑2D游戏就可以了,因为2D游戏纯粹,我们只需要关注游戏的玩法即可。2D游戏的美术素材简单,交互逻辑简单,我们可以把更多的时间放在游戏的玩法…

Transformer学习

这里写目录标题 Seq2Seq语音翻译为何不直接用语音辨识机器翻译?语法分析文章归类问题目标检测 TransformerEncoder结构multi-head attention block为何batch-norm 不如 layer-norm? Decoder结构decoder流程decoder结构decoder比encoder多了一个masked se…

数据结构--排序(2)

前言 排序(1)链接入口 快速排序 链接入口 归并排序 思想:将数组利用递归形式一直对半平分,将一组完整的数组分成若干份, 接着将它们相邻两个分为一组,进行排序,排序之后组合成一组&#xff0…

格雷希尔针对汽车空调高压管异型管口快速密封的G72R高压连接器

汽车散热是汽车热管理的重要部件,不管是燃油车还是新能源车,散热都是必不可少的零部件,从散热水箱、到车用空调冷凝器、蒸发器、空调高压管件等,由于位置和固定方式等影响,虽然管件直径比较标准,但接口部分…

基于Springboot实现旧物置换网站平台演示【项目源码+论文说明】分享

基于Springboot实现旧物置换网站平台演示 摘要 随着时代在一步一步在进步,旧物也成人们的烦恼,许多平台网站都在推广自已的产品像天猫、咸鱼、京东。所以开发出一套关于旧物置换网站成为必需。旧物置换网站主要是借助计算机,通过对用户进行管…

电压放大器在心电图中的作用是什么

心电图是一种常用的临床检测方法,用于评估心脏的电活动。在进行心电图检测时,为了保证测量结果的准确性和可靠性,需要使用一种特殊的电压放大器,即心电放大器,来增强心电信号并抑制噪音和干扰。 心电图信号具有微弱的幅…

python scanpy spatial空转全流程

Spatial mapping of cell types across the mouse brain (1/3) - estimating reference expression signatures of cell types — cell2location documentation Spatial mapping of cell types across the mouse brain (2/3) - cell2location — cell2location documentation #…

elementui修改message消息提示颜色

/* el弹出框样式 */ .el-message {top: 80px !important;border: 0; }.el-message * {color: var(--white) !important;font-weight: 600; }.el-message--success {background: var(--themeBackground); }.el-message--warning {background: var(--gradientBG); }.el-message--…

R实现数据分布特征的视觉化——多笔数据之间的比较

大家好,我是带我去滑雪! 如果要对两笔数据或者多笔数据的分布情况进行比较,Q-Q图、柱状图、星形图都是非常好的选择,下面开始实战。 (1)绘制Q-Q图 首先导入数据bankwage.csv文件,该数据集…

SAP从入门到放弃系列之QM样本确定

目录 一、样本确定概述-Sample Determination1.1、样本确定的规则1.2、规则维护方式1.2.1、物料主数据的维度1.2.2、任务清单的维度1.2.2.1、采样过程-Sampling Procedure 二、采样过程维护2.1 采样过程-Sampling Procedures概述样本类型评估模式检验点 一、样本确定概述-Sampl…

基于SSM的旅游网站设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

怎么将Linux上的文件上传到github上

文章目录 1. 先在window浏览器中创建一个存储项目的仓库2. 复制你的ssh下的地址1) 生成ssh密钥 : 在Linux虚拟机的终端中,运行以下命令生成ssh密钥2)将ssh密钥添加到github账号 : 运行以下命令来获取公钥内容: 3. 克隆GitHub存储库:在Linux虚拟机的终端中&#xff0…