Merge "Camera2: Add BURST_CAPTURE capability flag" into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bad677f3c2
@@ -12821,6 +12821,7 @@ package android.hardware.camera2 {
|
||||
field public static final int NOISE_REDUCTION_MODE_HIGH_QUALITY = 2; // 0x2
|
||||
field public static final int NOISE_REDUCTION_MODE_OFF = 0; // 0x0
|
||||
field public static final int REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE = 0; // 0x0
|
||||
field public static final int REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE = 6; // 0x6
|
||||
field public static final int REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING = 2; // 0x2
|
||||
field public static final int REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR = 1; // 0x1
|
||||
field public static final int REQUEST_AVAILABLE_CAPABILITIES_RAW = 3; // 0x3
|
||||
|
||||
@@ -1156,6 +1156,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* <li>{@link #REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING MANUAL_POST_PROCESSING}</li>
|
||||
* <li>{@link #REQUEST_AVAILABLE_CAPABILITIES_RAW RAW}</li>
|
||||
* <li>{@link #REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS READ_SENSOR_SETTINGS}</li>
|
||||
* <li>{@link #REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE}</li>
|
||||
* </ul></p>
|
||||
* <p>This key is available on all devices.</p>
|
||||
*
|
||||
@@ -1165,6 +1166,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* @see #REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING
|
||||
* @see #REQUEST_AVAILABLE_CAPABILITIES_RAW
|
||||
* @see #REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS
|
||||
* @see #REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE
|
||||
*/
|
||||
@PublicKey
|
||||
public static final Key<int[]> REQUEST_AVAILABLE_CAPABILITIES =
|
||||
@@ -2285,12 +2287,16 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* <p>Camera devices will come in three flavors: LEGACY, LIMITED and FULL.</p>
|
||||
* <p>A FULL device will support below capabilities:</p>
|
||||
* <ul>
|
||||
* <li>30fps at maximum resolution (== sensor resolution) is preferred, more than 20fps is required.</li>
|
||||
* <li>30fps operation at maximum resolution (== sensor resolution) is preferred, more than
|
||||
* 20fps is required, for at least uncompressed YUV
|
||||
* output. ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains BURST_CAPTURE)</li>
|
||||
* <li>Per frame control ({@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} <code>==</code> PER_FRAME_CONTROL)</li>
|
||||
* <li>Manual sensor control ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains MANUAL_SENSOR)</li>
|
||||
* <li>Manual post-processing control ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains MANUAL_POST_PROCESSING)</li>
|
||||
* <li>Manual post-processing control ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains
|
||||
* MANUAL_POST_PROCESSING)</li>
|
||||
* <li>Arbitrary cropping region ({@link CameraCharacteristics#SCALER_CROPPING_TYPE android.scaler.croppingType} <code>==</code> FREEFORM)</li>
|
||||
* <li>At least 3 processed (but not stalling) format output streams ({@link CameraCharacteristics#REQUEST_MAX_NUM_OUTPUT_PROC android.request.maxNumOutputProc} <code>>=</code> 3)</li>
|
||||
* <li>At least 3 processed (but not stalling) format output streams
|
||||
* ({@link CameraCharacteristics#REQUEST_MAX_NUM_OUTPUT_PROC android.request.maxNumOutputProc} <code>>=</code> 3)</li>
|
||||
* <li>The required stream configuration defined in android.scaler.availableStreamConfigurations</li>
|
||||
* <li>The required exposure time range defined in {@link CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE android.sensor.info.exposureTimeRange}</li>
|
||||
* <li>The required maxFrameDuration defined in {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration}</li>
|
||||
|
||||
@@ -334,6 +334,24 @@ public abstract class CameraDevice implements AutoCloseable {
|
||||
* </table><br>
|
||||
* </p>
|
||||
*
|
||||
* <p>BURST-capability ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES} includes
|
||||
* {@link CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE}) devices
|
||||
* support at least the below stream combinations in addition to those for
|
||||
* {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED} devices. Note that all
|
||||
* FULL-level devices support the BURST capability, and the below list is a strict subset of the
|
||||
* list for FULL-level devices, so this table is only relevant for LIMITED-level devices that
|
||||
* support the BURST_CAPTURE capability.
|
||||
*
|
||||
* <table>
|
||||
* <tr><th colspan="5">BURST-capability additional guaranteed configurations</th></tr>
|
||||
* <tr><th colspan="2" id="rb">Target 1</th><th colspan="2" id="rb">Target 2</th><th rowspan="2">Sample use case(s)</th> </tr>
|
||||
* <tr><th>Type</th><th id="rb">Max size</th><th>Type</th><th id="rb">Max size</th> </tr>
|
||||
* <tr> <td>{@code PRIV}</td><td id="rb">{@code PREVIEW}</td> <td>{@code PRIV}</td><td id="rb">{@code MAXIMUM}</td> <td>Maximum-resolution GPU processing with preview.</td> </tr>
|
||||
* <tr> <td>{@code PRIV}</td><td id="rb">{@code PREVIEW}</td> <td>{@code YUV }</td><td id="rb">{@code MAXIMUM}</td> <td>Maximum-resolution in-app processing with preview.</td> </tr>
|
||||
* <tr> <td>{@code YUV }</td><td id="rb">{@code PREVIEW}</td> <td>{@code YUV }</td><td id="rb">{@code MAXIMUM}</td> <td>Maximum-resolution two-input in-app processsing.</td> </tr>
|
||||
* </table><br>
|
||||
* </p>
|
||||
*
|
||||
* <p>Since the capabilities of camera devices vary greatly, a given camera device may support
|
||||
* target combinations with sizes outside of these guarantees, but this can only be tested for
|
||||
* by attempting to create a session with such targets.</p>
|
||||
|
||||
@@ -482,6 +482,26 @@ public abstract class CameraMetadata<TKey> {
|
||||
*/
|
||||
public static final int REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS = 5;
|
||||
|
||||
/**
|
||||
* <p>The camera device supports capturing maximum-resolution
|
||||
* images at >= 20 frames per second, in at least the
|
||||
* uncompressed YUV format, when post-processing settings
|
||||
* are set to FAST.</p>
|
||||
* <p>More specifically, this means that a size matching the
|
||||
* camera device's active array size is listed as a
|
||||
* supported size for the YUV_420_888 format in
|
||||
* {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}, and the
|
||||
* minimum frame duration for that format and size is <=
|
||||
* 1/20 s.</p>
|
||||
* <p>In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is
|
||||
* guaranted to have a value between 0 and 4, inclusive.</p>
|
||||
*
|
||||
* @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
|
||||
* @see CameraCharacteristics#SYNC_MAX_LATENCY
|
||||
* @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
|
||||
*/
|
||||
public static final int REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE = 6;
|
||||
|
||||
//
|
||||
// Enumeration values for CameraCharacteristics#SCALER_CROPPING_TYPE
|
||||
//
|
||||
@@ -1259,8 +1279,7 @@ public abstract class CameraMetadata<TKey> {
|
||||
* image while recording video) use case.</p>
|
||||
* <p>The camera device should take the highest-quality image
|
||||
* possible (given the other settings) without disrupting the
|
||||
* frame rate of video recording.<br />
|
||||
* </p>
|
||||
* frame rate of video recording. </p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT = 4;
|
||||
|
||||
Reference in New Issue
Block a user