summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-15 09:37:43 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-15 09:37:43 +0000
commit51b9a99f847181a63a2a1470b261092ece489add (patch)
tree07219ff1cc3eba1b5c621cad33594849f89db5c6
parenta80ec426b428e6e83293ff6191812618741dd7e6 (diff)
parente20e5f920a4a745710dde2ee82f011c2036cf954 (diff)
downloadmedia-aml_tz5_341510010.tar.gz
Snap for 11224086 from e20e5f920a4a745710dde2ee82f011c2036cf954 to mainline-tzdata5-releaseaml_tz5_341510070aml_tz5_341510050aml_tz5_341510010aml_tz5_341510010
Change-Id: I72581b86aee78d7eb45bb323e3fedeba504bb8b3
-rw-r--r--camera/docs/docs.html161
-rw-r--r--camera/docs/metadata_definitions.xml139
2 files changed, 190 insertions, 110 deletions
diff --git a/camera/docs/docs.html b/camera/docs/docs.html
index 1a495acd..1883aa2f 100644
--- a/camera/docs/docs.html
+++ b/camera/docs/docs.html
@@ -3021,6 +3021,19 @@ exposure.<wbr/></p>
<p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
+<p>Note that the actual achievable max framerate also depends on the minimum frame
+duration of the output streams.<wbr/> The max frame rate will be
+<code>min(aeTargetFpsRange.<wbr/>maxFps,<wbr/> 1 /<wbr/> max(individual stream min durations)</code>.<wbr/> For example,<wbr/>
+if the application sets this key to <code>{60,<wbr/> 60}</code>,<wbr/> but the maximum minFrameDuration among
+all configured streams is 33ms,<wbr/> the maximum framerate won't be 60fps,<wbr/> but will be
+30fps.<wbr/></p>
+<p>To start a CaptureSession with a target FPS range different from the
+capture request template's default value,<wbr/> the application
+is strongly recommended to call
+<a href="https://developer.android.com/reference/android/hardware/camera2/params/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>
+with the target fps range before creating the capture session.<wbr/> The aeTargetFpsRange is
+typically a session parameter.<wbr/> Specifying it at session creation time helps avoid
+session reconfiguration delays in cases like 60fps or high speed recording.<wbr/></p>
</td>
</tr>
@@ -4776,6 +4789,12 @@ frame rate is less than or equal to 30fps.<wbr/> At other sizes,<wbr/> the Capt
<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
OFF if the recording output is not stabilized,<wbr/> or if there are no output
Surface types that can be stabilized.<wbr/></p>
+<p>The application is strongly recommended to call
+<a href="https://developer.android.com/reference/android/hardware/camera2/params/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>
+with the desired video stabilization mode before creating the capture session.<wbr/>
+Video stabilization mode is a session parameter on many devices.<wbr/> Specifying
+it at session creation time helps avoid reconfiguration delay caused by difference
+between the default value and the first CaptureRequest.<wbr/></p>
<p>If a camera device supports both this mode and OIS
(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
produce undesirable interaction,<wbr/> so it is recommended not to enable
@@ -5801,7 +5820,7 @@ capability.<wbr/></p>
<tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
<td class="entry_name
- " rowspan="3">
+ " rowspan="5">
android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
</td>
<td class="entry_type">
@@ -5885,6 +5904,17 @@ maximum YUV_<wbr/>420_<wbr/>888 output size.<wbr/></li>
</td>
</tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">HAL Implementation Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>HAL must make sure the lower bound and upper bound of each supported targetFpsRange can
+be reached.<wbr/> For example,<wbr/> if HAL supports an aeTargetFpsRange of (15,<wbr/> 30),<wbr/> when set by the
+application,<wbr/> the camera must be able to reach 15fps in sufficient dark scenes.<wbr/> This way
+the application knows the exact range of frame rate it can expect.<wbr/></p>
+ </td>
+ </tr>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
@@ -8273,6 +8303,19 @@ exposure.<wbr/></p>
<p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
+<p>Note that the actual achievable max framerate also depends on the minimum frame
+duration of the output streams.<wbr/> The max frame rate will be
+<code>min(aeTargetFpsRange.<wbr/>maxFps,<wbr/> 1 /<wbr/> max(individual stream min durations)</code>.<wbr/> For example,<wbr/>
+if the application sets this key to <code>{60,<wbr/> 60}</code>,<wbr/> but the maximum minFrameDuration among
+all configured streams is 33ms,<wbr/> the maximum framerate won't be 60fps,<wbr/> but will be
+30fps.<wbr/></p>
+<p>To start a CaptureSession with a target FPS range different from the
+capture request template's default value,<wbr/> the application
+is strongly recommended to call
+<a href="https://developer.android.com/reference/android/hardware/camera2/params/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>
+with the target fps range before creating the capture session.<wbr/> The aeTargetFpsRange is
+typically a session parameter.<wbr/> Specifying it at session creation time helps avoid
+session reconfiguration delays in cases like 60fps or high speed recording.<wbr/></p>
</td>
</tr>
@@ -11071,6 +11114,12 @@ frame rate is less than or equal to 30fps.<wbr/> At other sizes,<wbr/> the Capt
<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
OFF if the recording output is not stabilized,<wbr/> or if there are no output
Surface types that can be stabilized.<wbr/></p>
+<p>The application is strongly recommended to call
+<a href="https://developer.android.com/reference/android/hardware/camera2/params/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>
+with the desired video stabilization mode before creating the capture session.<wbr/>
+Video stabilization mode is a session parameter on many devices.<wbr/> Specifying
+it at session creation time helps avoid reconfiguration delay caused by difference
+between the default value and the first CaptureRequest.<wbr/></p>
<p>If a camera device supports both this mode and OIS
(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
produce undesirable interaction,<wbr/> so it is recommended not to enable
@@ -20214,8 +20263,7 @@ Cameras that enable this capability must also support the following:</p>
<ul>
<li>Profile <a href="https://developer.android.com/reference/android/hardware/camera2/params/DynamicRangeProfiles.html#HLG10">DynamicRangeProfiles#HLG10</a></li>
<li>All mandatory stream combinations for this specific capability as per
- documentation
- <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#10-bit-output-additional-guaranteed-configurations">CameraDevice#10-bit-output-additional-guaranteed-configurations</a></li>
+ <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations">documentation</a></li>
<li>In case the device is not able to capture some combination of supported
standard 8-bit and/<wbr/>or 10-bit dynamic range profiles within the same capture request,<wbr/>
then those constraints must be listed in
@@ -20253,8 +20301,8 @@ stream use cases:</p>
</ul>
<p><a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SCALER_AVAILABLE_STREAM_USE_CASES">Camera<wbr/>Characteristics#SCALER_<wbr/>AVAILABLE_<wbr/>STREAM_<wbr/>USE_<wbr/>CASES</a>
lists all of the supported stream use cases.<wbr/></p>
-<p>Refer to
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#stream-use-case-capability-additional-guaranteed-configurations">CameraDevice#stream-use-case-capability-additional-guaranteed-configurations</a>
+<p>Refer to the
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations">guideline</a>
for the mandatory stream combinations involving stream use cases,<wbr/> which can also be
queried via <a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">MandatoryStreamCombination</a>.<wbr/></p></span>
</li>
@@ -23712,7 +23760,7 @@ or if the camera device isn't a primary rear/<wbr/>front camera,<wbr/> the minim
stream configurations are the same as for applications targeting SDK version older than
31.<wbr/></p>
<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> and
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">CameraDevice#legacy-level-guaranteed-configurations</a>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">the table</a>
for additional mandatory stream configurations on a per-capability basis.<wbr/></p>
<p>*1: For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
<ul>
@@ -24150,7 +24198,7 @@ configuration see
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">Camera<wbr/>Characteristics#INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL</a>
and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES">Camera<wbr/>Characteristics#REQUEST_<wbr/>AVAILABLE_<wbr/>CAPABILITIES</a>.<wbr/>
This is an app-readable conversion of the mandatory stream combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">tables</a>.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">tables</a>.<wbr/></p>
</td>
<td class="entry_units">
@@ -24175,7 +24223,8 @@ This is an app-readable conversion of the mandatory stream combination
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">guideline</a> based on specific device level and capabilities.<wbr/>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">guideline</a>.<wbr/>
+based on specific device level and capabilities.<wbr/>
Clients can use the array as a quick reference to find an appropriate camera stream
combination.<wbr/>
As per documentation,<wbr/> the stream combinations with given PREVIEW,<wbr/> RECORD and
@@ -24230,7 +24279,7 @@ backward compatible.<wbr/></p>
<td class="entry_description">
<p>An array of mandatory concurrent stream combinations.<wbr/>
This is an app-readable conversion of the concurrent mandatory stream combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#concurrent-stream-guaranteed-configurations">tables</a>.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#concurrent-stream-guaranteed-configurations">tables</a>.<wbr/></p>
</td>
<td class="entry_units">
@@ -24255,7 +24304,8 @@ This is an app-readable conversion of the concurrent mandatory stream combinatio
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#concurrent-stream-guaranteed-configurations">guideline</a> for each device which has its Id present in the set returned by
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#concurrent-stream-guaranteed-configurations">guideline</a>
+for each device which has its Id present in the set returned by
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraManager.html#getConcurrentCameraIds">CameraManager#getConcurrentCameraIds</a>.<wbr/>
Clients can use the array as a quick reference to find an appropriate camera stream
combination.<wbr/>
@@ -24554,7 +24604,7 @@ supported format with the MultiResolutionStreamInfo group queried by <a href="ht
<p>If a camera device supports multi-resolution output streams for a particular format,<wbr/> for
each of its mandatory stream combinations,<wbr/> the camera device will support using a
MultiResolutionImageReader for the MAXIMUM stream of supported formats.<wbr/> Refer to
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs">CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs</a>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs">the table</a>
for additional details.<wbr/></p>
<p>To use multi-resolution input streams,<wbr/> the supported formats can be queried by <a href="https://developer.android.com/reference/android/hardware/camera2/params/MultiResolutionStreamConfigurationMap.html#getInputFormats">MultiResolutionStreamConfigurationMap#getInputFormats</a>.<wbr/>
A reprocessable CameraCaptureSession can then be created using an <a href="https://developer.android.com/reference/android/hardware/camera2/params/InputConfiguration.html">InputConfiguration</a> constructed with
@@ -24563,7 +24613,7 @@ the input MultiResolutionStreamInfo group,<wbr/> queried by <a href="https://dev
{@code YUV} output,<wbr/> or multi-resolution {@code PRIVATE} input and multi-resolution
{@code PRIVATE} output,<wbr/> {@code JPEG} and {@code YUV} are guaranteed to be supported
multi-resolution output stream formats.<wbr/> Refer to
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs">CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs</a>}
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs">the table</a>
for details about the additional mandatory stream combinations in this case.<wbr/></p>
</td>
</tr>
@@ -24956,7 +25006,7 @@ camera device for input streams,<wbr/> to their corresponding output formats,<wb
<a href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html">CaptureRequest</a> has <a href="#controls_android.sensor.pixelMode">android.<wbr/>sensor.<wbr/>pixel<wbr/>Mode</a> set
to <a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION">Camera<wbr/>Metadata#SENSOR_<wbr/>PIXEL_<wbr/>MODE_<wbr/>MAXIMUM_<wbr/>RESOLUTION</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#additional-guaranteed-combinations-for-ultra-high-resolution-sensors">tables</a>.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors">tables</a>.<wbr/></p>
</td>
<td class="entry_units">
@@ -24981,7 +25031,8 @@ This is an app-readable conversion of the maximum resolution mandatory stream co
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#additional-guaranteed-combinations-for-ultra-high-resolution-sensors">guideline</a> for each device which has the
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors">guideline</a>
+for each device which has the
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR">Camera<wbr/>Metadata#REQUEST_<wbr/>AVAILABLE_<wbr/>CAPABILITIES_<wbr/>ULTRA_<wbr/>HIGH_<wbr/>RESOLUTION_<wbr/>SENSOR</a>
capability.<wbr/>
Clients can use the array as a quick reference to find an appropriate camera stream
@@ -25033,7 +25084,7 @@ device.<wbr/></p>
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 10 bit output mandatory stream combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#10-bit-output-additional-guaranteed-configurations">tables</a>.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations">tables</a>.<wbr/></p>
</td>
<td class="entry_units">
@@ -25058,7 +25109,8 @@ This is an app-readable conversion of the 10 bit output mandatory stream combina
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#10-bit-output-additional-guaranteed-configurations">guideline</a> for each device which has the
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations">guideline</a>
+for each device which has the
<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>
capability.<wbr/>
Clients can use the array as a quick reference to find an appropriate camera stream
@@ -25110,7 +25162,7 @@ device.<wbr/></p>
{@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 preview stabilization mandatory stream
combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#preview-stabilization-guaranteed-stream-configurations">tables</a>.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#preview-stabilization-guaranteed-stream-configurations">tables</a>.<wbr/></p>
</td>
<td class="entry_units">
@@ -25135,7 +25187,8 @@ combination
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#preview-stabilization-guaranteed-stream-configurations">guideline</a> for each device which supports {@code PREVIEW_<wbr/>STABILIZATION}
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#preview-stabilization-guaranteed-stream-configurations">guideline</a>
+for each device which supports {@code PREVIEW_<wbr/>STABILIZATION}
Clients can use the array as a quick reference to find an appropriate camera stream
combination.<wbr/>
The mandatory stream combination array will be {@code null} in case the device does not
@@ -25429,8 +25482,8 @@ capability must support the following stream use cases:</p>
<p>The guaranteed stream combinations related to stream use case for a camera device with
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE">Camera<wbr/>Characteristics#REQUEST_<wbr/>AVAILABLE_<wbr/>CAPABILITIES_<wbr/>STREAM_<wbr/>USE_<wbr/>CASE</a>
capability is documented in the camera device
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#stream-use-case-capability-additional-guaranteed-configurations">guideline</a>.<wbr/> The application is strongly recommended to use one of the guaranteed stream
-combinations.<wbr/>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations">guideline</a>.<wbr/>
+The application is strongly recommended to use one of the guaranteed stream combinations.<wbr/>
If the application creates a session with a stream combination not in the guaranteed
list,<wbr/> or with mixed DEFAULT and non-DEFAULT use cases within the same session,<wbr/>
the camera device may ignore some stream use cases due to hardware constraints
@@ -25481,7 +25534,8 @@ framework sets it to DEFAULT.<wbr/></p>
<td class="entry_description">
<p>An array of mandatory stream combinations with stream use cases.<wbr/>
This is an app-readable conversion of the mandatory stream combination
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#stream-use-case-capability-additional-guaranteed-configurations">tables</a> with each stream's use case being set.<wbr/></p>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations">tables</a>
+with each stream's use case being set.<wbr/></p>
</td>
<td class="entry_units">
@@ -25506,7 +25560,8 @@ This is an app-readable conversion of the mandatory stream combination
<p>The array of
<a href="https://developer.android.com/reference/android/hardware/camera2/params/MandatoryStreamCombination.html">combinations</a> is
generated according to the documented
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#stream-use-case-capability-additional-guaranteed-configurations">guideline</a> for a camera device with
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations">guildeline</a>
+for a camera device with
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE">Camera<wbr/>Characteristics#REQUEST_<wbr/>AVAILABLE_<wbr/>CAPABILITIES_<wbr/>STREAM_<wbr/>USE_<wbr/>CASE</a>
capability.<wbr/>
The mandatory stream combination array will be {@code null} in case the device doesn't
@@ -26601,7 +26656,7 @@ mode are also different from those of
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#SENSOR_PIXEL_MODE_DEFAULT">Camera<wbr/>Metadata#SENSOR_<wbr/>PIXEL_<wbr/>MODE_<wbr/>DEFAULT</a> mode.<wbr/>
They can be queried through
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#get">CameraCharacteristics#get</a> with
-<a href="https://developer.android.com/reference/CameraCharacteristics.html#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION)">Camera<wbr/>Characteristics#SCALER_<wbr/>STREAM_<wbr/>CONFIGURATION_<wbr/>MAP_<wbr/>MAXIMUM_<wbr/>RESOLUTION)</a>.<wbr/>
+<a href="https://developer.android.com/reference/CameraCharacteristics.html#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION">Camera<wbr/>Characteristics#SCALER_<wbr/>STREAM_<wbr/>CONFIGURATION_<wbr/>MAP_<wbr/>MAXIMUM_<wbr/>RESOLUTION</a>.<wbr/>
Unless reported by both
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>s,<wbr/> the outputs from
<code><a href="#static_android.scaler.streamConfigurationMapMaximumResolution">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map<wbr/>Maximum<wbr/>Resolution</a></code> and
@@ -26616,13 +26671,12 @@ capability.<wbr/> In that case:</p>
<ul>
<li>
<p>The mandatory stream combinations listed in
- <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics/mandatoryMaximumResolutionStreamCombinations.html">mandatoryMaximumResolutionStreamCombinations</a>
- would not apply.<wbr/></p>
+ <a href="#static_android.scaler.mandatoryMaximumResolutionStreamCombinations">android.<wbr/>scaler.<wbr/>mandatory<wbr/>Maximum<wbr/>Resolution<wbr/>Stream<wbr/>Combinations</a> would not apply.<wbr/></p>
</li>
<li>
<p>The bayer pattern of {@code RAW} streams when
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION">Camera<wbr/>Metadata#SENSOR_<wbr/>PIXEL_<wbr/>MODE_<wbr/>MAXIMUM_<wbr/>RESOLUTION</a>
- is selected will be the one listed in <a href="https://developer.android.com/reference/android/sensor/info/binningFactor.html">binningFactor</a>.<wbr/></p>
+ is selected will be the one listed in <a href="#static_android.sensor.info.binningFactor">android.<wbr/>sensor.<wbr/>info.<wbr/>binning<wbr/>Factor</a>.<wbr/></p>
</li>
<li>
<p>The following keys will always be present:</p>
@@ -30588,7 +30642,7 @@ mode are also different from those of
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#SENSOR_PIXEL_MODE_DEFAULT">Camera<wbr/>Metadata#SENSOR_<wbr/>PIXEL_<wbr/>MODE_<wbr/>DEFAULT</a> mode.<wbr/>
They can be queried through
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#get">CameraCharacteristics#get</a> with
-<a href="https://developer.android.com/reference/CameraCharacteristics.html#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION)">Camera<wbr/>Characteristics#SCALER_<wbr/>STREAM_<wbr/>CONFIGURATION_<wbr/>MAP_<wbr/>MAXIMUM_<wbr/>RESOLUTION)</a>.<wbr/>
+<a href="https://developer.android.com/reference/CameraCharacteristics.html#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION">Camera<wbr/>Characteristics#SCALER_<wbr/>STREAM_<wbr/>CONFIGURATION_<wbr/>MAP_<wbr/>MAXIMUM_<wbr/>RESOLUTION</a>.<wbr/>
Unless reported by both
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>s,<wbr/> the outputs from
<code><a href="#static_android.scaler.streamConfigurationMapMaximumResolution">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map<wbr/>Maximum<wbr/>Resolution</a></code> and
@@ -30603,13 +30657,12 @@ capability.<wbr/> In that case:</p>
<ul>
<li>
<p>The mandatory stream combinations listed in
- <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics/mandatoryMaximumResolutionStreamCombinations.html">mandatoryMaximumResolutionStreamCombinations</a>
- would not apply.<wbr/></p>
+ <a href="#static_android.scaler.mandatoryMaximumResolutionStreamCombinations">android.<wbr/>scaler.<wbr/>mandatory<wbr/>Maximum<wbr/>Resolution<wbr/>Stream<wbr/>Combinations</a> would not apply.<wbr/></p>
</li>
<li>
<p>The bayer pattern of {@code RAW} streams when
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION">Camera<wbr/>Metadata#SENSOR_<wbr/>PIXEL_<wbr/>MODE_<wbr/>MAXIMUM_<wbr/>RESOLUTION</a>
- is selected will be the one listed in <a href="https://developer.android.com/reference/android/sensor/info/binningFactor.html">binningFactor</a>.<wbr/></p>
+ is selected will be the one listed in <a href="#static_android.sensor.info.binningFactor">android.<wbr/>sensor.<wbr/>info.<wbr/>binning<wbr/>Factor</a>.<wbr/></p>
</li>
<li>
<p>The following keys will always be present:</p>
@@ -35369,9 +35422,9 @@ doesn't violate the above rules.<wbr/></p>
<span class="entry_type_enum_name">LIMITED (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
better.<wbr/></p>
-<p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#limited-level-additional-guaranteed-configurations">CameraDevice#limited-level-additional-guaranteed-configurations</a>
-documentation are guaranteed to be supported.<wbr/></p>
+<p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#limited-level-additional-guaranteed-configurations">tables</a>
+in the documentation are guaranteed to be supported.<wbr/></p>
<p>All <code>LIMITED</code> devices support the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability,<wbr/> indicating basic
support for color image capture.<wbr/> The only exception is that the device may
alternatively support only the <code>DEPTH_<wbr/>OUTPUT</code> capability,<wbr/> if it can only output depth
@@ -35389,9 +35442,9 @@ can be checked for in <a href="#static_android.request.availableCapabilities">an
<li>
<span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
-<p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#full-level-additional-guaranteed-configurations">CameraDevice#full-level-additional-guaranteed-configurations</a>
-documentation are guaranteed to be supported.<wbr/></p>
+<p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#full-level-additional-guaranteed-configurations">tables</a>
+in the documentation are guaranteed to be supported.<wbr/></p>
<p>A <code>FULL</code> device will support below capabilities:</p>
<ul>
<li><code>BURST_<wbr/>CAPTURE</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
@@ -35411,9 +35464,9 @@ Pre-API level 23,<wbr/> FULL devices also supported arbitrary cropping region
<li>
<span class="entry_type_enum_name">LEGACY (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
-<p>Only the stream configurations listed in the <code>LEGACY</code> table in the
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">CameraDevice#legacy-level-guaranteed-configurations</a>
-documentation are supported.<wbr/></p>
+<p>Only the stream configurations listed in the <code>LEGACY</code>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">table</a>
+in the documentation are supported.<wbr/></p>
<p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/>
No additional capabilities beyond <code>BACKWARD_<wbr/>COMPATIBLE</code> will ever be listed by a
@@ -35431,9 +35484,9 @@ enable the flash.<wbr/></p>
<span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
FULL-level capabilities.<wbr/></p>
<p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
-<code>LIMITED</code> tables in the
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#level-3-additional-guaranteed-configurations">CameraDevice#level-3-additional-guaranteed-configurations</a>
-documentation are guaranteed to be supported.<wbr/></p>
+<code>LIMITED</code>
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#level-3-additional-guaranteed-configurations">tables</a>
+in the documentation are guaranteed to be supported.<wbr/></p>
<p>The following additional capabilities are guaranteed to be supported:</p>
<ul>
<li><code>YUV_<wbr/>REPROCESSING</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
@@ -38502,7 +38555,8 @@ own requirements.<wbr/></p>
<td class="entry_description">
<p>Whether this camera device can support identical set of stream combinations
involving HEIC image format,<wbr/> compared to the
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">table of combinations</a> involving JPEG image format required for the device's hardware
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">table of combinations</a>
+involving JPEG image format required for the device's hardware
level and capabilities.<wbr/></p>
</td>
@@ -38534,7 +38588,8 @@ used to control the orientation and quality of the HEIC image.<wbr/> Configuring
HEIC streams at the same time is not supported.<wbr/></p>
<p>If a camera device supports HEIC format (ISO/<wbr/>IEC 23008-12),<wbr/> not only does it
support the existing mandatory stream
-<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#legacy-level-guaranteed-configurations">combinations</a> required for the device's hardware level and capabilities,<wbr/> it also
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations">combinations</a>
+required for the device's hardware level and capabilities,<wbr/> it also
supports swapping each JPEG stream with HEIC stream in all guaranteed combinations.<wbr/></p>
<p>For every HEIC stream configured by the application,<wbr/> the camera framework sets up 2
internal streams with camera HAL:</p>
@@ -39478,9 +39533,8 @@ the following entries,<wbr/> so that applications can determine the camera's exa
<p>This control allows Camera extension clients to configure the strength of the applied
extension effect.<wbr/> Strength equal to 0 means that the extension must not apply any
post-processing and return a regular captured frame.<wbr/> Strength equal to 100 is the
-default level of post-processing applied when the control is not supported or not set
-by the client.<wbr/> Values between 0 and 100 will have different effect depending on the
-extension type as described below:</p>
+maximum level of post-processing.<wbr/> Values between 0 and 100 will have different effect
+depending on the extension type as described below:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics.html#EXTENSION_BOKEH">BOKEH</a> -
the strength is expected to control the amount of blur.<wbr/></li>
@@ -39495,7 +39549,9 @@ smoothing.<wbr/></li>
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics.html#getAvailableCaptureRequestKeys">CameraExtensionCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/>
The control is only defined and available to clients sending capture requests via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionSession.html">CameraExtensionSession</a>.<wbr/>
-The default value is 100.<wbr/></p>
+If the client doesn't specify the extension strength value,<wbr/> then a default value will
+be set by the extension.<wbr/> Clients can retrieve the default value by checking the
+corresponding capture result.<wbr/></p>
</td>
</tr>
@@ -39638,9 +39694,8 @@ then the result type will always match with the configured extension type.<wbr/>
<p>This control allows Camera extension clients to configure the strength of the applied
extension effect.<wbr/> Strength equal to 0 means that the extension must not apply any
post-processing and return a regular captured frame.<wbr/> Strength equal to 100 is the
-default level of post-processing applied when the control is not supported or not set
-by the client.<wbr/> Values between 0 and 100 will have different effect depending on the
-extension type as described below:</p>
+maximum level of post-processing.<wbr/> Values between 0 and 100 will have different effect
+depending on the extension type as described below:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics.html#EXTENSION_BOKEH">BOKEH</a> -
the strength is expected to control the amount of blur.<wbr/></li>
@@ -39655,7 +39710,9 @@ smoothing.<wbr/></li>
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionCharacteristics.html#getAvailableCaptureRequestKeys">CameraExtensionCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/>
The control is only defined and available to clients sending capture requests via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraExtensionSession.html">CameraExtensionSession</a>.<wbr/>
-The default value is 100.<wbr/></p>
+If the client doesn't specify the extension strength value,<wbr/> then a default value will
+be set by the extension.<wbr/> Clients can retrieve the default value by checking the
+corresponding capture result.<wbr/></p>
</td>
</tr>
diff --git a/camera/docs/metadata_definitions.xml b/camera/docs/metadata_definitions.xml
index 9081ed97..6f89498d 100644
--- a/camera/docs/metadata_definitions.xml
+++ b/camera/docs/metadata_definitions.xml
@@ -825,7 +825,23 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
<range>Any of the entries in android.control.aeAvailableTargetFpsRanges</range>
<details>Only constrains auto-exposure (AE) algorithm, not
manual control of android.sensor.exposureTime and
- android.sensor.frameDuration.</details>
+ android.sensor.frameDuration.
+
+ Note that the actual achievable max framerate also depends on the minimum frame
+ duration of the output streams. The max frame rate will be
+ `min(aeTargetFpsRange.maxFps, 1 / max(individual stream min durations)`. For example,
+ if the application sets this key to `{60, 60}`, but the maximum minFrameDuration among
+ all configured streams is 33ms, the maximum framerate won't be 60fps, but will be
+ 30fps.
+
+ To start a CaptureSession with a target FPS range different from the
+ capture request template's default value, the application
+ is strongly recommended to call
+ {@link android.hardware.camera2.params.SessionConfiguration#setSessionParameters|ACameraDevice_createCaptureSessionWithSessionParameters}
+ with the target fps range before creating the capture session. The aeTargetFpsRange is
+ typically a session parameter. Specifying it at session creation time helps avoid
+ session reconfiguration delays in cases like 60fps or high speed recording.
+ </details>
<tag id="BC" />
</entry>
<entry name="aePrecaptureTrigger" type="byte" visibility="public"
@@ -2096,6 +2112,13 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
OFF if the recording output is not stabilized, or if there are no output
Surface types that can be stabilized.
+ The application is strongly recommended to call
+ {@link android.hardware.camera2.params.SessionConfiguration#setSessionParameters|ACameraDevice_createCaptureSessionWithSessionParameters}
+ with the desired video stabilization mode before creating the capture session.
+ Video stabilization mode is a session parameter on many devices. Specifying
+ it at session creation time helps avoid reconfiguration delay caused by difference
+ between the default value and the first CaptureRequest.
+
If a camera device supports both this mode and OIS
(android.lens.opticalStabilizationMode), turning both modes on may
produce undesirable interaction, so it is recommended not to enable
@@ -2217,6 +2240,12 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
maximum YUV_420_888 output size.
</details>
+ <hal_details>
+ HAL must make sure the lower bound and upper bound of each supported targetFpsRange can
+ be reached. For example, if HAL supports an aeTargetFpsRange of (15, 30), when set by the
+ application, the camera must be able to reach 15fps in sufficient dark scenes. This way
+ the application knows the exact range of frame rate it can expect.
+ </hal_details>
<tag id="BC" />
</entry>
<entry name="aeCompensationRange" type="int32" visibility="public"
@@ -6564,8 +6593,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
* Profile {@link android.hardware.camera2.params.DynamicRangeProfiles#HLG10}
* All mandatory stream combinations for this specific capability as per
- documentation
- {@link android.hardware.camera2.CameraDevice#10-bit-output-additional-guaranteed-configurations}
+ [documentation](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations)
* In case the device is not able to capture some combination of supported
standard 8-bit and/or 10-bit dynamic range profiles within the same capture request,
then those constraints must be listed in
@@ -6603,8 +6631,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@link android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES}
lists all of the supported stream use cases.
- Refer to
- {@link android.hardware.camera2.CameraDevice#stream-use-case-capability-additional-guaranteed-configurations}
+ Refer to the
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations)
for the mandatory stream combinations involving stream use cases, which can also be
queried via {@link android.hardware.camera2.params.MandatoryStreamCombination}.
</notes>
@@ -8104,7 +8132,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
31.
Refer to android.request.availableCapabilities and
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations}
+ [the table](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations)
for additional mandatory stream configurations on a per-capability basis.
*1: For JPEG format, the sizes may be restricted by below conditions:
@@ -8417,15 +8445,14 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@link android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL}
and {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES}.
This is an app-readable conversion of the mandatory stream combination
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations
- tables}.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations).
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations
- guideline} based on specific device level and capabilities.
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations).
+ based on specific device level and capabilities.
Clients can use the array as a quick reference to find an appropriate camera stream
combination.
As per documentation, the stream combinations with given PREVIEW, RECORD and
@@ -8452,15 +8479,14 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
<description>
An array of mandatory concurrent stream combinations.
This is an app-readable conversion of the concurrent mandatory stream combination
- {@link android.hardware.camera2.CameraDevice#concurrent-stream-guaranteed-configurations
- tables}.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#concurrent-stream-guaranteed-configurations).
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#concurrent-stream-guaranteed-configurations
- guideline} for each device which has its Id present in the set returned by
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#concurrent-stream-guaranteed-configurations)
+ for each device which has its Id present in the set returned by
{@link android.hardware.camera2.CameraManager#getConcurrentCameraIds}.
Clients can use the array as a quick reference to find an appropriate camera stream
combination.
@@ -8720,7 +8746,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
If a camera device supports multi-resolution output streams for a particular format, for
each of its mandatory stream combinations, the camera device will support using a
MultiResolutionImageReader for the MAXIMUM stream of supported formats. Refer to
- {@link android.hardware.camera2.CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs}
+ [the table](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs)
for additional details.
To use multi-resolution input streams, the supported formats can be queried by {@link
@@ -8734,7 +8760,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@code YUV} output, or multi-resolution {@code PRIVATE} input and multi-resolution
{@code PRIVATE} output, {@code JPEG} and {@code YUV} are guaranteed to be supported
multi-resolution output stream formats. Refer to
- {@link android.hardware.camera2.CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs}}
+ [the table](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-additional-guaranteed-combinations-with-multiresolutionoutputs)
for details about the additional mandatory stream combinations in this case.
</details>
<hal_details>
@@ -8873,15 +8899,14 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@link android.hardware.camera2.CaptureRequest} has android.sensor.pixelMode set
to {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION}.
This is an app-readable conversion of the maximum resolution mandatory stream combination
- {@link android.hardware.camera2.CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors
- tables}.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors).
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors
- guideline} for each device which has the
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#additional-guaranteed-combinations-for-ultra-high-resolution-sensors)
+ for each device which has the
{@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR}
capability.
Clients can use the array as a quick reference to find an appropriate camera stream
@@ -8906,15 +8931,14 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
10-bit output capability
{@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT}
This is an app-readable conversion of the 10 bit output mandatory stream combination
- {@link android.hardware.camera2.CameraDevice#10-bit-output-additional-guaranteed-configurations
- tables}.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations).
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#10-bit-output-additional-guaranteed-configurations
- guideline} for each device which has the
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#10-bit-output-additional-guaranteed-configurations)
+ for each device which has the
{@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT}
capability.
Clients can use the array as a quick reference to find an appropriate camera stream
@@ -8939,15 +8963,14 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@code PREVIEW_STABILIZATION} in android.control.availableVideoStabilizationModes.
This is an app-readable conversion of the preview stabilization mandatory stream
combination
- {@link android.hardware.camera2.CameraDevice#preview-stabilization-guaranteed-stream-configurations
- tables}.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#preview-stabilization-guaranteed-stream-configurations).
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#preview-stabilization-guaranteed-stream-configurations
- guideline} for each device which supports {@code PREVIEW_STABILIZATION}
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#preview-stabilization-guaranteed-stream-configurations)
+ for each device which supports {@code PREVIEW_STABILIZATION}
Clients can use the array as a quick reference to find an appropriate camera stream
combination.
The mandatory stream combination array will be {@code null} in case the device does not
@@ -9179,9 +9202,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
The guaranteed stream combinations related to stream use case for a camera device with
{@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE}
capability is documented in the camera device
- {@link android.hardware.camera2.CameraDevice#stream-use-case-capability-additional-guaranteed-configurations
- guideline}. The application is strongly recommended to use one of the guaranteed stream
- combinations.
+ [guideline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations).
+ The application is strongly recommended to use one of the guaranteed stream combinations.
If the application creates a session with a stream combination not in the guaranteed
list, or with mixed DEFAULT and non-DEFAULT use cases within the same session,
the camera device may ignore some stream use cases due to hardware constraints
@@ -9205,15 +9227,15 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
<description>
An array of mandatory stream combinations with stream use cases.
This is an app-readable conversion of the mandatory stream combination
- {@link android.hardware.camera2.CameraDevice#stream-use-case-capability-additional-guaranteed-configurations
- tables} with each stream's use case being set.
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations)
+ with each stream's use case being set.
</description>
<details>
The array of
{@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
generated according to the documented
- {@link android.hardware.camera2.CameraDevice#stream-use-case-capability-additional-guaranteed-configurations
- guideline} for a camera device with
+ [guildeline](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#stream-use-case-capability-additional-guaranteed-configurations)
+ for a camera device with
{@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE}
capability.
The mandatory stream combination array will be {@code null} in case the device doesn't
@@ -11016,7 +11038,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_DEFAULT} mode.
They can be queried through
{@link android.hardware.camera2.CameraCharacteristics#get} with
- {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION)}.
+ {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION}.
Unless reported by both
{@link android.hardware.camera2.params.StreamConfigurationMap}s, the outputs from
`android.scaler.streamConfigurationMapMaximumResolution` and
@@ -11030,12 +11052,12 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
capability. In that case:
* The mandatory stream combinations listed in
- {@link android.hardware.camera2.CameraCharacteristics.mandatoryMaximumResolutionStreamCombinations}
+ android.scaler.mandatoryMaximumResolutionStreamCombinations
would not apply.
* The bayer pattern of {@code RAW} streams when
{@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION}
- is selected will be the one listed in {@link android.sensor.info.binningFactor}.
+ is selected will be the one listed in android.sensor.info.binningFactor.
* The following keys will always be present:
@@ -12432,9 +12454,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
This camera device does not have enough capabilities to qualify as a `FULL` device or
better.
- Only the stream configurations listed in the `LEGACY` and `LIMITED` tables in the
- {@link android.hardware.camera2.CameraDevice#limited-level-additional-guaranteed-configurations|ACameraDevice_createCaptureSession}
- documentation are guaranteed to be supported.
+ Only the stream configurations listed in the `LEGACY` and `LIMITED`
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#limited-level-additional-guaranteed-configurations)
+ in the documentation are guaranteed to be supported.
All `LIMITED` devices support the `BACKWARDS_COMPATIBLE` capability, indicating basic
support for color image capture. The only exception is that the device may
@@ -12459,9 +12481,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
<notes>
This camera device is capable of supporting advanced imaging applications.
- The stream configurations listed in the `FULL`, `LEGACY` and `LIMITED` tables in the
- {@link android.hardware.camera2.CameraDevice#full-level-additional-guaranteed-configurations|ACameraDevice_createCaptureSession}
- documentation are guaranteed to be supported.
+ The stream configurations listed in the `FULL`, `LEGACY` and `LIMITED`
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#full-level-additional-guaranteed-configurations)
+ in the documentation are guaranteed to be supported.
A `FULL` device will support below capabilities:
@@ -12485,9 +12507,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
<notes>
This camera device is running in backward compatibility mode.
- Only the stream configurations listed in the `LEGACY` table in the
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations|ACameraDevice_createCaptureSession}
- documentation are supported.
+ Only the stream configurations listed in the `LEGACY`
+ [table](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations)
+ in the documentation are supported.
A `LEGACY` device does not support per-frame control, manual sensor control, manual
post-processing, arbitrary cropping regions, and has relaxed performance constraints.
@@ -12512,9 +12534,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
FULL-level capabilities.
The stream configurations listed in the `LEVEL_3`, `RAW`, `FULL`, `LEGACY` and
- `LIMITED` tables in the
- {@link android.hardware.camera2.CameraDevice#level-3-additional-guaranteed-configurations|ACameraDevice_createCaptureSession}
- documentation are guaranteed to be supported.
+ `LIMITED`
+ [tables](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#level-3-additional-guaranteed-configurations)
+ in the documentation are guaranteed to be supported.
The following additional capabilities are guaranteed to be supported:
@@ -13621,8 +13643,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
</enum>
<description>Whether this camera device can support identical set of stream combinations
involving HEIC image format, compared to the
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations
- table of combinations} involving JPEG image format required for the device's hardware
+ [table of combinations](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations)
+ involving JPEG image format required for the device's hardware
level and capabilities.
</description>
<details>
@@ -13633,8 +13655,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
If a camera device supports HEIC format (ISO/IEC 23008-12), not only does it
support the existing mandatory stream
- {@link android.hardware.camera2.CameraDevice#legacy-level-guaranteed-configurations
- combinations} required for the device's hardware level and capabilities, it also
+ [combinations](https://developer.android.com/reference/android/hardware/camera2/CameraDevice#legacy-level-guaranteed-configurations)
+ required for the device's hardware level and capabilities, it also
supports swapping each JPEG stream with HEIC stream in all guaranteed combinations.
For every HEIC stream configured by the application, the camera framework sets up 2
@@ -14105,9 +14127,8 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
This control allows Camera extension clients to configure the strength of the applied
extension effect. Strength equal to 0 means that the extension must not apply any
post-processing and return a regular captured frame. Strength equal to 100 is the
- default level of post-processing applied when the control is not supported or not set
- by the client. Values between 0 and 100 will have different effect depending on the
- extension type as described below:
+ maximum level of post-processing. Values between 0 and 100 will have different effect
+ depending on the extension type as described below:
* {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_BOKEH BOKEH} -
the strength is expected to control the amount of blur.
@@ -14122,7 +14143,9 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
{@link android.hardware.camera2.CameraExtensionCharacteristics#getAvailableCaptureRequestKeys}.
The control is only defined and available to clients sending capture requests via
{@link android.hardware.camera2.CameraExtensionSession}.
- The default value is 100.
+ If the client doesn't specify the extension strength value, then a default value will
+ be set by the extension. Clients can retrieve the default value by checking the
+ corresponding capture result.
</details>
</entry>
</controls>