老师你们好,session和request是怎么理解的啊?视频里面直接就讲session创建和request流程,能帮忙先讲一下是干什么的不?现在还是一头雾水撇嘴,还有一帧和一个request是什么关系?
把使用Camera想象成与Camera同学进行一次对话,你发请求(CaptureRequest),Camera同学响应(CaptureResult)
- 对话前,要先创建对话环境(Session),你需要告诉Camera同学本次对话(Session)会包含哪些主题列表【A】(只要主题发生变化就需要重新创建对话环境,这里的主题包括:多少路stream,每路stream的分辨率和format,session parameter)
- 对话中,你发送想问的主题列表【B】(这里【B】只能是【A】的子集)【B】和其他参数打包在一起,叫CaptureRequest
- Camera同学收到你发送的请求CaptureRequest后,会思考如何来完成你的请求,他可能需要准备多帧数据来满足你的处理请求
- Camera同学处理完后将结果放在CaptureResult里面返回给你
通常情况,一个request对应camera sensor输出的一帧数据。
也有例外,比如这个request想拍HDR,此时需要camera sensor出多帧(比如3帧)数据,然后将这3帧数据通过HDR算法合并成一帧数据。
Camera sensor输出一帧,ISP可以一进多出满足多路stream的需求(比如预览stream+录像stream),一个request里面可以带多路stream请求下来
2 个赞