diff options
author | Markus Handell <handellm@webrtc.org> | 2020-07-13 13:09:15 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-13 12:22:08 +0000 |
commit | 4379a7db1f684e57503863baf7e8b5258cc725b8 (patch) | |
tree | e35cdc9c947d3538ea91c8bb41a965fe9a50f519 /modules | |
parent | 30c8eaa1dc53e39867a7b03fd6a2ce66a32047de (diff) | |
download | webrtc-4379a7db1f684e57503863baf7e8b5258cc725b8.tar.gz |
Reland "Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex."
This is a reland of 44dd3d743517fe85212ba4f68bda1e78c2e6d7ec
Original change's description:
> Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex.
>
> Bug: webrtc:11567
> Change-Id: I7bfca17f91bf44151148f863480ce77804d53a04
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178805
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31681}
Bug: webrtc:11567
Change-Id: I03a32cb7194cffb9e678355c4af4d370b39384b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179093
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31716}
Diffstat (limited to 'modules')
-rw-r--r-- | modules/desktop_capture/BUILD.gn | 1 | ||||
-rw-r--r-- | modules/desktop_capture/mac/desktop_configuration_monitor.cc | 6 | ||||
-rw-r--r-- | modules/desktop_capture/mac/desktop_configuration_monitor.h | 4 | ||||
-rw-r--r-- | modules/video_capture/BUILD.gn | 3 | ||||
-rw-r--r-- | modules/video_capture/linux/video_capture_linux.cc | 8 | ||||
-rw-r--r-- | modules/video_capture/linux/video_capture_linux.h | 6 | ||||
-rw-r--r-- | modules/video_capture/test/video_capture_unittest.cc | 18 | ||||
-rw-r--r-- | modules/video_capture/video_capture_impl.cc | 8 | ||||
-rw-r--r-- | modules/video_capture/video_capture_impl.h | 4 | ||||
-rw-r--r-- | modules/video_capture/windows/video_capture_ds.cc | 4 |
10 files changed, 33 insertions, 29 deletions
diff --git a/modules/desktop_capture/BUILD.gn b/modules/desktop_capture/BUILD.gn index c9314368c5..eb26f5c7bb 100644 --- a/modules/desktop_capture/BUILD.gn +++ b/modules/desktop_capture/BUILD.gn @@ -480,6 +480,7 @@ rtc_library("desktop_capture_generic") { "../../api:scoped_refptr", "../../rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806. "../../rtc_base:checks", + "../../rtc_base/synchronization:mutex", "../../rtc_base/synchronization:rw_lock_wrapper", "../../rtc_base/system:arch", "../../rtc_base/system:rtc_export", diff --git a/modules/desktop_capture/mac/desktop_configuration_monitor.cc b/modules/desktop_capture/mac/desktop_configuration_monitor.cc index e2225cd4a9..048a679ecc 100644 --- a/modules/desktop_capture/mac/desktop_configuration_monitor.cc +++ b/modules/desktop_capture/mac/desktop_configuration_monitor.cc @@ -21,7 +21,7 @@ DesktopConfigurationMonitor::DesktopConfigurationMonitor() { DesktopConfigurationMonitor::DisplaysReconfiguredCallback, this); if (err != kCGErrorSuccess) RTC_LOG(LS_ERROR) << "CGDisplayRegisterReconfigurationCallback " << err; - rtc::CritScope cs(&desktop_configuration_lock_); + MutexLock lock(&desktop_configuration_lock_); desktop_configuration_ = MacDesktopConfiguration::GetCurrent( MacDesktopConfiguration::TopLeftOrigin); } @@ -34,7 +34,7 @@ DesktopConfigurationMonitor::~DesktopConfigurationMonitor() { } MacDesktopConfiguration DesktopConfigurationMonitor::desktop_configuration() { - rtc::CritScope crit(&desktop_configuration_lock_); + MutexLock lock(&desktop_configuration_lock_); return desktop_configuration_; } @@ -64,7 +64,7 @@ void DesktopConfigurationMonitor::DisplaysReconfigured( reconfiguring_displays_.erase(display); if (reconfiguring_displays_.empty()) { - rtc::CritScope cs(&desktop_configuration_lock_); + MutexLock lock(&desktop_configuration_lock_); desktop_configuration_ = MacDesktopConfiguration::GetCurrent( MacDesktopConfiguration::TopLeftOrigin); } diff --git a/modules/desktop_capture/mac/desktop_configuration_monitor.h b/modules/desktop_capture/mac/desktop_configuration_monitor.h index 1ed4c6bbcf..46a66d1d4c 100644 --- a/modules/desktop_capture/mac/desktop_configuration_monitor.h +++ b/modules/desktop_capture/mac/desktop_configuration_monitor.h @@ -19,7 +19,7 @@ #include "api/ref_counted_base.h" #include "modules/desktop_capture/mac/desktop_configuration.h" #include "rtc_base/constructor_magic.h" -#include "rtc_base/critical_section.h" +#include "rtc_base/synchronization/mutex.h" namespace webrtc { @@ -41,7 +41,7 @@ class DesktopConfigurationMonitor : public rtc::RefCountedBase { void DisplaysReconfigured(CGDirectDisplayID display, CGDisplayChangeSummaryFlags flags); - rtc::CriticalSection desktop_configuration_lock_; + Mutex desktop_configuration_lock_; MacDesktopConfiguration desktop_configuration_ RTC_GUARDED_BY(&desktop_configuration_lock_); std::set<CGDirectDisplayID> reconfiguring_displays_; diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn index f73472617c..b4e8372620 100644 --- a/modules/video_capture/BUILD.gn +++ b/modules/video_capture/BUILD.gn @@ -36,6 +36,7 @@ rtc_library("video_capture_module") { "../../media:rtc_media_base", "../../rtc_base:rtc_base_approved", "../../rtc_base:stringutils", + "../../rtc_base/synchronization:mutex", "../../rtc_base/synchronization:rw_lock_wrapper", "../../system_wrappers", "//third_party/libyuv", @@ -51,6 +52,7 @@ if (!build_with_chromium) { "../../api:scoped_refptr", "../../rtc_base:checks", "../../rtc_base:rtc_base_approved", + "../../rtc_base/synchronization:mutex", "../../system_wrappers", ] @@ -129,6 +131,7 @@ if (!build_with_chromium) { "../../api/video:video_rtp_headers", "../../common_video", "../../rtc_base:rtc_base_approved", + "../../rtc_base/synchronization:mutex", "../../system_wrappers", "../../test:frame_utils", "../../test:test_main", diff --git a/modules/video_capture/linux/video_capture_linux.cc b/modules/video_capture/linux/video_capture_linux.cc index 30865235b6..504565f512 100644 --- a/modules/video_capture/linux/video_capture_linux.cc +++ b/modules/video_capture/linux/video_capture_linux.cc @@ -115,7 +115,7 @@ int32_t VideoCaptureModuleV4L2::StartCapture( } } - rtc::CritScope cs(&_captureCritSect); + MutexLock lock(&capture_lock_); // first open /dev/video device char device[20]; sprintf(device, "/dev/video%d", (int)_deviceId); @@ -264,7 +264,7 @@ int32_t VideoCaptureModuleV4L2::StartCapture( int32_t VideoCaptureModuleV4L2::StopCapture() { if (_captureThread) { { - rtc::CritScope cs(&_captureCritSect); + MutexLock lock(&capture_lock_); quit_ = true; } // Make sure the capture thread stop stop using the critsect. @@ -272,7 +272,7 @@ int32_t VideoCaptureModuleV4L2::StopCapture() { _captureThread.reset(); } - rtc::CritScope cs(&_captureCritSect); + MutexLock lock(&capture_lock_); if (_captureStarted) { _captureStarted = false; @@ -387,7 +387,7 @@ bool VideoCaptureModuleV4L2::CaptureProcess() { } { - rtc::CritScope cs(&_captureCritSect); + MutexLock lock(&capture_lock_); if (quit_) { return false; diff --git a/modules/video_capture/linux/video_capture_linux.h b/modules/video_capture/linux/video_capture_linux.h index ac9409e23a..ddb5d5ba87 100644 --- a/modules/video_capture/linux/video_capture_linux.h +++ b/modules/video_capture/linux/video_capture_linux.h @@ -18,8 +18,8 @@ #include "modules/video_capture/video_capture_defines.h" #include "modules/video_capture/video_capture_impl.h" -#include "rtc_base/critical_section.h" #include "rtc_base/platform_thread.h" +#include "rtc_base/synchronization/mutex.h" namespace webrtc { namespace videocapturemodule { @@ -43,8 +43,8 @@ class VideoCaptureModuleV4L2 : public VideoCaptureImpl { // TODO(pbos): Stop using unique_ptr and resetting the thread. std::unique_ptr<rtc::PlatformThread> _captureThread; - rtc::CriticalSection _captureCritSect; - bool quit_ RTC_GUARDED_BY(_captureCritSect); + Mutex capture_lock_; + bool quit_ RTC_GUARDED_BY(capture_lock_); int32_t _deviceId; int32_t _deviceFd; diff --git a/modules/video_capture/test/video_capture_unittest.cc b/modules/video_capture/test/video_capture_unittest.cc index be443e0820..1a0cf2d5da 100644 --- a/modules/video_capture/test/video_capture_unittest.cc +++ b/modules/video_capture/test/video_capture_unittest.cc @@ -23,7 +23,7 @@ #include "common_video/libyuv/include/webrtc_libyuv.h" #include "modules/utility/include/process_thread.h" #include "modules/video_capture/video_capture_factory.h" -#include "rtc_base/critical_section.h" +#include "rtc_base/synchronization/mutex.h" #include "rtc_base/time_utils.h" #include "system_wrappers/include/sleep.h" #include "test/frame_utils.h" @@ -74,7 +74,7 @@ class TestVideoCaptureCallback } void OnFrame(const webrtc::VideoFrame& videoFrame) override { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); int height = videoFrame.height(); int width = videoFrame.width(); #if defined(WEBRTC_ANDROID) && WEBRTC_ANDROID @@ -106,38 +106,38 @@ class TestVideoCaptureCallback } void SetExpectedCapability(VideoCaptureCapability capability) { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); capability_ = capability; incoming_frames_ = 0; last_render_time_ms_ = 0; } int incoming_frames() { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); return incoming_frames_; } int timing_warnings() { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); return timing_warnings_; } VideoCaptureCapability capability() { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); return capability_; } bool CompareLastFrame(const webrtc::VideoFrame& frame) { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); return webrtc::test::FrameBufsEqual(last_frame_, frame.video_frame_buffer()); } void SetExpectedCaptureRotation(webrtc::VideoRotation rotation) { - rtc::CritScope cs(&capture_cs_); + webrtc::MutexLock lock(&capture_lock_); rotate_frame_ = rotation; } private: - rtc::CriticalSection capture_cs_; + webrtc::Mutex capture_lock_; VideoCaptureCapability capability_; int64_t last_render_time_ms_; int incoming_frames_; diff --git a/modules/video_capture/video_capture_impl.cc b/modules/video_capture/video_capture_impl.cc index 9d53a91157..6619d15924 100644 --- a/modules/video_capture/video_capture_impl.cc +++ b/modules/video_capture/video_capture_impl.cc @@ -96,12 +96,12 @@ VideoCaptureImpl::~VideoCaptureImpl() { void VideoCaptureImpl::RegisterCaptureDataCallback( rtc::VideoSinkInterface<VideoFrame>* dataCallBack) { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); _dataCallBack = dataCallBack; } void VideoCaptureImpl::DeRegisterCaptureDataCallback() { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); _dataCallBack = NULL; } int32_t VideoCaptureImpl::DeliverCapturedFrame(VideoFrame& captureFrame) { @@ -118,7 +118,7 @@ int32_t VideoCaptureImpl::IncomingFrame(uint8_t* videoFrame, size_t videoFrameLength, const VideoCaptureCapability& frameInfo, int64_t captureTime /*=0*/) { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); const int32_t width = frameInfo.width; const int32_t height = frameInfo.height; @@ -223,7 +223,7 @@ int32_t VideoCaptureImpl::CaptureSettings( } int32_t VideoCaptureImpl::SetCaptureRotation(VideoRotation rotation) { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); _rotateFrame = rotation; return 0; } diff --git a/modules/video_capture/video_capture_impl.h b/modules/video_capture/video_capture_impl.h index 197bfd387c..cbc99b76c1 100644 --- a/modules/video_capture/video_capture_impl.h +++ b/modules/video_capture/video_capture_impl.h @@ -25,7 +25,7 @@ #include "modules/video_capture/video_capture.h" #include "modules/video_capture/video_capture_config.h" #include "modules/video_capture/video_capture_defines.h" -#include "rtc_base/critical_section.h" +#include "rtc_base/synchronization/mutex.h" namespace webrtc { @@ -78,7 +78,7 @@ class VideoCaptureImpl : public VideoCaptureModule { ~VideoCaptureImpl() override; char* _deviceUniqueId; // current Device unique name; - rtc::CriticalSection _apiCs; + Mutex api_lock_; VideoCaptureCapability _requestedCapability; // Should be set by platform // dependent code in // StartCapture. diff --git a/modules/video_capture/windows/video_capture_ds.cc b/modules/video_capture/windows/video_capture_ds.cc index 615a1b56ea..6dca74750c 100644 --- a/modules/video_capture/windows/video_capture_ds.cc +++ b/modules/video_capture/windows/video_capture_ds.cc @@ -130,7 +130,7 @@ int32_t VideoCaptureDS::Init(const char* deviceUniqueIdUTF8) { } int32_t VideoCaptureDS::StartCapture(const VideoCaptureCapability& capability) { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); if (capability != _requestedCapability) { DisconnectGraph(); @@ -148,7 +148,7 @@ int32_t VideoCaptureDS::StartCapture(const VideoCaptureCapability& capability) { } int32_t VideoCaptureDS::StopCapture() { - rtc::CritScope cs(&_apiCs); + MutexLock lock(&api_lock_); HRESULT hr = _mediaControl->Pause(); if (FAILED(hr)) { |