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 Request

getDevice  获取当前 Session 绑定的 Camera Device(logic  camera)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值