From 3ee0c52634ffaf0439baa06a2c6a46f3b1f446f9 Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Sat, 21 Dec 2019 20:32:04 +0100 Subject: [PATCH] Improve testFrameProcessing_format again --- .../cameraview/engine/CameraIntegrationTest.java | 12 ++++++------ .../cameraview/engine/Camera2Engine.java | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java index ab5560df..3866dd70 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java @@ -1135,18 +1135,17 @@ public abstract class CameraIntegrationTest extends @Retry(emulatorOnly = true) @SdkExclude(maxSdkVersion = 22, emulatorOnly = true) public void testFrameProcessing_format() { - // Add a empty processor before opening. This makes sure that future addFrameProcessor - // calls will not trigger a restartBind() which can cause issues on legacy devices, - // since the setFrameProcessingFormat already triggers one. - camera.addFrameProcessor(new FrameProcessor() { - public void process(@NonNull Frame frame) { } - }); + // We wouldn't need to open/close for each format, but we do because legacy devices can + // crash due to their bad internal implementation when we perform restartBind(). + // And setFrameProcessorFormat can trigger such restart. CameraOptions o = openSync(true); Collection formats = o.getSupportedFrameProcessingFormats(); + closeSync(true); for (int format : formats) { LOG.i("[TEST FRAME FORMAT]", "Testing", format, "..."); Op op = testFrameProcessorFormat(format); assertNotNull(op.await(DELAY)); + closeSync(true); } } @@ -1163,6 +1162,7 @@ public abstract class CameraIntegrationTest extends } } }); + openSync(true); return op; } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java index 5942633d..a315d9e3 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java @@ -665,7 +665,7 @@ public class Camera2Engine extends CameraBaseEngine implements } // Removing the part below for now. It hangs on emulators and can take a lot of time // in real devices, for benefits that I'm not 100% sure about. - if (true) { + if (false) { try { // Preferring abortCaptures() over stopRepeating(): it makes sure that all // in-flight operations are discarded as fast as possible, which is what we want.