From 68733d5982bc905c9668547659d84e75a908a996 Mon Sep 17 00:00:00 2001 From: Jeong-Seok Yang Date: Fri, 21 Jan 2011 21:56:50 +0900 Subject: libcamera: Add lock for recording video bug fix: Flag about recording video was used without locking. So, It was occured a error when recording stops. Change-Id: Ie19ec12d17a5a70e44f5ca8743e8ae5672c16a34 Signed-off-by: Jeong-Seok Yang --- libcamera/SecCameraHWInterface.cpp | 5 +++++ libcamera/SecCameraHWInterface.h | 1 + 2 files changed, 6 insertions(+) (limited to 'libcamera') diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp index 7e36a9d..50d43a0 100644 --- a/libcamera/SecCameraHWInterface.cpp +++ b/libcamera/SecCameraHWInterface.cpp @@ -510,6 +510,7 @@ int CameraHardwareSec::previewThread() mDataCb(CAMERA_MSG_PREVIEW_FRAME, buffer, mCallbackCookie); } + Mutex::Autolock lock(mRecordLock); if (mRecordRunning == true) { index = mSecCamera->getRecordFrame(); if (index < 0) { @@ -684,6 +685,8 @@ status_t CameraHardwareSec::startRecording() { LOGV("%s :", __func__); + Mutex::Autolock lock(mRecordLock); + if (mRecordRunning == false) { if (mSecCamera->startRecord() < 0) { LOGE("ERR(%s):Fail on mSecCamera->startRecord()", __func__); @@ -698,6 +701,8 @@ void CameraHardwareSec::stopRecording() { LOGV("%s :", __func__); + Mutex::Autolock lock(mRecordLock); + if (mRecordRunning == true) { if (mSecCamera->stopRecord() < 0) { LOGE("ERR(%s):Fail on mSecCamera->stopRecord()", __func__); diff --git a/libcamera/SecCameraHWInterface.h b/libcamera/SecCameraHWInterface.h index 724d1bc..75526c6 100644 --- a/libcamera/SecCameraHWInterface.h +++ b/libcamera/SecCameraHWInterface.h @@ -201,6 +201,7 @@ private: int32_t mMsgEnabled; bool mRecordRunning; + mutable Mutex mRecordLock; int mPostViewWidth; int mPostViewHeight; int mPostViewSize; -- cgit v1.1