OSDN Git Service

Merge "camera: Update logical multi-camera requirement"
[android-x86/system-media.git] / camera / docs / metadata_definitions.xml
index b0cc46f..1130411 100644 (file)
@@ -2897,7 +2897,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
       <dynamic>
         <clone entry="android.control.enableZsl" kind="controls">
         </clone>
-        <entry name="afSceneChange" type="int32" visibility="public" enum="true" hal_version="3.3">
+        <entry name="afSceneChange" type="byte" visibility="public" enum="true" hal_version="3.3">
           <enum>
             <value>NOT_DETECTED
             <notes>Scene change is not detected within the AF region(s).</notes></value>
@@ -2912,9 +2912,6 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
           result. Otherwise the value will be NOT_DETECTED. The threshold for detection is similar
           to what would trigger a new passive focus scan to begin in CONTINUOUS autofocus modes.
 
-          afSceneChange may be DETECTED only if afMode is AF_MODE_CONTINUOUS_VIDEO or
-          AF_MODE_CONTINUOUS_PICTURE. In other AF modes, afSceneChange must be NOT_DETECTED.
-
           This key will be available if the camera device advertises this key via {@link
           android.hardware.camera2.CameraCharacteristics#getAvailableCaptureResultKeys|ACAMERA_REQUEST_AVAILABLE_RESULT_KEYS}.
           </details>
@@ -4116,14 +4113,12 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
             <notes>The value of android.lens.poseTranslation is relative to the optical center of
             the largest camera device facing the same direction as this camera.
 
-            This default value for API levels before Android P.
+            This is the default value for API levels before Android P.
             </notes>
             </value>
             <value>GYROSCOPE
             <notes>The value of android.lens.poseTranslation is relative to the position of the
             primary gyroscope of this Android device.
-
-            This is the value reported by all devices that support the MOTION_TRACKING capability.
             </notes>
             </value>
           </enum>
@@ -4133,10 +4128,6 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
           <details>
             Different calibration methods and use cases can produce better or worse results
             depending on the selected coordinate origin.
-
-            For devices designed to support the MOTION_TRACKING capability, the GYROSCOPE origin
-            makes device calibration and later usage by applications combining camera and gyroscope
-            information together simpler.
           </details>
         </entry>
       </static>
@@ -5106,38 +5097,11 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
             </value>
             <value optional="true" hal_version="3.3" >MOTION_TRACKING
               <notes>
-              The device supports controls and metadata required for accurate motion tracking for
-              use cases such as augmented reality, electronic image stabilization, and so on.
-
-              This means this camera device has accurate optical calibration and timestamps relative
-              to the inertial sensors.
-
-              This capability requires the camera device to support the following:
+              The camera device supports the MOTION_TRACKING value for
+              android.control.captureIntent, which limits maximum exposure time to 20 ms.
 
-              * Capture request templates {@link
-                android.hardware.camera2.CameraDevice#TEMPLATE_MOTION_TRACKING_PREVIEW} and {@link
-                android.hardware.camera2.CameraDevice#TEMPLATE_MOTION_TRACKING_BEST} are defined.
-              * The stream configurations listed in {@link
-                android.hardware.camera2.CameraDevice#createCaptureSession} for MOTION_TRACKING are
-                supported, either at 30 or 60fps maximum frame rate.
-              * The following camera characteristics and capture result metadata are provided:
-                  - android.lens.intrinsicCalibration
-                  - android.lens.radialDistortion
-                  - android.lens.poseRotation
-                  - android.lens.poseTranslation
-                  - android.lens.poseReference with value GYROSCOPE
-              * The android.sensor.info.timestampSource field has value `REALTIME`. When compared to
-                timestamps from the device's gyroscopes, the clock difference for events occuring at
-                the same actual time instant will be less than 1 ms.
-              * The value of the android.sensor.rollingShutterSkew field is accurate to within 1 ms.
-              * The value of android.sensor.exposureTime is guaranteed to be available in the
-                capture result.
-              * The android.control.captureIntent control supports MOTION_TRACKING to limit maximum
-                exposure to 20 milliseconds.
-              * The stream configurations required for MOTION_TRACKING (listed at {@link
-                android.hardware.camera2.CameraDevice#createCaptureSession}) can operate at least at
-                30fps; optionally, they can operate at 60fps, and '[60, 60]' is listed in
-                android.control.aeAvailableTargetFpsRanges.
+              This limits the motion blur of capture images, resulting in better image tracking
+              results for use cases such as image stabilization or augmented reality.
               </notes>
             </value>
             <value optional="true" hal_version="3.3">LOGICAL_MULTI_CAMERA
@@ -5158,6 +5122,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
                   - android.lens.poseTranslation
                   - android.lens.intrinsicCalibration
                   - android.lens.radialDistortion
+              * The SENSOR_INFO_TIMESTAMP_SOURCE of the logical device and physical devices must be
+                the same.
               * The logical camera device must be LIMITED or higher device.
 
               Both the logical camera device and its underlying physical devices support the
@@ -5165,13 +5131,16 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
 
               Additionally, for each guaranteed stream combination, the logical camera supports:
 
-              * Replacing one logical {@link android.graphics.ImageFormat#YUV_420_888|AIMAGE_FORMAT_YUV_420_888 YUV_420_888}
+              * For each guaranteed stream combination, the logical camera supports replacing one
+                logical {@link android.graphics.ImageFormat#YUV_420_888|AIMAGE_FORMAT_YUV_420_888 YUV_420_888}
                 or raw stream with two physical streams of the same size and format, each from a
                 separate physical camera, given that the size and format are supported by both
                 physical cameras.
-              * Adding two raw streams, each from one physical camera, if the logical camera doesn't
-                advertise RAW capability, but the underlying physical cameras do. This is usually
-                the case when the physical cameras have different sensor sizes.
+              * If the logical camera doesn't advertise RAW capability, but the underlying physical
+                cameras do, the logical camera will support guaranteed stream combinations for RAW
+                capability, except that the RAW streams will be physical streams, each from a separate
+                physical camera. This is usually the case when the physical cameras have different
+                sensor sizes.
 
               Using physical streams in place of a logical stream of the same size and format will
               not slow down the frame rate of the capture, as long as the minimum frame duration
@@ -5433,10 +5402,6 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
           {@link CaptureRequest.Builder#getPhysicalCameraKey}. Capture requests that contain
           individual physical device requests must be built via
           {@link android.hardware.camera2.CameraDevice#createCaptureRequest(int, Set)}.
-          Such extended capture requests can be passed only to
-          {@link CameraCaptureSession#capture} or {@link CameraCaptureSession#captureBurst} and
-          not to {@link CameraCaptureSession#setRepeatingRequest} or
-          {@link CameraCaptureSession#setRepeatingBurst}.
           </details>
           <hal_details>
           Vendor tags can be listed here. Vendor tag metadata should also
@@ -5450,6 +5415,10 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
           The HAL must not consume any request tags in the session parameters that
           are not listed either here or in the vendor tag list.
 
+          There should be no overlap between this set of keys and the available session keys
+          {@link android.hardware.camera2.CameraCharacteristics#getAvailableSessionKeys} along
+          with any other controls that can have impact on the dual-camera sync.
+
           The public camera2 API will always make the vendor tags visible
           via
           {@link android.hardware.camera2.CameraCharacteristics#getAvailablePhysicalCameraRequestKeys}.
@@ -8340,12 +8309,12 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
             <value>ON
             <notes>Include OIS data in the capture result.</notes></value>
           </enum>
-          <description>Whether the camera device will output the OIS data in output
+          <description>A control for selecting whether OIS position information is included in output
           result metadata.</description>
           <range>android.Statistics.info.availableOisDataModes</range>
           <details>When set to ON,
           android.statistics.oisTimestamps, android.statistics.oisShiftPixelX,
-          android.statistics.oisShiftPixelY will provide OIS data in the output result metadata.
+          and android.statistics.oisShiftPixelY provide OIS data in the output result metadata.
           </details>
         </entry>
       </controls>