summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayant Chowdhary <jchowdhary@google.com>2022-06-17 21:35:10 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-06-17 21:35:10 +0000
commit1d04debfec19b8040de1ffa9b884ac52b8016871 (patch)
tree9150d817651d5785a269a77010a99f775be63e5f
parent750db4071b36d729985de389624369c94bd34a8b (diff)
parentaf5eb53efd1154520d4c3c47f01472e95199b42b (diff)
downloadcts-1d04debfec19b8040de1ffa9b884ac52b8016871.tar.gz
Merge "Increase ITS max preview stabilization tested size from 1080p to s1440p (1920x1440p)" into tm-dev
-rw-r--r--apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java17
-rw-r--r--tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java22
2 files changed, 23 insertions, 16 deletions
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
index 647371dc329..1349767889f 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
@@ -76,7 +76,6 @@ import android.os.HandlerThread;
import android.os.IBinder;
import android.os.SystemClock;
import android.os.Vibrator;
-import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Rational;
import android.util.Size;
@@ -1840,7 +1839,9 @@ public class ItsService extends Service implements SensorEventListener {
return;
}
- Size maxPreviewSize = getMaxPreviewSize();
+ // s1440p which is the max supported stream size in a combination, when preview
+ // stabilization is on.
+ Size maxPreviewSize = new Size(1920, 1440);
Size[] outputSizes = configMap.getOutputSizes(ImageFormat.YUV_420_888);
if (outputSizes == null) {
mSocketRunnableObj.sendResponse("supportedPreviewSizes", "");
@@ -1858,18 +1859,6 @@ public class ItsService extends Service implements SensorEventListener {
mSocketRunnableObj.sendResponse("supportedPreviewSizes", response);
}
- private Size getMaxPreviewSize() {
- // Android guarantees preview resolutions up to 1080p or the screen resolution, whichever
- // is lower.
- Size maxGuaranteedPreviewSize = new Size(1920, 1080);
- DisplayMetrics displayMetrics = getApplicationContext().getResources().getDisplayMetrics();
- if (maxGuaranteedPreviewSize.getHeight() * maxGuaranteedPreviewSize.getWidth()
- < displayMetrics.heightPixels * displayMetrics.widthPixels) {
- return maxGuaranteedPreviewSize;
- }
- return new Size(displayMetrics.widthPixels, displayMetrics.heightPixels);
- }
-
private class MediaCodecListener extends MediaCodec.Callback {
private final MediaMuxer mMediaMuxer;
private final Object mCondition;
diff --git a/tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java b/tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java
index 97d912e4a81..ec92fa6d055 100644
--- a/tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java
@@ -41,6 +41,7 @@ import static android.hardware.camera2.cts.RobustnessTest.MaxStreamSizes.VGA;
import static android.hardware.camera2.cts.RobustnessTest.MaxStreamSizes.YUV;
import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.assertFalse;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.eq;
@@ -373,6 +374,7 @@ public class RobustnessTest extends Camera2AndroidTestCase {
public void testMandatoryPreviewStabilizationOutputCombinations() throws Exception {
for (String id : mCameraIdsUnderTest) {
StaticMetadata info = mAllStaticInfo.get(id);
+ boolean previewStabilizationSupported = isPreviewStabilizationSupported(info);
CameraCharacteristics chars = info.getCharacteristics();
CameraCharacteristics.Key<MandatoryStreamCombination []> ck =
CameraCharacteristics
@@ -380,12 +382,15 @@ public class RobustnessTest extends Camera2AndroidTestCase {
MandatoryStreamCombination[] combinations = chars.get(ck);
if (combinations == null) {
- assertNull(combinations);
+ assertFalse("Preview stabilization supported by camera id: " + id
+ + " but null mandatory streams", previewStabilizationSupported);
Log.i(TAG, "Camera id " + id + " doesn't support preview stabilization, skip test");
continue;
+ } else {
+ assertTrue("Preview stabilization not supported by camera id: " + id
+ + " but non-null mandatory streams", previewStabilizationSupported);
}
- assertNotNull(combinations);
openDevice(id);
try {
@@ -405,6 +410,19 @@ public class RobustnessTest extends Camera2AndroidTestCase {
}
}
+ private boolean isPreviewStabilizationSupported(StaticMetadata info) {
+ int[] availableVideoStabilizationModes = info.getAvailableVideoStabilizationModesChecked();
+ if (availableVideoStabilizationModes == null) {
+ return false;
+ }
+ for (int mode : availableVideoStabilizationModes) {
+ if (mode == CameraMetadata.CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void testMandatoryOutputCombinationWithPresetKeys(String cameraId,
MandatoryStreamCombination combination, CaptureRequest.Builder requestBuilderWithKeys) {
final int TIMEOUT_FOR_RESULT_MS = 1000;