Snap for 10276566 from 8fa4136bcc61c8428d9192b30db3f7dcff056b28 to tm-platform-release

Change-Id: Ia9a925fbdfec2a8fe7715ef0081d2e8e928a1e27
diff --git a/audio/include/system/audio_effects/effect_spatializer.h b/audio/include/system/audio_effects/effect_spatializer.h
index 2f853ea..971d0e3 100644
--- a/audio/include/system/audio_effects/effect_spatializer.h
+++ b/audio/include/system/audio_effects/effect_spatializer.h
@@ -47,8 +47,27 @@
     SPATIALIZER_PARAM_HEAD_TO_STAGE,
     // foldable device hinge angle as a float value in rad
     SPATIALIZER_PARAM_HINGE_ANGLE,
-    // Display orientation as a float value in rad
+
+    // The default display orientation as reported by DisplayManager.
+    //
+    // The DisplayManager reports 0, 90, 180, 270 degrees,
+    // here it is reported as a float value in radians.
+    // Only 4 values 0, PI/2, PI, 3PI/2 will be sent as of Android 14 (U).
+    // Due to precision, compare with an epsilon range, suggest
+    // rounding to the nearest integer degree for practical use.
+    //
+    // Notes:
+    //    1) A device may have more than one display.
+    //    2) A display may be locked which prevents the application from rotating.
     SPATIALIZER_PARAM_DISPLAY_ORIENTATION,
+
+    // The fold state as reported by DeviceStateManager for a foldable.
+    // This is an integer value of either 0 (open) or 1 (folded).
+    //
+    // The device fold state may affect which display is active (if any).
+    // The open/closed logical state differs than the hinge angle,
+    // which may be reported by a hinge sensor.
+    SPATIALIZER_PARAM_FOLD_STATE,
 } t_virtualizer_stage_params;
 
 // See SpatializationLevel.aidl
diff --git a/camera/docs/docs.html b/camera/docs/docs.html
index b7e4204..5eb5804 100644
--- a/camera/docs/docs.html
+++ b/camera/docs/docs.html
@@ -19229,24 +19229,25 @@
 camera's crop region is set to maximum size,<wbr/> the FOV of the physical streams for the
 ultrawide lens will be the same as the logical stream,<wbr/> by making the crop region
 smaller than its active array size to compensate for the smaller focal length.<wbr/></p>
-<p>There are two ways for the application to capture RAW images from a logical camera
-with RAW capability:</p>
+<p>For a logical camera,<wbr/> typically the underlying physical cameras have different RAW
+capabilities (such as resolution or CFA pattern).<wbr/> There are two ways for the
+application to capture RAW images from the logical camera:</p>
 <ul>
-<li>Because the underlying physical cameras may have different RAW capabilities (such
-as resolution or CFA pattern),<wbr/> to maintain backward compatibility,<wbr/> when a RAW stream
-is configured,<wbr/> the camera device makes sure the default active physical camera remains
-active and does not switch to other physical cameras.<wbr/> (One exception is that,<wbr/> if the
-logical camera consists of identical image sensors and advertises multiple focalLength
-due to different lenses,<wbr/> the camera device may generate RAW images from different
-physical cameras based on the focalLength being set by the application.<wbr/>) This
-backward-compatible approach usually results in loss of optical zoom,<wbr/> to telephoto
-lens or to ultrawide lens.<wbr/></li>
-<li>Alternatively,<wbr/> to take advantage of the full zoomRatio range of the logical camera,<wbr/>
-the application should use <a href="https://developer.android.com/reference/android/hardware/camera2/MultiResolutionImageReader.html">MultiResolutionImageReader</a>
-to capture RAW images from the currently active physical camera.<wbr/> Because different
-physical camera may have different RAW characteristics,<wbr/> the application needs to use
-the characteristics and result metadata of the active physical camera for the
-relevant RAW metadata.<wbr/></li>
+<li>If the logical camera has RAW capability,<wbr/> the application can create and use RAW
+streams in the same way as before.<wbr/> In case a RAW stream is configured,<wbr/> to maintain
+backward compatibility,<wbr/> the camera device makes sure the default active physical
+camera remains active and does not switch to other physical cameras.<wbr/> (One exception
+is that,<wbr/> if the logical camera consists of identical image sensors and advertises
+multiple focalLength due to different lenses,<wbr/> the camera device may generate RAW
+images from different physical cameras based on the focalLength being set by the
+application.<wbr/>) This backward-compatible approach usually results in loss of optical
+zoom,<wbr/> to telephoto lens or to ultrawide lens.<wbr/></li>
+<li>Alternatively,<wbr/> if supported by the device,<wbr/>
+<a href="https://developer.android.com/reference/android/hardware/camera2/MultiResolutionImageReader.html">MultiResolutionImageReader</a>
+can be used to capture RAW images from one of the underlying physical cameras (
+depending on current zoom level).<wbr/> Because different physical cameras may have
+different RAW characteristics,<wbr/> the application needs to use the characteristics
+and result metadata of the active physical camera for the relevant RAW metadata.<wbr/></li>
 </ul>
 <p>The capture request and result metadata tags required for backward compatible camera
 functionalities will be solely based on the logical camera capability.<wbr/> On the other
