[tbb-commits] [tor-browser] 08/09: Bug 1786502 - Lock access to DeviceInfo devicechange callbacks. r=webrtc-reviewers, jib a=RyanVM
gitolite role
git at cupani.torproject.org
Thu Sep 22 19:17:14 UTC 2022
This is an automated email from the git hooks/post-receive script.
richard pushed a commit to branch tor-browser-91.13.0esr-11.5-1
in repository tor-browser.
commit 1b2bdfec0911435074f8e3d5f360c886c195c2f2
Author: Andreas Pehrson <apehrson at mozilla.com>
AuthorDate: Mon Sep 5 13:56:11 2022 +0000
Bug 1786502 - Lock access to DeviceInfo devicechange callbacks. r=webrtc-reviewers,jib a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D155365
---
dom/media/systemservices/CamerasParent.h | 2 +-
.../libwebrtc/webrtc/modules/video_capture/video_capture.h | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dom/media/systemservices/CamerasParent.h b/dom/media/systemservices/CamerasParent.h
index adf85e176eb7..d29664d1c458 100644
--- a/dom/media/systemservices/CamerasParent.h
+++ b/dom/media/systemservices/CamerasParent.h
@@ -62,7 +62,7 @@ class InputObserver : public webrtc::VideoInputFeedBack {
private:
~InputObserver() = default;
- RefPtr<CamerasParent> mParent;
+ const RefPtr<CamerasParent> mParent;
};
class CamerasParent final : public PCamerasParent,
diff --git a/third_party/libwebrtc/webrtc/modules/video_capture/video_capture.h b/third_party/libwebrtc/webrtc/modules/video_capture/video_capture.h
index 11c880baa772..2ae33fba98a8 100644
--- a/third_party/libwebrtc/webrtc/modules/video_capture/video_capture.h
+++ b/third_party/libwebrtc/webrtc/modules/video_capture/video_capture.h
@@ -16,6 +16,8 @@
#include "media/base/videosinkinterface.h"
#include "modules/include/module.h"
#include "modules/video_capture/video_capture_defines.h"
+#include "rtc_base/synchronization/mutex.h"
+#include "rtc_base/thread_annotations.h"
#include <set>
#if defined(ANDROID)
@@ -81,15 +83,18 @@ class VideoCaptureModule: public rtc::RefCountInterface {
virtual uint32_t NumberOfDevices() = 0;
virtual int32_t Refresh() = 0;
virtual void DeviceChange() {
+ MutexLock lock(&_inputCallbacksMutex);
for (auto inputCallBack : _inputCallBacks) {
inputCallBack->OnDeviceChange();
}
}
virtual void RegisterVideoInputFeedBack(VideoInputFeedBack* callBack) {
+ MutexLock lock(&_inputCallbacksMutex);
_inputCallBacks.insert(callBack);
}
virtual void DeRegisterVideoInputFeedBack(VideoInputFeedBack* callBack) {
+ MutexLock lock(&_inputCallbacksMutex);
auto it = _inputCallBacks.find(callBack);
if (it != _inputCallBacks.end()) {
_inputCallBacks.erase(it);
@@ -147,7 +152,8 @@ class VideoCaptureModule: public rtc::RefCountInterface {
virtual ~DeviceInfo() {}
private:
- std::set<VideoInputFeedBack*> _inputCallBacks;
+ Mutex _inputCallbacksMutex;
+ std::set<VideoInputFeedBack*> _inputCallBacks RTC_GUARDED_BY(_inputCallbacksMutex);
};
// Register capture data callback
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tbb-commits
mailing list