【camera】相机camera切换的流程拆解

1 摘要

以下抓取的trace图使用的机器均为红米note9
这里提到的切换主要是前摄<->后摄的切换
总的来说可以分成以下的内容: s是step的缩写。按照逻辑好区分.我们大部分人都会拆解成如下的几个相关阶段。括号是对应阶段所在分块层。

阶段说明
S0(App)从点击事件到调用 flush 的间隔
S1(Hal)flush + disconnect 的总耗时,即关闭前一个摄像头的整个流程
S2(App)disconnect 完成后,到下 open camera 指令的间隔
S3(Hal)open camera 到 onOpened 回调的耗时
S4(App)onOpened回调上来后,间隔多久才开始createSession
S5(Hal)createSession 完成的时间,对应 endConfigure 的耗时
S6(App)createSession 完成后,到下 setRepeatingRequests 的间隔;
S7(Hal)setRepeatingRequests 指令下来后,底层要多久才准备好第一帧上抛
S8(App + Multimedia)第一帧送给 App 后,多久后才真正第一次显示出数据帧

2 拆解

2.1 S0(App)

App管辖
S0:从点击事件到调用 flush 的间隔
搜索ptr:up,找到如下的内容:这是按下切换释放的操作.
按下和释放分别对应:
AppLaunch_dispatchPtr:Down
AppLaunch_dispatchPtr:Up
我们拆解S0的时候关注up的操作.从这个start开始记录.
在这里插入图片描述搜索CameraHal::flush在这里插入图片描述
S0的时间就是AppLaunch_dispatchPtr:Up的开始到CameraHal::flush的开始

2.2 S1(Hal)

Hal 管辖
closeStart->CloseDone的过程.
在这里插入图片描述

2.3 S2(App)

App管辖
disconnect 完成后,到下 open camera 指令的间隔
关键字:connectDevice
在这里插入图片描述

2.4 S3(Hal)

Hal管辖
open camera 到 onOpened 回调的耗时
关键字connectDevices
在这里插入图片描述

2.5 S4(App)

App管辖
onOpened回调上来后,间隔多久才开始createSession
在这里插入图片描述

2.6 S5(Hal)

createSession 完成的时间,对应 endConfigure 的耗时
内容如下:
在这里插入图片描述

2.7 S6(App)

createSession 完成后,到下 setRepeatingRequests 的间隔
在这里插入图片描述

2.8 S7(Hal)

setRepeatingRequests 指令下来后,底层要准备好第一帧上抛
搜索关键字:first full buffer
在这里插入图片描述

2.9 S8(App + Multimedia)

每个手机的绘画机制不一样,有待研究.

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高启强不卖鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值