Files
Michael Froman 06e90addc7 Bug 1952339 - Vendor libwebrtc from 995688c8e8
We already cherry-picked this when we vendored f30c044cf9.

Upstream commit: https://webrtc.googlesource.com/src/+/995688c8e85b520d50961486abbe0cc03eae9558
    Revert "more p2p cleanups"

    This reverts commit f30c044cf9bd06f91017c171d98690094ce6d88b.

    Reason for revert: breaks roll to chromium: https://ci.chromium.org/ui/p/chromium/builders/try/mac_chromium_compile_dbg_ng/2290104/overview

    Original change's description:
    > more p2p cleanups
    >
    > Move test code from p2p/base and rtc_base/ into p2p/test/
    > This p2p/base much less crowded and
    > clarifies that the rtc_base/nat* is in fact only test code.
    >
    > BUG=webrtc:0
    >
    > Change-Id: I4d14fae24cb0eff6783962f4b4483b560367ca5d
    > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/378900
    > Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
    > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
    > Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
    > Cr-Commit-Position: refs/heads/main@{#43995}

    Bug: webrtc:0
    Change-Id: I6c79fa85f53fdb9a1dacbe38911771f9a4289c76
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/379040
    Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
    Owners-Override: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#43999}

Differential Revision: https://phabricator.services.mozilla.com/D244009
2025-03-07 16:59:33 -06:00

54 lines
2.1 KiB
Diff

From: Andreas Pehrson <apehrson@mozilla.com>
Date: Mon, 5 Sep 2022 13:56:00 +0000
Subject: Bug 1786502 - Lock access to DeviceInfo devicechange callbacks.
r=webrtc-reviewers,jib
Differential Revision: https://phabricator.services.mozilla.com/D155365
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/e826dfadfe1264c59d9b13e3c17d6f75a40f5c33
---
modules/video_capture/video_capture.h | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/modules/video_capture/video_capture.h b/modules/video_capture/video_capture.h
index 7279bed476..db07580921 100644
--- a/modules/video_capture/video_capture.h
+++ b/modules/video_capture/video_capture.h
@@ -16,6 +16,8 @@
#include "modules/desktop_capture/desktop_capture_types.h"
#include "modules/video_capture/raw_video_sink_interface.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)
@@ -40,15 +42,18 @@ class VideoCaptureModule : public 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);
@@ -102,7 +107,8 @@ class VideoCaptureModule : public RefCountInterface {
virtual ~DeviceInfo() {}
private:
- std::set<VideoInputFeedBack*> _inputCallBacks;
+ Mutex _inputCallbacksMutex;
+ std::set<VideoInputFeedBack*> _inputCallBacks RTC_GUARDED_BY(_inputCallbacksMutex);
};
// Register capture data callback