From f91dd78edfa6409b1d21dcfccf9246b50128b0f4 Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Fri, 13 Dec 2019 18:41:13 +0100 Subject: [PATCH] Remove video snapshot tests from API22 --- .../cameraview/engine/CameraIntegrationTest.java | 4 ++++ .../cameraview/video/FullVideoRecorder.java | 11 +++++++++-- .../cameraview/video/SnapshotVideoRecorder.java | 12 ++++++++++++ 3 files changed, 25 insertions(+), 2 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 710533de..39eb8a28 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/engine/CameraIntegrationTest.java @@ -624,6 +624,7 @@ public abstract class CameraIntegrationTest extends Base @Test @Retry(emulatorOnly = true) + @SdkExclude(maxSdkVersion = 22, emulatorOnly = true) public void testStartEndVideoSnapshot() { // TODO should check api level for snapshot? openSync(true); @@ -654,6 +655,7 @@ public abstract class CameraIntegrationTest extends Base @Test @Retry(emulatorOnly = true) + @SdkExclude(maxSdkVersion = 22, emulatorOnly = true) public void testStartEndVideoSnapshot_withManualStop() { openSync(true); takeVideoSnapshotSync(true); @@ -697,6 +699,7 @@ public abstract class CameraIntegrationTest extends Base @Test @Retry(emulatorOnly = true) + @SdkExclude(maxSdkVersion = 22, emulatorOnly = true) public void testEndVideoSnapshot_withMaxSize() { openSync(true); camera.setSnapshotMaxWidth(480); @@ -725,6 +728,7 @@ public abstract class CameraIntegrationTest extends Base @Test @Retry(emulatorOnly = true) + @SdkExclude(maxSdkVersion = 22, emulatorOnly = true) public void testEndVideoSnapshot_withMaxDuration() { camera.setVideoMaxDuration(4000); openSync(true); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java index 2bd16001..7322d0f7 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java @@ -157,8 +157,15 @@ public abstract class FullVideoRecorder extends VideoRecorder { LOG.i("prepareMediaRecorder:", "Checking DeviceEncoders...", "videoOffset:", videoEncoderOffset, "audioOffset:", audioEncoderOffset); - DeviceEncoders encoders = new DeviceEncoders(DeviceEncoders.MODE_RESPECT_ORDER, - videoType, audioType, videoEncoderOffset, audioEncoderOffset); + DeviceEncoders encoders; + try { + encoders = new DeviceEncoders(DeviceEncoders.MODE_RESPECT_ORDER, + videoType, audioType, videoEncoderOffset, audioEncoderOffset); + } catch (RuntimeException e) { + LOG.w("prepareMediaRecorder:", "Could not respect encoders parameters.", + "Trying again without checking encoders."); + return prepareMediaRecorder(stub, false); + } try { newVideoSize = encoders.getSupportedVideoSize(stub.size); newVideoBitRate = encoders.getSupportedVideoBitRate(stub.videoBitRate); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java index 8fc7dc2f..b702dbf8 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java @@ -173,6 +173,18 @@ public class SnapshotVideoRecorder extends VideoRecorder implements RendererFram LOG.i("Checking DeviceEncoders...", "videoOffset:", videoEncoderOffset, "audioOffset:", audioEncoderOffset); + try { + deviceEncoders = new DeviceEncoders(DeviceEncoders.MODE_RESPECT_ORDER, + videoType, audioType, videoEncoderOffset, audioEncoderOffset); + } catch (RuntimeException e) { + LOG.w("Could not respect encoders parameters.", + "Going on again without checking encoders, possibly failing."); + newVideoSize = mResult.size; + newVideoBitRate = mResult.videoBitRate; + newVideoFrameRate = mResult.videoFrameRate; + newAudioBitRate = mResult.audioBitRate; + break; + } deviceEncoders = new DeviceEncoders(DeviceEncoders.MODE_PREFER_HARDWARE, videoType, audioType, videoEncoderOffset, audioEncoderOffset); try {