Camera2: fix testPreviewFpsRange size selection issue
When picking up the preview size for a fps range, we need consider the
min frame duration.
Bug: 29401405
Change-Id: I263e02fe47e71534f74112b414e2307d1ff17950
diff --git a/tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java b/tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
index a367d37..3c762cf 100644
--- a/tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/SurfaceViewPreviewTest.java
@@ -451,17 +451,18 @@
* validated.
*/
private void previewFpsRangeTestByCamera() throws Exception {
- Size maxPreviewSz = mOrderedPreviewSizes.get(0);
+ Size maxPreviewSz;
Range<Integer>[] fpsRanges = mStaticInfo.getAeAvailableTargetFpsRangesChecked();
boolean antiBandingOffIsSupported = mStaticInfo.isAntiBandingOffModeSupported();
Range<Integer> fpsRange;
CaptureRequest.Builder requestBuilder =
mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
- startPreview(requestBuilder, maxPreviewSz, resultListener);
for (int i = 0; i < fpsRanges.length; i += 1) {
fpsRange = fpsRanges[i];
+ maxPreviewSz = getMaxPreviewSizeForFpsRange(fpsRange);
+ startPreview(requestBuilder, maxPreviewSz, resultListener);
requestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, fpsRange);
// Turn off auto antibanding to avoid exposure time and frame duration interference
@@ -482,9 +483,9 @@
verifyPreviewTargetFpsRange(resultListener, NUM_FRAMES_VERIFIED, fpsRange,
maxPreviewSz);
+ stopPreview();
+ resultListener.drain();
}
-
- stopPreview();
}
private void verifyPreviewTargetFpsRange(SimpleCaptureCallback resultListener,