From 7f17a7e487681099b13080d0bf98c7a88adef944 Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Wed, 14 Aug 2019 18:50:09 +0200 Subject: [PATCH] Add comments --- .../otaliastudios/cameraview/engine/Camera2Engine.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 2bff887e..5e928f2d 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java @@ -727,9 +727,12 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv @Override protected void onStopVideo() { - boolean wasRecordingFullVideo = mVideoRecorder instanceof Full2VideoRecorder; - if (wasRecordingFullVideo) { - // We have to stop all repeating requests and restart them. + // When video ends, we have to restart the repeating request for TEMPLATE_PREVIEW, + // this time without the video recorder surface. We do this before stopping the + // recorder. If we stop first, the camera will try to fill an "abandoned" Surface + // and, on some devices with a poor internal implementation, this crashes. See #549 + boolean isFullVideo = mVideoRecorder instanceof Full2VideoRecorder; + if (isFullVideo) { try { createRepeatingRequestBuilder(CameraDevice.TEMPLATE_PREVIEW); addRepeatingRequestBuilderSurfaces();