diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 9a719ca9ab9804180c7bfd0e3e7a9ce4c96d87c0..dac55ae084489d4e9c81527669ec26ac0d7243a6 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -2356,10 +2356,11 @@ public final class CameraCharacteristics extends CameraMetadataA subset of the available request keys that can be overridden for * physical devices backing a logical multi-camera.

*

This is a subset of android.request.availableRequestKeys which contains a list - * of keys that can be overridden using {@link CaptureRequest.Builder#setPhysicalCameraKey }. + * of keys that can be overridden using + * {@link android.hardware.camera2.CaptureRequest.Builder#setPhysicalCameraKey }. * The respective value of such request key can be obtained by calling - * {@link CaptureRequest.Builder#getPhysicalCameraKey }. Capture requests that contain - * individual physical device requests must be built via + * {@link android.hardware.camera2.CaptureRequest.Builder#getPhysicalCameraKey }. + * Capture requests that contain individual physical device requests must be built via * {@link android.hardware.camera2.CameraDevice#createCaptureRequest(int, Set)}.

*

Optional - The value for this key may be {@code null} on some devices.

*

Limited capability - @@ -2759,7 +2760,7 @@ public final class CameraCharacteristics extends CameraMetadata *

For applications targeting SDK version 31 or newer, if the mobile device declares to be * media performance class 12 or higher by setting - * {@link android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger, + * {@link android.os.Build.VERSION#MEDIA_PERFORMANCE_CLASS } to be 31 or larger, * the primary camera devices (first rear/front camera in the camera ID list) will not * support JPEG sizes smaller than 1080p. If the application configures a JPEG stream * smaller than 1080p, the camera device will round up the JPEG image size to at least @@ -2833,7 +2834,7 @@ public final class CameraCharacteristics extends CameraMetadata *

For applications targeting SDK version 31 or newer, if the mobile device doesn't declare * to be media performance class 12 or better by setting - * {@link android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger, + * {@link android.os.Build.VERSION#MEDIA_PERFORMANCE_CLASS } to be 31 or larger, * or if the camera device isn't a primary rear/front camera, the minimum required output * stream configurations are the same as for applications targeting SDK version older than * 31.

@@ -2958,9 +2959,27 @@ public final class CameraCharacteristics extends CameraMetadata *

Please reference the documentation for the image data destination to * check if it limits the maximum size for image data.

- *

The following table describes the minimum required output stream - * configurations based on the hardware level - * ({@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel}):

+ *

For applications targeting SDK version older than 31, the following table + * describes the minimum required output stream configurations based on the + * hardware level ({@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel}): + * Format | Size | Hardware Level | Notes + * :-------------------------------------------------:|:--------------------------------------------:|:--------------:|:--------------: + * {@link android.graphics.ImageFormat#JPEG } | {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} (*1) | Any | + * {@link android.graphics.ImageFormat#JPEG } | 1920x1080 (1080p) | Any | if 1080p <= activeArraySize + * {@link android.graphics.ImageFormat#JPEG } | 1280x720 (720p) | Any | if 720p <= activeArraySize + * {@link android.graphics.ImageFormat#JPEG } | 640x480 (480p) | Any | if 480p <= activeArraySize + * {@link android.graphics.ImageFormat#JPEG } | 320x240 (240p) | Any | if 240p <= activeArraySize + * {@link android.graphics.ImageFormat#YUV_420_888 } | all output sizes available for JPEG | FULL | + * {@link android.graphics.ImageFormat#YUV_420_888 } | all output sizes available for JPEG, up to the maximum video size | LIMITED | + * {@link android.graphics.ImageFormat#PRIVATE } | same as YUV_420_888 | Any |

+ *

For applications targeting SDK version 31 or newer, if the mobile device declares to be + * media performance class 12 or higher by setting + * {@link android.os.Build.VERSION#MEDIA_PERFORMANCE_CLASS } to be 31 or larger, + * the primary camera devices (first rear/front camera in the camera ID list) will not + * support JPEG sizes smaller than 1080p. If the application configures a JPEG stream + * smaller than 1080p, the camera device will round up the JPEG image size to at least + * 1080p. The requirements for IMPLEMENTATION_DEFINED and YUV_420_888 stay the same. + * This new minimum required output stream configurations are illustrated by the table below:

* * * @@ -2984,32 +3003,38 @@ public final class CameraCharacteristics extends CameraMetadataif 1080p <= activeArraySize * * - * - * - * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * * * * - * + * * - * + * * * * - * - * - * - * - * - * * - * + * * - * + * * * * - * + * * * * @@ -3021,6 +3046,12 @@ public final class CameraCharacteristics extends CameraMetadata * *
{@link android.graphics.ImageFormat#JPEG }1280x720 (720p)Any{@link android.graphics.ImageFormat#YUV_420_888 }{@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}FULL
{@link android.graphics.ImageFormat#YUV_420_888 }1920x1080 (1080p)FULLif 1080p <= activeArraySize
{@link android.graphics.ImageFormat#YUV_420_888 }1280x720 (720)FULLif 720p <= activeArraySize
{@link android.graphics.ImageFormat#JPEG }{@link android.graphics.ImageFormat#YUV_420_888 }640x480 (480p)AnyFULLif 480p <= activeArraySize
{@link android.graphics.ImageFormat#JPEG }320x240 (240p)Anyif 240p <= activeArraySize
{@link android.graphics.ImageFormat#YUV_420_888 }all output sizes available for JPEG320x240 (240p)FULLif 240p <= activeArraySize
{@link android.graphics.ImageFormat#YUV_420_888 }all output sizes available for JPEG, up to the maximum video sizeall output sizes available for FULL hardware level, up to the maximum video sizeLIMITED
+ *

For applications targeting SDK version 31 or newer, if the mobile device doesn't declare + * to be media performance class 12 or better by setting + * {@link android.os.Build.VERSION#MEDIA_PERFORMANCE_CLASS } to be 31 or larger, + * or if the camera device isn't a primary rear/front camera, the minimum required output + * stream configurations are the same as for applications targeting SDK version older than + * 31.

*

Refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} and {@link android.hardware.camera2.CameraDevice#createCaptureSession } for additional mandatory * stream configurations on a per-capability basis.

*

*1: For JPEG format, the sizes may be restricted by below conditions: