diff options
Diffstat (limited to 'libcamera')
-rw-r--r-- | libcamera/SecCameraHWInterface.cpp | 5 | ||||
-rw-r--r-- | libcamera/SecCameraHWInterface.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp index 85e0c01..fcd8390 100644 --- a/libcamera/SecCameraHWInterface.cpp +++ b/libcamera/SecCameraHWInterface.cpp @@ -515,6 +515,7 @@ int CameraHardwareSec::previewThread() mDataCb(CAMERA_MSG_PREVIEW_FRAME, buffer, mCallbackCookie); } + Mutex::Autolock lock(mRecordLock); if (mRecordRunning == true) { index = mSecCamera->getRecordFrame(); if (index < 0) { @@ -689,6 +690,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__); @@ -703,6 +706,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 150de62..e309ae5 100644 --- a/libcamera/SecCameraHWInterface.h +++ b/libcamera/SecCameraHWInterface.h @@ -202,6 +202,7 @@ private: int32_t mMsgEnabled; bool mRecordRunning; + mutable Mutex mRecordLock; int mPostViewWidth; int mPostViewHeight; int mPostViewSize; |