diff options
| author | Xin Li <delphij@google.com> | 2018-07-22 22:10:23 -0700 |
|---|---|---|
| committer | Xin Li <delphij@google.com> | 2018-07-22 22:10:23 -0700 |
| commit | abfbf7f841fa96cce9bfc626fc2a3d33f7e12c45 (patch) | |
| tree | 52db573cb8e7126b960c83464ba5cebbec4fba00 /core/java/android | |
| parent | f28713990b89e1749bf475d7867649e985842158 (diff) | |
| parent | cc8dc1d688f3f9fc3be061e6cffc6f5e9d261faf (diff) | |
Merge pi-dev-plus-aosp-without-vendor into stage-dr1-aosp-master
Bug: 111615259
Change-Id: If0ef925301b9ed139ad2e09c3bf5b97a97580e6b
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/hardware/camera2/CameraCharacteristics.java | 24 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CameraDevice.java | 20 |
2 files changed, 34 insertions, 10 deletions
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 32c6898e8c00..60e4ce29ab51 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -3136,12 +3136,26 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * the following code snippet can be used:</p> * <pre><code>// Returns true if the device supports the required hardware level, or better. * boolean isHardwareLevelSupported(CameraCharacteristics c, int requiredLevel) { + * final int[] sortedHwLevels = { + * CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, + * CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL, + * CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED, + * CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL, + * CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_3 + * }; * int deviceLevel = c.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); - * if (deviceLevel == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY) { - * return requiredLevel == deviceLevel; + * if (requiredLevel == deviceLevel) { + * return true; * } - * // deviceLevel is not LEGACY, can use numerical sort - * return requiredLevel <= deviceLevel; + * + * for (int sortedlevel : sortedHwLevels) { + * if (sortedlevel == requiredLevel) { + * return true; + * } else if (sortedlevel == deviceLevel) { + * return false; + * } + * } + * return false; // Should never reach here * } * </code></pre> * <p>At a high level, the levels are:</p> @@ -3155,6 +3169,8 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * post-processing settings, and image capture at a high rate.</li> * <li><code>LEVEL_3</code> devices additionally support YUV reprocessing and RAW image capture, along * with additional output stream configurations.</li> + * <li><code>EXTERNAL</code> devices are similar to <code>LIMITED</code> devices with exceptions like some sensor or + * lens information not reorted or less stable framerates.</li> * </ul> * <p>See the individual level enums for full descriptions of the supported capabilities. The * {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} entry describes the device's capabilities at a diff --git a/core/java/android/hardware/camera2/CameraDevice.java b/core/java/android/hardware/camera2/CameraDevice.java index f47d4640c09c..ce88697fa8db 100644 --- a/core/java/android/hardware/camera2/CameraDevice.java +++ b/core/java/android/hardware/camera2/CameraDevice.java @@ -44,19 +44,27 @@ import java.lang.annotation.RetentionPolicy; * {@link android.Manifest.permission#CAMERA Camera} permission in its manifest * in order to access camera devices.</p> * - * <p>A given camera device may provide support at one of two levels: limited or - * full. If a device only supports the limited level, then Camera2 exposes a - * feature set that is roughly equivalent to the older + * <p>A given camera device may provide support at one of several levels defined + * in {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL}. + * If a device supports {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY} level, + * the camera device is running in backward compatibility mode and has minimum camera2 API support. + * If a device supports the {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED} + * level, then Camera2 exposes a feature set that is roughly equivalent to the older * {@link android.hardware.Camera Camera} API, although with a cleaner and more - * efficient interface. Devices that implement the full level of support + * efficient interface. + * If a device supports the {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL EXTERNAL} + * level, then the device is a removable camera that provides similar but slightly less features + * as the {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED} level. + * Devices that implement the {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL} or + * {@link CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL3} level of support * provide substantially improved capabilities over the older camera - * API. Applications that target the limited level devices will run unchanged on - * the full-level devices; if your application requires a full-level device for + * API. If your application requires a full-level device for * proper operation, declare the "android.hardware.camera.level.full" feature in your * manifest.</p> * * @see CameraManager#openCamera * @see android.Manifest.permission#CAMERA + * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL */ public abstract class CameraDevice implements AutoCloseable { |
