diff --git a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp index 1ee216fd9a..a9b2e7550e 100644 --- a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp +++ b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp @@ -553,9 +553,11 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardCapture( return DONE; } - if (l.mParameters.isDeviceZslSupported) { + if ((l.mParameters.isDeviceZslSupported) && (l.mParameters.state != Parameters::RECORD) && + (l.mParameters.state != Parameters::VIDEO_SNAPSHOT)) { // If device ZSL is supported, drop all pending preview buffers to reduce the chance of // rendering preview frames newer than the still frame. + // Additionally, preview must not get interrupted during video recording. client->getCameraDevice()->dropStreamBuffers(true, client->getPreviewStreamId()); }