camera2: Reduced Ultra high resolution sensors.
Add documentation stating that it is possible for camera devices not supporting the ULTRA_HIGH_RESOLUTION_SENSOR capability to still switch sensor pixel modes. Also add documentation to the related *MAXIMUM_RESOLUTION tags mentioning they can be present when the ULTRA_HIGH_RESOLUTION_SENSOR capability is not present. They may also be present when SENSOR_PIXEL_MODE is listed in the available capture request keys. Bug: 261232769 Test: build Change-Id: I0c35ad8e435b68cdfc1d70da8a2e5a96c35e10ba Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
This commit is contained in:
@@ -4123,7 +4123,8 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* counterparts.
|
||||
* This key will only be present for devices which advertise the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability.</p>
|
||||
* capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}</p>
|
||||
* <p><b>Units</b>: Pixel coordinates on the image sensor</p>
|
||||
* <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
|
||||
*
|
||||
@@ -4148,7 +4149,8 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.
|
||||
* This key will only be present for devices which advertise the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability.</p>
|
||||
* capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}</p>
|
||||
* <p><b>Units</b>: Pixels</p>
|
||||
* <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
|
||||
*
|
||||
@@ -4172,7 +4174,8 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.
|
||||
* This key will only be present for devices which advertise the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability.</p>
|
||||
* capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}</p>
|
||||
* <p><b>Units</b>: Pixel coordinates on the image sensor</p>
|
||||
* <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
|
||||
*
|
||||
@@ -4192,14 +4195,29 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
||||
* to improve various aspects of imaging such as noise reduction, low light
|
||||
* performance etc. These groups can be of various sizes such as 2X2 (quad bayer),
|
||||
* 3X3 (nona-bayer). This key specifies the length and width of the pixels grouped under
|
||||
* the same color filter.</p>
|
||||
* <p>This key will not be present if REMOSAIC_REPROCESSING is not supported, since RAW images
|
||||
* will have a regular bayer pattern.</p>
|
||||
* <p>This key will not be present for sensors which don't have the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability.</p>
|
||||
* the same color filter.
|
||||
* In case the device has the
|
||||
* {@link CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability :</p>
|
||||
* <ul>
|
||||
* <li>This key will not be present if REMOSAIC_REPROCESSING is not supported, since RAW
|
||||
* images will have a regular bayer pattern.</li>
|
||||
* </ul>
|
||||
* <p>In case the device does not have the
|
||||
* {@link CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability :</p>
|
||||
* <ul>
|
||||
* <li>This key will be present if
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, since RAW
|
||||
* images may not necessarily have a regular bayer pattern when
|
||||
* {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</li>
|
||||
* </ul>
|
||||
* <p><b>Units</b>: Pixels</p>
|
||||
* <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
|
||||
*
|
||||
* @see CaptureRequest#SENSOR_PIXEL_MODE
|
||||
*/
|
||||
@PublicKey
|
||||
@NonNull
|
||||
|
||||
@@ -3645,17 +3645,13 @@ public abstract class CameraMetadata<TKey> {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>This is the default sensor pixel mode. This is the only sensor pixel mode
|
||||
* supported unless a camera device advertises
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }.</p>
|
||||
* <p>This is the default sensor pixel mode.</p>
|
||||
* @see CaptureRequest#SENSOR_PIXEL_MODE
|
||||
*/
|
||||
public static final int SENSOR_PIXEL_MODE_DEFAULT = 0;
|
||||
|
||||
/**
|
||||
* <p>This sensor pixel mode is offered by devices with capability
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }.
|
||||
* In this mode, sensors typically do not bin pixels, as a result can offer larger
|
||||
* <p>In this mode, sensors typically do not bin pixels, as a result can offer larger
|
||||
* image sizes.</p>
|
||||
* @see CaptureRequest#SENSOR_PIXEL_MODE
|
||||
*/
|
||||
|
||||
@@ -1430,7 +1430,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability,
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
@@ -1660,7 +1662,10 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}},
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -1882,7 +1887,10 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}},
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -3169,7 +3177,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}</p>
|
||||
* <p>{@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -3517,13 +3527,10 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_DEFAULT } mode.
|
||||
* When operating in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_DEFAULT } mode, sensors
|
||||
* with {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability would typically perform pixel binning in order to improve low light
|
||||
* would typically perform pixel binning in order to improve low light
|
||||
* performance, noise reduction etc. However, in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* mode (supported only
|
||||
* by {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* sensors), sensors typically operate in unbinned mode allowing for a larger image size.
|
||||
* mode, sensors typically operate in unbinned mode allowing for a larger image size.
|
||||
* The stream configurations supported in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* mode are also different from those of
|
||||
@@ -3537,7 +3544,32 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
* <code>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}</code>
|
||||
* must not be mixed in the same CaptureRequest. In other words, these outputs are
|
||||
* exclusive to each other.
|
||||
* This key does not need to be set for reprocess requests.</p>
|
||||
* This key does not need to be set for reprocess requests.
|
||||
* This key will be be present on devices supporting the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability. It may also be present on devices which do not support the aforementioned
|
||||
* capability. In that case:</p>
|
||||
* <ul>
|
||||
* <li>
|
||||
* <p>The mandatory stream combinations listed in
|
||||
* {@link android.hardware.camera2.CameraCharacteristics.mandatoryMaximumResolutionStreamCombinations }
|
||||
* would not apply.</p>
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>The bayer pattern of {@code RAW} streams when
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* is selected will be the one listed in {@link android.sensor.info.binningFactor }.</p>
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>The following keys will always be present:</p>
|
||||
* <ul>
|
||||
* <li>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION android.scaler.streamConfigurationMapMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.pixelArraySizeMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution}</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* </ul>
|
||||
* <p><b>Possible values:</b></p>
|
||||
* <ul>
|
||||
* <li>{@link #SENSOR_PIXEL_MODE_DEFAULT DEFAULT}</li>
|
||||
@@ -3548,6 +3580,9 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>>
|
||||
*
|
||||
* @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
|
||||
* @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see #SENSOR_PIXEL_MODE_DEFAULT
|
||||
* @see #SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION
|
||||
*/
|
||||
|
||||
@@ -849,7 +849,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability,
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
@@ -1329,7 +1331,10 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}},
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -1962,7 +1967,10 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* mode.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where
|
||||
* {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}},
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -3831,7 +3839,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.</p>
|
||||
* <p>For camera devices with the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability, {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys }
|
||||
* lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}</p>
|
||||
* <p>{@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} /
|
||||
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the
|
||||
* coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.</p>
|
||||
@@ -4442,13 +4452,10 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_DEFAULT } mode.
|
||||
* When operating in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_DEFAULT } mode, sensors
|
||||
* with {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability would typically perform pixel binning in order to improve low light
|
||||
* would typically perform pixel binning in order to improve low light
|
||||
* performance, noise reduction etc. However, in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* mode (supported only
|
||||
* by {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* sensors), sensors typically operate in unbinned mode allowing for a larger image size.
|
||||
* mode, sensors typically operate in unbinned mode allowing for a larger image size.
|
||||
* The stream configurations supported in
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* mode are also different from those of
|
||||
@@ -4462,7 +4469,32 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
* <code>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}</code>
|
||||
* must not be mixed in the same CaptureRequest. In other words, these outputs are
|
||||
* exclusive to each other.
|
||||
* This key does not need to be set for reprocess requests.</p>
|
||||
* This key does not need to be set for reprocess requests.
|
||||
* This key will be be present on devices supporting the
|
||||
* {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR }
|
||||
* capability. It may also be present on devices which do not support the aforementioned
|
||||
* capability. In that case:</p>
|
||||
* <ul>
|
||||
* <li>
|
||||
* <p>The mandatory stream combinations listed in
|
||||
* {@link android.hardware.camera2.CameraCharacteristics.mandatoryMaximumResolutionStreamCombinations }
|
||||
* would not apply.</p>
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>The bayer pattern of {@code RAW} streams when
|
||||
* {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }
|
||||
* is selected will be the one listed in {@link android.sensor.info.binningFactor }.</p>
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>The following keys will always be present:</p>
|
||||
* <ul>
|
||||
* <li>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION android.scaler.streamConfigurationMapMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.pixelArraySizeMaximumResolution}</li>
|
||||
* <li>{@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution}</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* </ul>
|
||||
* <p><b>Possible values:</b></p>
|
||||
* <ul>
|
||||
* <li>{@link #SENSOR_PIXEL_MODE_DEFAULT DEFAULT}</li>
|
||||
@@ -4473,6 +4505,9 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
|
||||
*
|
||||
* @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
|
||||
* @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION
|
||||
* @see #SENSOR_PIXEL_MODE_DEFAULT
|
||||
* @see #SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION
|
||||
*/
|
||||
|
||||
@@ -1612,15 +1612,20 @@ public class CameraMetadataNative implements Parcelable {
|
||||
}
|
||||
|
||||
private StreamConfigurationMap getStreamConfigurationMapMaximumResolution() {
|
||||
if (!isUltraHighResolutionSensor()) {
|
||||
return null;
|
||||
}
|
||||
StreamConfiguration[] configurations = getBase(
|
||||
CameraCharacteristics.SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION);
|
||||
StreamConfigurationDuration[] minFrameDurations = getBase(
|
||||
CameraCharacteristics.SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION);
|
||||
StreamConfigurationDuration[] stallDurations = getBase(
|
||||
CameraCharacteristics.SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION);
|
||||
// If the at least these keys haven't been advertised, there cannot be a meaningful max
|
||||
// resolution StreamConfigurationMap
|
||||
if (configurations == null ||
|
||||
minFrameDurations == null ||
|
||||
stallDurations == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
StreamConfiguration[] depthConfigurations = getBase(
|
||||
CameraCharacteristics.DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION);
|
||||
StreamConfigurationDuration[] depthMinFrameDurations = getBase(
|
||||
|
||||
Reference in New Issue
Block a user