From efd902cb1d9bbd81247a3e168f2080beae761d78 Mon Sep 17 00:00:00 2001 From: perkj Date: Thu, 14 Jul 2016 02:33:20 -0700 Subject: [PATCH] Revert of Switch to use SequencedTaskChecker instead of ThreadChecker where needed. (patchset #1 id:1 of https://codereview.webrtc.org/2149553002/ ) Reason for revert: Breaks Chrome FYI https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/8187/steps/compile/logs/stdio Original issue's description: > Switch to use SequencedTaskChecker instead of ThreadChecker where needed. > This cl is in preparation for https://codereview.webrtc.org/2060403002/ Add task queue to Call. > In the coming cl the video_sender, and i420_buffer_pool will be used on a task queue and therefore SequencedTaskChecker is needed instead of a ThreadChecker. > > BUG=webrtc:5687 > > Committed: https://crrev.com/ec7cef854d85be2d9fd5b1a4e2c59a67feb662eb > Cr-Commit-Position: refs/heads/master@{#13474} TBR=tommi@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:5687 Review-Url: https://codereview.webrtc.org/2150843003 Cr-Commit-Position: refs/heads/master@{#13475} --- webrtc/common_video/BUILD.gn | 1 - webrtc/common_video/common_video.gyp | 1 - webrtc/common_video/i420_buffer_pool.cc | 6 +++--- webrtc/common_video/include/i420_buffer_pool.h | 4 ++-- webrtc/modules/video_coding/video_coding.gypi | 1 - webrtc/modules/video_coding/video_coding_impl.h | 5 +++-- webrtc/modules/video_coding/video_sender.cc | 10 +++++----- webrtc/video/BUILD.gn | 1 - 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/webrtc/common_video/BUILD.gn b/webrtc/common_video/BUILD.gn index c4edeaf0b1..d8e6bbfe0f 100644 --- a/webrtc/common_video/BUILD.gn +++ b/webrtc/common_video/BUILD.gn @@ -58,7 +58,6 @@ source_set("common_video") { deps = [ "..:webrtc_common", - "../base:rtc_task_queue", "../system_wrappers", ] diff --git a/webrtc/common_video/common_video.gyp b/webrtc/common_video/common_video.gyp index eee0c048e7..b1f460418a 100644 --- a/webrtc/common_video/common_video.gyp +++ b/webrtc/common_video/common_video.gyp @@ -18,7 +18,6 @@ 'libyuv/include', ], 'dependencies': [ - '<(webrtc_root)/base/base.gyp:rtc_task_queue', '<(webrtc_root)/common.gyp:webrtc_common', '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers', ], diff --git a/webrtc/common_video/i420_buffer_pool.cc b/webrtc/common_video/i420_buffer_pool.cc index 7110639e03..bdc0e821c6 100644 --- a/webrtc/common_video/i420_buffer_pool.cc +++ b/webrtc/common_video/i420_buffer_pool.cc @@ -16,17 +16,17 @@ namespace webrtc { I420BufferPool::I420BufferPool(bool zero_initialize) : zero_initialize_(zero_initialize) { - sequenced_checker_.Detach(); + thread_checker_.DetachFromThread(); } void I420BufferPool::Release() { - sequenced_checker_.Detach(); + thread_checker_.DetachFromThread(); buffers_.clear(); } rtc::scoped_refptr I420BufferPool::CreateBuffer(int width, int height) { - RTC_DCHECK(sequenced_checker_.CalledSequentially()); + RTC_DCHECK(thread_checker_.CalledOnValidThread()); // Release buffers with wrong resolution. for (auto it = buffers_.begin(); it != buffers_.end();) { if ((*it)->width() != width || (*it)->height() != height) diff --git a/webrtc/common_video/include/i420_buffer_pool.h b/webrtc/common_video/include/i420_buffer_pool.h index 5c19f3facd..1465ddf4ec 100644 --- a/webrtc/common_video/include/i420_buffer_pool.h +++ b/webrtc/common_video/include/i420_buffer_pool.h @@ -13,7 +13,7 @@ #include -#include "webrtc/base/sequenced_task_checker.h" +#include "webrtc/base/thread_checker.h" #include "webrtc/common_video/include/video_frame_buffer.h" namespace webrtc { @@ -40,7 +40,7 @@ class I420BufferPool { // needed by the pool to check exclusive access. using PooledI420Buffer = rtc::RefCountedObject; - rtc::SequencedTaskChecker sequenced_checker_; + rtc::ThreadChecker thread_checker_; std::list> buffers_; // If true, newly allocated buffers are zero-initialized. Note that recycled // buffers are not zero'd before reuse. This is required of buffers used by diff --git a/webrtc/modules/video_coding/video_coding.gypi b/webrtc/modules/video_coding/video_coding.gypi index 0b682c7d99..602f3686b7 100644 --- a/webrtc/modules/video_coding/video_coding.gypi +++ b/webrtc/modules/video_coding/video_coding.gypi @@ -14,7 +14,6 @@ 'dependencies': [ 'webrtc_h264', 'webrtc_i420', - '../base/base.gyp:rtc_task_queue', '<(webrtc_root)/common_video/common_video.gyp:common_video', '<(webrtc_root)/modules/video_coding/utility/video_coding_utility.gyp:video_coding_utility', '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers', diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h index 40bccf2530..6bafd5ab0f 100644 --- a/webrtc/modules/video_coding/video_coding_impl.h +++ b/webrtc/modules/video_coding/video_coding_impl.h @@ -19,7 +19,7 @@ #include "webrtc/base/onetimeevent.h" #include "webrtc/base/thread_annotations.h" -#include "webrtc/base/sequenced_task_checker.h" +#include "webrtc/base/thread_checker.h" #include "webrtc/common_video/include/frame_callback.h" #include "webrtc/modules/video_coding/codec_database.h" #include "webrtc/modules/video_coding/frame_buffer.h" @@ -108,7 +108,8 @@ class VideoSender : public Module { // Must be accessed on the construction thread of VideoSender. VideoCodec current_codec_; - rtc::SequencedTaskChecker sequenced_checker_; + rtc::ThreadChecker main_thread_; + rtc::CriticalSection params_crit_; EncoderParameters encoder_params_ GUARDED_BY(params_crit_); diff --git a/webrtc/modules/video_coding/video_sender.cc b/webrtc/modules/video_coding/video_sender.cc index f3e2bfe1b6..aecc60cde8 100644 --- a/webrtc/modules/video_coding/video_sender.cc +++ b/webrtc/modules/video_coding/video_sender.cc @@ -43,7 +43,7 @@ VideoSender::VideoSender(Clock* clock, // Allow VideoSender to be created on one thread but used on another, post // construction. This is currently how this class is being used by at least // one external project (diffractor). - sequenced_checker_.Detach(); + main_thread_.DetachFromThread(); } VideoSender::~VideoSender() {} @@ -82,7 +82,7 @@ int64_t VideoSender::TimeUntilNextProcess() { int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec, uint32_t numberOfCores, uint32_t maxPayloadSize) { - RTC_DCHECK(sequenced_checker_.CalledSequentially()); + RTC_DCHECK(main_thread_.CalledOnValidThread()); rtc::CritScope lock(&encoder_crit_); if (sendCodec == nullptr) { return VCM_PARAMETER_ERROR; @@ -150,7 +150,7 @@ int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec, void VideoSender::RegisterExternalEncoder(VideoEncoder* externalEncoder, uint8_t payloadType, bool internalSource /*= false*/) { - RTC_DCHECK(sequenced_checker_.CalledSequentially()); + RTC_DCHECK(main_thread_.CalledOnValidThread()); rtc::CritScope lock(&encoder_crit_); @@ -172,7 +172,7 @@ void VideoSender::RegisterExternalEncoder(VideoEncoder* externalEncoder, // Get encode bitrate int VideoSender::Bitrate(unsigned int* bitrate) const { - RTC_DCHECK(sequenced_checker_.CalledSequentially()); + RTC_DCHECK(main_thread_.CalledOnValidThread()); // Since we're running on the thread that's the only thread known to modify // the value of _encoder, we don't need to grab the lock here. @@ -184,7 +184,7 @@ int VideoSender::Bitrate(unsigned int* bitrate) const { // Get encode frame rate int VideoSender::FrameRate(unsigned int* framerate) const { - RTC_DCHECK(sequenced_checker_.CalledSequentially()); + RTC_DCHECK(main_thread_.CalledOnValidThread()); // Since we're running on the thread that's the only thread known to modify // the value of _encoder, we don't need to grab the lock here. diff --git a/webrtc/video/BUILD.gn b/webrtc/video/BUILD.gn index 1f116bf239..6b623d518a 100644 --- a/webrtc/video/BUILD.gn +++ b/webrtc/video/BUILD.gn @@ -100,7 +100,6 @@ if (rtc_include_tests) { "video_send_stream_tests.cc", "vie_remb_unittest.cc", ] - configs += [ "..:common_config" ] deps = [ ":video", "//testing/gmock",