diff --git a/modules/video_capture/linux/video_capture_pipewire.cc b/modules/video_capture/linux/video_capture_pipewire.cc index c448e94385..bb1babd7af 100644 --- a/modules/video_capture/linux/video_capture_pipewire.cc +++ b/modules/video_capture/linux/video_capture_pipewire.cc @@ -177,6 +177,8 @@ int32_t VideoCaptureModulePipeWire::StopCapture() { } bool VideoCaptureModulePipeWire::CaptureStarted() { + MutexLock lock(&api_lock_); + return started_; } @@ -294,6 +296,7 @@ void VideoCaptureModulePipeWire::OnStreamStateChanged( static_cast(data); RTC_DCHECK(that); + MutexLock lock(&that->api_lock_); switch (state) { case PW_STREAM_STATE_STREAMING: that->started_ = true; diff --git a/modules/video_capture/linux/video_capture_pipewire.h b/modules/video_capture/linux/video_capture_pipewire.h index 5ce02d1adf..2cd6cca34b 100644 --- a/modules/video_capture/linux/video_capture_pipewire.h +++ b/modules/video_capture/linux/video_capture_pipewire.h @@ -46,7 +46,7 @@ class VideoCaptureModulePipeWire : public VideoCaptureImpl { rtc::scoped_refptr session_; int node_id_; VideoCaptureCapability configured_capability_; - bool started_; + bool started_ RTC_GUARDED_BY(api_lock_); struct pw_stream* stream_; struct spa_hook stream_listener_;