summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jayant Chowdhary <jchowdhary@google.com> 2022-06-02 00:34:53 +0000
committer Jayant Chowdhary <jchowdhary@google.com> 2022-06-17 17:18:29 +0000
commitd83e9b5325bcc4d771b3f4f7afda48a5c1b37d7f (patch)
treead883005d8288e94d1818a1c5329c47f65633cd8
parentcb41788177bddacd969d9accd4b6e9b764a427a0 (diff)
Limit preview stabilization mandatory stream sizes to 1440p (instead of RECORD).
Also fix a logic error in an if check while retrieving mandatory streams for preview stabilization. This was not caught by CTS since for devices where preview stabilization was supported, skipped the test. A modification has been made to CTS RobustnessTest to ensure that the preview stabilization support and mandatory streams are in agreement with each other. Bug: 228245412 Test: atest RobustnessTest.java on device supporting preview stabilization Change-Id: I18c7f3c728862866b8f088da3afe222afbad7051 Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
-rw-r--r--core/java/android/hardware/camera2/CameraDevice.java6
-rw-r--r--core/java/android/hardware/camera2/params/MandatoryStreamCombination.java22
2 files changed, 14 insertions, 14 deletions
diff --git a/core/java/android/hardware/camera2/CameraDevice.java b/core/java/android/hardware/camera2/CameraDevice.java
index 73735edbb2ba..0f1b39c01289 100644
--- a/core/java/android/hardware/camera2/CameraDevice.java
+++ b/core/java/android/hardware/camera2/CameraDevice.java
@@ -892,9 +892,9 @@ public abstract class CameraDevice implements AutoCloseable {
* <tr><th colspan="7">Preview stabilization guaranteed stream configurations</th></tr>
* <tr><th colspan="2" id="rb">Target 1</th><th colspan="2" id="rb">Target 2</th><th rowspan="2">Sample use case(s)</th> </tr>
* <tr><th>Type</th><th id="rb">Max size</th><th>Type</th><th id="rb">Max size</th></tr>
- * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code RECORD}</td><td colspan="4" id="rb"></td> <td>Stabilized preview, GPU video processing, or no-preview stabilized video recording.</td> </tr>
- * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code PREVIEW}</td> <td>{@code JPEG / YUV}</td><td id="rb">{@code MAXIMUM }</td><td>Standard still imaging with stabilized preview.</td> </tr>
- * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code PREVIEW}</td> <td>{@code PRIV / YUV}</td><td id="rb">{@code RECORD }</td><td>High-resolution recording with stabilized preview and recording stream.</td> </tr>
+ * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code s1440p}</td><td colspan="4" id="rb"></td> <td>Stabilized preview, GPU video processing, or no-preview stabilized video recording.</td> </tr>
+ * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code s1440p}</td> <td>{@code JPEG / YUV}</td><td id="rb">{@code MAXIMUM }</td><td>Standard still imaging with stabilized preview.</td> </tr>
+ * <tr> <td>{@code PRIV / YUV}</td><td id="rb">{@code PREVIEW}</td> <td>{@code PRIV / YUV}</td><td id="rb">{@code s1440p }</td><td>High-resolution recording with stabilized preview and recording stream.</td> </tr>
* </table><br>
* <p>
* For the maximum size column, PREVIEW refers to the best size match to the device's screen
diff --git a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
index a3bc66546a6a..e5b9cdb74d3b 100644
--- a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
+++ b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
@@ -1265,43 +1265,43 @@ public final class MandatoryStreamCombination {
private static StreamCombinationTemplate sPreviewStabilizedStreamCombinations[] = {
// 1 stream combinations
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.RECORD)},
+ new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.s1440p)},
"Stabilized preview, GPU video processing, or no-preview stabilized recording"),
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD)},
+ new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.s1440p)},
"Stabilized preview, GPU video processing, or no-preview stabilized recording"),
//2 stream combinations
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.JPEG, SizeThreshold.MAXIMUM),
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW)},
+ new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.s1440p)},
"Standard JPEG still imaging with stabilized preview"),
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.MAXIMUM),
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW)},
+ new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.s1440p)},
"Standard YUV still imaging with stabilized preview"),
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.MAXIMUM),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.PREVIEW)},
+ new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.s1440p)},
"Standard YUV still imaging with stabilized in-app image processing stream"),
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.JPEG, SizeThreshold.MAXIMUM),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.PREVIEW)},
+ new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.s1440p)},
"Standard JPEG still imaging with stabilized in-app image processing stream"),
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.RECORD),
+ new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.s1440p),
new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW)},
"High-resolution video recording with preview both streams stabilized"),
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.RECORD),
+ new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.s1440p),
new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.PREVIEW)},
"High-resolution video recording with preview both streams stabilized"),
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD),
+ new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.s1440p),
new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.PREVIEW)},
"High-resolution video recording with preview both streams stabilized"),
new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD),
+ new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.s1440p),
new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW)},
"High-resolution video recording with preview both streams stabilized"),
};
@@ -1430,7 +1430,7 @@ public final class MandatoryStreamCombination {
StreamCombinationTemplate []chosenStreamCombinations =
sPreviewStabilizedStreamCombinations;
- if (mIsPreviewStabilizationSupported) {
+ if (!mIsPreviewStabilizationSupported) {
Log.v(TAG, "Device does not support preview stabilization");
return null;
}