QCamera2: Restart ZSL preview in longshot if needed
Due to recent buffer count optimizations
ZSL might run with considerably less buffers
during longshot mode. Preview needs to
restart in this case so that the intended
number of buffers could get allocated.
Change-Id: I251ab7fabff46dd9ff322167b3fdbd4a9f8f23ef
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index 39f89e1..1e70149 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -1156,6 +1156,21 @@
rc = m_parent->sendCommand(cmd_payload->cmd,
cmd_payload->arg1,
cmd_payload->arg2);
+ if (CAMERA_CMD_LONGSHOT_ON == cmd_payload->cmd) {
+ if (QCAMERA_SM_EVT_RESTART_PERVIEW == cmd_payload->arg1) {
+ m_parent->stopPreview();
+ // Clear memory pools
+ m_parent->m_memoryPool.clear();
+ // start preview again
+ rc = m_parent->preparePreview();
+ if (rc == NO_ERROR) {
+ rc = m_parent->startPreview();
+ if (rc != NO_ERROR) {
+ m_parent->unpreparePreview();
+ }
+ }
+ }
+ }
result.status = rc;
result.request_api = evt;
result.result_type = QCAMERA_API_RESULT_TYPE_DEF;