diff options
-rw-r--r-- | services/camera/libcameraservice/Camera2Client.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp index 0ab4e8cd..72906637 100644 --- a/services/camera/libcameraservice/Camera2Client.cpp +++ b/services/camera/libcameraservice/Camera2Client.cpp @@ -611,10 +611,13 @@ status_t Camera2Client::startPreviewL(Parameters ¶ms, bool restart) { ALOGV("%s: state == %d, restart = %d", __FUNCTION__, params.state, restart); - if (params.state == Parameters::PREVIEW && !restart) { - // Succeed attempt to re-enter preview state - ALOGI("%s: Not starting preview; already in preview state.", - __FUNCTION__); + if ( (params.state == Parameters::PREVIEW || + params.state == Parameters::RECORD || + params.state == Parameters::VIDEO_SNAPSHOT) + && !restart) { + // Succeed attempt to re-enter a streaming state + ALOGI("%s: Camera %d: Preview already active, ignoring restart", + __FUNCTION__, mCameraId); return OK; } if (params.state > Parameters::PREVIEW && !restart) { |