Camera2: add max capture stall for reprocess
Bug: 19988710 Change-Id: I05bf3f72fdd54127d9aaa1583e9b0903be94c310
This commit is contained in:
@@ -13226,6 +13226,7 @@ package android.hardware.camera2 {
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_POSE_TRANSLATION;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_RADIAL_DISTORTION;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REPROCESS_MAX_CAPTURE_STALL;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> REQUEST_AVAILABLE_CAPABILITIES;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_INPUT_STREAMS;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_OUTPUT_PROC;
|
||||
|
||||
@@ -13526,6 +13526,7 @@ package android.hardware.camera2 {
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_POSE_TRANSLATION;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_RADIAL_DISTORTION;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REPROCESS_MAX_CAPTURE_STALL;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> REQUEST_AVAILABLE_CAPABILITIES;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_INPUT_STREAMS;
|
||||
field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_OUTPUT_PROC;
|
||||
|
||||
@@ -1692,7 +1692,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
|
||||
/**
|
||||
* <p>This lists the maximum stall duration for each
|
||||
* format/size combination.</p>
|
||||
* output format/size combination.</p>
|
||||
* <p>A stall duration is how much extra time would get added
|
||||
* to the normal minimum frame duration for a repeating request
|
||||
* that has streams with non-zero stall.</p>
|
||||
@@ -2633,6 +2633,41 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
public static final Key<Integer> SYNC_MAX_LATENCY =
|
||||
new Key<Integer>("android.sync.maxLatency", int.class);
|
||||
|
||||
/**
|
||||
* <p>The maximal camera capture pipeline stall (in unit of frame count) introduced by a
|
||||
* reprocess capture request.</p>
|
||||
* <p>The key describes the maximal interference that one reprocess (input) request
|
||||
* can introduce to the camera simultaneous streaming of regular (output) capture
|
||||
* requests, including repeating requests.</p>
|
||||
* <p>When a reprocessing capture request is submitted while a camera output repeating request
|
||||
* (e.g. preview) is being served by the camera device, it may preempt the camera capture
|
||||
* pipeline for at least one frame duration so that the camera device is unable to process
|
||||
* the following capture request in time for the next sensor start of exposure boundary.
|
||||
* When this happens, the application may observe a capture time gap (longer than one frame
|
||||
* duration) between adjacent capture output frames, which usually exhibits as preview
|
||||
* glitch if the repeating request output targets include a preview surface. This key gives
|
||||
* the worst-case number of frame stall introduced by one reprocess request with any kind of
|
||||
* formats/sizes combination.</p>
|
||||
* <p>If this key reports 0, it means a reprocess request doesn't introduce any glitch to the
|
||||
* ongoing camera repeating request outputs, as if this reprocess request is never issued.</p>
|
||||
* <p>This key is supported if the camera device supports OPAQUE or YUV reprocessing (
|
||||
* i.e. {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains OPAQUE_REPROCESSING or
|
||||
* YUV_REPROCESSING).</p>
|
||||
* <p><b>Units</b>: Number of frames.</p>
|
||||
* <p><b>Range of valid values:</b><br>
|
||||
* <= 4</p>
|
||||
* <p><b>Optional</b> - This value may be {@code null} on some devices.</p>
|
||||
* <p><b>Limited capability</b> -
|
||||
* Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
|
||||
* {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
|
||||
*
|
||||
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
@PublicKey
|
||||
public static final Key<Integer> REPROCESS_MAX_CAPTURE_STALL =
|
||||
new Key<Integer>("android.reprocess.maxCaptureStall", int.class);
|
||||
|
||||
/**
|
||||
* <p>The available depth dataspace stream
|
||||
* configurations that this camera device supports
|
||||
@@ -2689,7 +2724,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
|
||||
/**
|
||||
* <p>This lists the maximum stall duration for each
|
||||
* format/size combination for depth streams.</p>
|
||||
* output format/size combination for depth streams.</p>
|
||||
* <p>A stall duration is how much extra time would get added
|
||||
* to the normal minimum frame duration for a repeating request
|
||||
* that has streams with non-zero stall.</p>
|
||||
|
||||
@@ -477,6 +477,7 @@ public abstract class CameraMetadata<TKey> {
|
||||
* <li>The maximum available resolution for OPAQUE streams
|
||||
* (both input/output) will match the maximum available
|
||||
* resolution of JPEG streams.</li>
|
||||
* <li>Static metadata {@link CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL android.reprocess.maxCaptureStall}.</li>
|
||||
* <li>Only below controls are effective for reprocessing requests and
|
||||
* will be present in capture results, other controls in reprocess
|
||||
* requests will be ignored by the camera device.<ul>
|
||||
@@ -489,6 +490,7 @@ public abstract class CameraMetadata<TKey> {
|
||||
*
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
* @see CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL
|
||||
* @see CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
@@ -584,6 +586,7 @@ public abstract class CameraMetadata<TKey> {
|
||||
* <li>The maximum available resolution for YUV_420_888 streams
|
||||
* (both input/output) will match the maximum available
|
||||
* resolution of JPEG streams.</li>
|
||||
* <li>Static metadata {@link CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL android.reprocess.maxCaptureStall}.</li>
|
||||
* <li>Only the below controls are effective for reprocessing requests and will be
|
||||
* present in capture results. The reprocess requests are from the original capture
|
||||
* results that are assocaited with the intermidate YUV_420_888 output buffers.
|
||||
@@ -599,6 +602,7 @@ public abstract class CameraMetadata<TKey> {
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
* @see CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
|
||||
* @see CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL
|
||||
* @see CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
|
||||
@@ -1275,8 +1275,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* <p>This control (except for MANUAL) is only effective if
|
||||
* <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} != OFF</code> and any 3A routine is active.</p>
|
||||
* <p>ZERO_SHUTTER_LAG will be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
|
||||
* contains OPAQUE_REPROCESSING. MANUAL will be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
|
||||
* contains MANUAL_SENSOR. Other intent values are always supported.</p>
|
||||
* contains OPAQUE_REPROCESSING or YUV_REPROCESSING. MANUAL will be supported if
|
||||
* {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains MANUAL_SENSOR. Other intent values are
|
||||
* always supported.</p>
|
||||
* <p><b>Possible values:</b>
|
||||
* <ul>
|
||||
* <li>{@link #CONTROL_CAPTURE_INTENT_CUSTOM CUSTOM}</li>
|
||||
@@ -2647,8 +2648,12 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* <p><b>Range of valid values:</b><br>
|
||||
* >= 1.0</p>
|
||||
* <p><b>Optional</b> - This value may be {@code null} on some devices.</p>
|
||||
* <p><b>Limited capability</b> -
|
||||
* Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
|
||||
* {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
|
||||
*
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
|
||||
@@ -1698,8 +1698,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* <p>This control (except for MANUAL) is only effective if
|
||||
* <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} != OFF</code> and any 3A routine is active.</p>
|
||||
* <p>ZERO_SHUTTER_LAG will be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
|
||||
* contains OPAQUE_REPROCESSING. MANUAL will be supported if {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
|
||||
* contains MANUAL_SENSOR. Other intent values are always supported.</p>
|
||||
* contains OPAQUE_REPROCESSING or YUV_REPROCESSING. MANUAL will be supported if
|
||||
* {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains MANUAL_SENSOR. Other intent values are
|
||||
* always supported.</p>
|
||||
* <p><b>Possible values:</b>
|
||||
* <ul>
|
||||
* <li>{@link #CONTROL_CAPTURE_INTENT_CUSTOM CUSTOM}</li>
|
||||
@@ -3966,8 +3967,12 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* <p><b>Range of valid values:</b><br>
|
||||
* >= 1.0</p>
|
||||
* <p><b>Optional</b> - This value may be {@code null} on some devices.</p>
|
||||
* <p><b>Limited capability</b> -
|
||||
* Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
|
||||
* {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
|
||||
*
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
* @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user