CameraCaptureSession

网友投稿 1382 2022-10-16

CameraCaptureSession

CameraCaptureSession

1 CameraCaptureSession 是一个事务,用来向相机设备发送获取图像的请求,同时reprocess 图像(是不是hal已经处理了一次图像,然后在上层进行处理 or 命令hal进行其他处理操作)。 2 CameraCaptureSession 创建需要几百毫秒, hal 此时会进行 A pipeline 的创建 B 申请 buffer(这两项都是hal进行的) 3 当新的 CameraCaptureSession 被创建,那么旧的 CameraCaptureSession,会关掉,它的onclose 方法会关掉。 4 CameraCaptureSession 有几种状 态, onConfigured 当前的 CameraCaptureSession 已被创建成功,而且 Session 已经传递上去。 这个时候,我们可以通过 CameraCaptureSession 向底层发送 CaptureRequset,如果 CaptureRequset 正在等待被处理,那么 onActive 将会被调用,否则的话,onReady会被调用

onConfiguredFailed : CameraCaptureSession 创建失败,可能是 Surface size 不支持,或者 Surface 数量不支持。 这时候要重新审视 CameraCaptureSession 的参数。那我们也可以知道。CameraCaptureSession 也会对 Surface size 跟 Surface 的数量进行设置。

onSurfacePrepared : 某一个 Surface 预分配的 BUffer 完成后,会调用

onReady 当 session没有 requset 处理时 调用

onActive 当 session开始 requset 处理时 调用

onClosed 表示 该 session 已经关闭了。

onCaptureQueueEmpty

5 个人感觉 不管是 拍照还是录像,都一般经过这几步 (onActive-》 onSurfacePrepared 前后关系 (前后关系也不是一定的)) onConfigured -》onReady -》 onActive-》 onSurfacePrepared

6 当 拍照 跟 录像之间进行切换的时候,CameraCaptureSession 会关闭,然后重新,生成,我感觉是 session 的type 不一样。

7 状态 onActive 会切换到 onReady 或者 onCaptureQueueEmpty(一般拍照,会这么显示,表示已经拍完照,它更像是一种通知)。

8 什么是慢动作录像(SlowMotionRecord)? 通常我们人眼能够接受的最好的视频帧速率是24帧/每秒左右。那如果我们用120帧/秒拍摄一个动作,再用24帧每秒来播放的话,视频就放慢了5倍,这个就是慢动作录像了。

慢动作录像,又叫高帧率录像(HFR),也就是以高fps(运行速率)捕获、编码并保存为30 fps(目标速率),这种情况运行速率大于目标速率。

(还有一种模式叫做高速录制(HSR) : 即以高fps(运行速率)捕获、编码并保存为高 fps(目标速率),运行速率等于目标速率。)

9 CameraCaptureSession 的api,实现。 拍照: capture, 向 camera 底层发送一个 CaptureRequest,优先级比 Repeating CaptureRequest 要高 连拍: captureBurst 向camera 底层发送一组 CaptureRequest,优先级比 Repeating CaptureRequest 要高。这一组CaptureRequest,不能被其他的 CaptureRequest,插入进来。 这正是 连续调用 Capture 方法的区别。

录像:setRepeatingRequest 向camera 底层发送一个 CaptureRequest,底层会不停的发送这个 CaptureRequest。 slowmotion : setRepeatingRequestBurst : 向camera 底层发送一组 CaptureRequest,底层会不停的发送这个 CaptureRequest。 终止请求: abortCaptures 以最快的速度结束当前的 Request ,in-flight captures (属于hal)可能成功也可能失败,input capture Request Queue (属于framework)清空。 stopRepeating input capture Request Queue (属于framework)清空isReprocessable 判断当前的 session 能否处理 Reprocessable Capture RequestgetDevice 获取当前 Session 绑定的 Camera Device(logic camera)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序成为多社交平台引流利器,小程序多端引流怎么做
下一篇:ffmpeg 命令学习
相关文章

 发表评论

暂时没有评论,来抢沙发吧~