From 4a5c85500810da7de0af0f1020c5af7894696f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Wed, 16 Dec 2020 16:30:01 +0100 Subject: [PATCH] Add thread annotation to IncomingVideoStream Bug: None Change-Id: I16426ce4fbd9afd59e00fb2ce06abfaba4d5c4de Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/197980 Reviewed-by: Stefan Holmer Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#32945} --- common_video/include/incoming_video_stream.h | 3 ++- common_video/incoming_video_stream.cc | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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);