diff options
author | Jayant Chowdhary <jchowdhary@google.com> | 2022-06-17 21:35:10 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-17 21:35:10 +0000 |
commit | 1d04debfec19b8040de1ffa9b884ac52b8016871 (patch) | |
tree | 9150d817651d5785a269a77010a99f775be63e5f | |
parent | 750db4071b36d729985de389624369c94bd34a8b (diff) | |
parent | af5eb53efd1154520d4c3c47f01472e95199b42b (diff) | |
download | cts-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.java | 17 | ||||
-rw-r--r-- | tests/camera/src/android/hardware/camera2/cts/RobustnessTest.java | 22 |
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; |