diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-10-10 16:17:11 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-10-10 16:17:11 -0700 |
commit | f52309555013e9909b248374f96d22dae29f6454 (patch) | |
tree | 398b985712df6ab64745cf59fbbbc82e7d023774 /services | |
parent | 6f846139d97ad6cccdd2f243ccf3a19036ad12c7 (diff) | |
parent | 907e5651c18d0e25073743a49a685fe1a385939a (diff) | |
download | frameworks_av-f52309555013e9909b248374f96d22dae29f6454.zip frameworks_av-f52309555013e9909b248374f96d22dae29f6454.tar.gz frameworks_av-f52309555013e9909b248374f96d22dae29f6454.tar.bz2 |
am 907e5651: Camera2: Don\'t let unlocks happen during recording.
* commit '907e5651c18d0e25073743a49a685fe1a385939a':
Camera2: Don't let unlocks happen during recording.
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/Camera2Client.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp index cd9da42..0ab4e8c 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(); |