Camera-CreateCaptureSession

        Camera CaptureSession is a operation to configure the camera device's internal pipelines and allocating memory buffers to sending images to the desired targets. 

        A configured capture session for a cameraDevice is used for capturing images from the camera or reprocessing images captured from the camera in the same session previously and providing a set of target output surfaces for reprocessable capture session, and once created, the session is active until a new session is created by the camera device, or the camera device is closed.

Part One: createCaptureSession by List<Surface>

        camera createCaptureSession by List<Surface> will produce potentially risk to delaying camera startup. For example, if the preview Surface is obtained from SurfaceView, the SurfaceView will only be ready after the UI layout is done, so this opreation will take some time for waiting preview surface to be ready.

        Below is the struct of the createCaptureSession by List<Surface> and releated API.

         

framework/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java

 

Part Two: createCaptureSession by List<OutputConfiguration> 

        To speed up camera startup time, the users can configure the CameraCaptureSession with the eventual preview size via OutputConfiguration and defer the preview output comfiguration until the Surface is ready. After the CameraCaptureSession is created successfully with this deferred output and other normal outputs, the application can start submitting requests as long as the do not include deferred out Surfaces. Once a deferred Surface is ready, the application can add the Surface to the Surface to the deferred output configuration with the addSurface method, and then update the deferred output configuration via this method, before it can submit caoture requests with this output target.

         finalizeOutputConfigurations- This function can also be called in case where multiple surfaces share the same OutputConfiguration, and one of the surfaces becomes available after the CameraCaptureSession is created. In that case, the user must first create the outputConfiguration with the available Surface before creating the CameraCaptureSession. After the CameraCaptureSession is created, and once the extra Surface becomes available, the users must then call add Surface before finalizing the configuration with this method, and attention again, if the provided OutputConfigurations are unchanged from session creation, this function call has no effect. This function must only be called once fir a particular output configuration.

        Below is the structure of the createCaptureSession by List<OutputConfiguration> and releated API.

 

        Attention: Use this method to quickly create cameraCaptureSession may be produce some errors when outputconfiguration that is different from the surface has been changed as different size and formats.

        Below has some error information to check and stay cautiously.

 

Part Three: createCaptureSession by createCaptureSessionByOutputConfigurations

        This method create a new camera capture session by providing the target output set of Surfaces and its correspending surface configuration to the camera device.

        Below is the releated API and function invoke.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值