diff --git a/common_video/include/incoming_video_stream.h b/common_video/include/incoming_video_stream.h index 0dcd4efcbf..a779f2c622 100644 --- a/common_video/include/incoming_video_stream.h +++ b/common_video/include/incoming_video_stream.h @@ -19,6 +19,7 @@ #include "common_video/video_render_frames.h" #include "rtc_base/race_checker.h" #include "rtc_base/task_queue.h" +#include "rtc_base/thread_annotations.h" #include "rtc_base/thread_checker.h" namespace webrtc { @@ -37,7 +38,7 @@ class IncomingVideoStream : public rtc::VideoSinkInterface { rtc::ThreadChecker main_thread_checker_; rtc::RaceChecker decoder_race_checker_; - VideoRenderFrames render_buffers_; // Only touched on the TaskQueue. + VideoRenderFrames render_buffers_ RTC_GUARDED_BY(&incoming_render_queue_); rtc::VideoSinkInterface* const callback_; rtc::TaskQueue incoming_render_queue_; }; diff --git a/common_video/incoming_video_stream.cc b/common_video/incoming_video_stream.cc index d1f8beac5b..15c668e78e 100644 --- a/common_video/incoming_video_stream.cc +++ b/common_video/incoming_video_stream.cc @@ -42,7 +42,7 @@ void IncomingVideoStream::OnFrame(const VideoFrame& video_frame) { // into the lambda instead of copying it, but it doesn't work unless we change // OnFrame to take its frame argument by value instead of const reference. incoming_render_queue_.PostTask([this, video_frame = video_frame]() mutable { - RTC_DCHECK(incoming_render_queue_.IsCurrent()); + RTC_DCHECK_RUN_ON(&incoming_render_queue_); if (render_buffers_.AddFrame(std::move(video_frame)) == 1) Dequeue(); }); @@ -50,7 +50,7 @@ void IncomingVideoStream::OnFrame(const VideoFrame& video_frame) { void IncomingVideoStream::Dequeue() { TRACE_EVENT0("webrtc", "IncomingVideoStream::Dequeue"); - RTC_DCHECK(incoming_render_queue_.IsCurrent()); + RTC_DCHECK_RUN_ON(&incoming_render_queue_); absl::optional frame_to_render = render_buffers_.FrameToRender(); if (frame_to_render) callback_->OnFrame(*frame_to_render);