Merge "Camera: hardware level related doc update" into pi-dev

am: 3d3c6531e1

Change-Id: I0134219335f73ef0c9ff3d90f04127cf36e41ad9
This commit is contained in:
Yin-Chia Yeh
2018-07-19 09:25:58 -07:00
committed by android-build-merger
2 changed files with 34 additions and 10 deletions

View File

@@ -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 &lt;= 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

View File

@@ -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 {