From 907e5651c18d0e25073743a49a685fe1a385939a Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Wed, 10 Oct 2012 15:28:53 -0700 Subject: [PATCH] Camera2: Don't let unlocks happen during recording. Bug: 7309020 Change-Id: I6e66809b868d2e8f47f71e6f8752b44ec06dfb17 --- services/camera/libcameraservice/Camera2Client.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp index cd9da42d28..0ab4e8cd9a 100644 --- a/services/camera/libcameraservice/Camera2Client.cpp +++ b/services/camera/libcameraservice/Camera2Client.cpp @@ -454,9 +454,13 @@ status_t Camera2Client::unlock() { ALOGV("%s: Camera %d: Unlock call from pid %d; current client pid %d", __FUNCTION__, mCameraId, getCallingPid(), mClientPid); - // TODO: Check for uninterruptable conditions - if (mClientPid == getCallingPid()) { + SharedParameters::Lock l(mParameters); + if (l.mParameters.state == Parameters::RECORD || + l.mParameters.state == Parameters::VIDEO_SNAPSHOT) { + ALOGD("Not allowed to unlock camera during recording."); + return INVALID_OPERATION; + } mClientPid = 0; mCameraClient.clear(); mSharedCameraClient.clear(); -- 2.11.0