summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/camera_device.cpp4
-rw-r--r--src/android/camera_device.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index d3581c70..b29c1edc 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -2009,7 +2009,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
worker_.queueRequest(descriptor.request_.get());
{
- MutexLocker lock(mutex_);
+ MutexLocker descriptorsLock(descriptorsMutex_);
descriptors_[descriptor.request_->cookie()] = std::move(descriptor);
}
@@ -2020,7 +2020,7 @@ void CameraDevice::requestComplete(Request *request)
{
decltype(descriptors_)::node_type node;
{
- MutexLocker lock(mutex_);
+ MutexLocker descriptorsLock(descriptorsMutex_);
auto it = descriptors_.find(request->cookie());
if (it == descriptors_.end()) {
/*
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 117d829e..c949fa50 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -24,6 +24,7 @@
#include "libcamera/internal/buffer.h"
#include "libcamera/internal/log.h"
#include "libcamera/internal/message.h"
+#include "libcamera/internal/thread.h"
#include "camera_metadata.h"
#include "camera_stream.h"
@@ -134,7 +135,7 @@ private:
std::map<int, libcamera::PixelFormat> formatsMap_;
std::vector<CameraStream> streams_;
- std::mutex mutex_; /* Protect descriptors_ */
+ libcamera::Mutex descriptorsMutex_; /* Protects descriptors_. */
std::map<uint64_t, Camera3RequestDescriptor> descriptors_;
std::string maker_;