Share via


CameraConstrainedHighSpeedCaptureSession.CreateHighSpeedRequestList Method

Definition

Create a unmodifiable list of requests that is suitable for constrained high speed capture session streaming.

[Android.Runtime.Register("createHighSpeedRequestList", "(Landroid/hardware/camera2/CaptureRequest;)Ljava/util/List;", "GetCreateHighSpeedRequestList_Landroid_hardware_camera2_CaptureRequest_Handler", ApiSince=23)]
public abstract System.Collections.Generic.IList<Android.Hardware.Camera2.CaptureRequest> CreateHighSpeedRequestList (Android.Hardware.Camera2.CaptureRequest request);
[<Android.Runtime.Register("createHighSpeedRequestList", "(Landroid/hardware/camera2/CaptureRequest;)Ljava/util/List;", "GetCreateHighSpeedRequestList_Landroid_hardware_camera2_CaptureRequest_Handler", ApiSince=23)>]
abstract member CreateHighSpeedRequestList : Android.Hardware.Camera2.CaptureRequest -> System.Collections.Generic.IList<Android.Hardware.Camera2.CaptureRequest>

Parameters

request
CaptureRequest

The high speed capture request that will be used to generate the high speed request list.

Returns

A unmodifiable CaptureRequest list that is suitable for constrained high speed capture.

Attributes

Remarks

Create a unmodifiable list of requests that is suitable for constrained high speed capture session streaming.

High speed video streaming creates significant performance pressure on the camera device, so to achieve efficient high speed streaming, the camera device may have to aggregate multiple frames together. This means requests must be sent in batched groups, with all requests sharing the same settings. This method takes the list of output target Surfaces (subject to the output Surface requirements specified by the constrained high speed session) and a CaptureRequest request, and generates a request list that has the same controls for each request. The input CaptureRequest request must contain the target output Surfaces and target high speed FPS range that is one of the StreamConfigurationMap#getHighSpeedVideoFpsRangesFor for the Surface size.

If both preview and recording Surfaces are specified in the request, the CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE target FPS range in the input CaptureRequest request must be a fixed frame rate FPS range, where the android.util.Range#getLower minimal FPS == android.util.Range#getUpper() maximum FPS. The created request list will contain a interleaved request pattern such that the preview output FPS is at least 30fps, the recording output FPS is android.util.Range#getUpper() maximum FPS of the requested FPS range. The application can submit this request list directly to an active high speed capture session to achieve high speed video recording. When only preview or recording Surface is specified, this method will return a list of request that have the same controls and output targets for all requests.

Submitting a request list created by this method to a normal capture session will result in an IllegalArgumentException if the high speed CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS range is not supported by CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES.

Java documentation for android.hardware.camera2.CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(android.hardware.camera2.CaptureRequest).

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to