@@ -24019,7 +24020,7 @@
               <p>An array of mandatory stream combinations which are applicable when device support the
 10-bit output capability
 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT">Camera<wbr/>Characteristics#REQUEST_<wbr/>AVAILABLE_<wbr/>CAPABILITIES_<wbr/>DYNAMIC_<wbr/>RANGE_<wbr/>TEN_<wbr/>BIT</a>
-This is an app-readable conversion of the maximum resolution mandatory stream combination
+This is an app-readable conversion of the 10 bit output mandatory stream combination
 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">tables</a>.<wbr/></p>
             </td>
 
@@ -24096,8 +24097,8 @@
             <td class="entry_description">
               <p>An array of mandatory stream combinations which are applicable when device lists
 {@code PREVIEW_<wbr/>STABILIZATION} in <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>.<wbr/>
-This is an app-readable conversion of the maximum resolution mandatory stream combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">tables</a>.<wbr/></p>
+This is an app-readable conversion of the preview stabilization mandatory stream
+combination <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">tables</a>.<wbr/></p>
             </td>
 
             <td class="entry_units">
diff --git a/camera/docs/metadata_definitions.xml b/camera/docs/metadata_definitions.xml
index 1ac9d36..25e000d 100644
--- a/camera/docs/metadata_definitions.xml
+++ b/camera/docs/metadata_definitions.xml
@@ -6122,24 +6122,25 @@
               ultrawide lens will be the same as the logical stream, by making the crop region
               smaller than its active array size to compensate for the smaller focal length.
 
-              There are two ways for the application to capture RAW images from a logical camera
-              with RAW capability:
+              For a logical camera, typically the underlying physical cameras have different RAW
+              capabilities (such as resolution or CFA pattern). There are two ways for the
+              application to capture RAW images from the logical camera:
 
-              * Because the underlying physical cameras may have different RAW capabilities (such
-              as resolution or CFA pattern), to maintain backward compatibility, when a RAW stream
-              is configured, the camera device makes sure the default active physical camera remains
-              active and does not switch to other physical cameras. (One exception is that, if the
-              logical camera consists of identical image sensors and advertises multiple focalLength
-              due to different lenses, the camera device may generate RAW images from different
-              physical cameras based on the focalLength being set by the application.) This
-              backward-compatible approach usually results in loss of optical zoom, to telephoto
-              lens or to ultrawide lens.
-              * Alternatively, to take advantage of the full zoomRatio range of the logical camera,
-              the application should use {@link android.hardware.camera2.MultiResolutionImageReader}
-              to capture RAW images from the currently active physical camera. Because different
-              physical camera may have different RAW characteristics, the application needs to use
-              the characteristics and result metadata of the active physical camera for the
-              relevant RAW metadata.
+              * If the logical camera has RAW capability, the application can create and use RAW
+              streams in the same way as before. In case a RAW stream is configured, to maintain
+              backward compatibility, the camera device makes sure the default active physical
+              camera remains active and does not switch to other physical cameras. (One exception
+              is that, if the logical camera consists of identical image sensors and advertises
+              multiple focalLength due to different lenses, the camera device may generate RAW
+              images from different physical cameras based on the focalLength being set by the
+              application.) This backward-compatible approach usually results in loss of optical
+              zoom, to telephoto lens or to ultrawide lens.
+              * Alternatively, if supported by the device,
+              {@link android.hardware.camera2.MultiResolutionImageReader}
+              can be used to capture RAW images from one of the underlying physical cameras (
+              depending on current zoom level). Because different physical cameras may have
+              different RAW characteristics, the application needs to use the characteristics
+              and result metadata of the active physical camera for the relevant RAW metadata.
 
               The capture request and result metadata tags required for backward compatible camera
               functionalities will be solely based on the logical camera capability. On the other
@@ -8520,7 +8521,7 @@
           An array of mandatory stream combinations which are applicable when device support the
           10-bit output capability
           {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT}
-          This is an app-readable conversion of the maximum resolution mandatory stream combination
+          This is an app-readable conversion of the 10 bit output mandatory stream combination
           {@link android.hardware.camera2.CameraDevice#createCaptureSession tables}.
           </description>
           <details>
@@ -8551,8 +8552,8 @@
           <description>
           An array of mandatory stream combinations which are applicable when device lists
           {@code PREVIEW_STABILIZATION} in android.control.availableVideoStabilizationModes.
-          This is an app-readable conversion of the maximum resolution mandatory stream combination
-          {@link android.hardware.camera2.CameraDevice#createCaptureSession tables}.
+          This is an app-readable conversion of the preview stabilization mandatory stream
+          combination {@link android.hardware.camera2.CameraDevice#createCaptureSession tables}.
           </description>
           <details>
           The array of