| Index: webrtc/call/call.cc
|
| diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
|
| index 61ed66cf43ac36f274d02fc1dfb1616cded23694..3ad48072776b30d021895b3bc833a70d25f590e8 100644
|
| --- a/webrtc/call/call.cc
|
| +++ b/webrtc/call/call.cc
|
| @@ -44,9 +44,9 @@
|
| #include "webrtc/rtc_base/logging.h"
|
| #include "webrtc/rtc_base/optional.h"
|
| #include "webrtc/rtc_base/ptr_util.h"
|
| +#include "webrtc/rtc_base/sequenced_task_checker.h"
|
| #include "webrtc/rtc_base/task_queue.h"
|
| #include "webrtc/rtc_base/thread_annotations.h"
|
| -#include "webrtc/rtc_base/thread_checker.h"
|
| #include "webrtc/rtc_base/trace_event.h"
|
| #include "webrtc/system_wrappers/include/clock.h"
|
| #include "webrtc/system_wrappers/include/cpu_info.h"
|
| @@ -259,7 +259,7 @@ class Call : public webrtc::Call,
|
| const std::unique_ptr<CallStats> call_stats_;
|
| const std::unique_ptr<BitrateAllocator> bitrate_allocator_;
|
| Call::Config config_;
|
| - rtc::ThreadChecker configuration_thread_checker_;
|
| + rtc::SequencedTaskChecker configuration_sequence_checker_;
|
|
|
| NetworkState audio_network_state_;
|
| NetworkState video_network_state_;
|
| @@ -312,9 +312,9 @@ class Call : public webrtc::Call,
|
|
|
| using RtpStateMap = std::map<uint32_t, RtpState>;
|
| RtpStateMap suspended_audio_send_ssrcs_
|
| - GUARDED_BY(configuration_thread_checker_);
|
| + GUARDED_BY(configuration_sequence_checker_);
|
| RtpStateMap suspended_video_send_ssrcs_
|
| - GUARDED_BY(configuration_thread_checker_);
|
| + GUARDED_BY(configuration_sequence_checker_);
|
|
|
| webrtc::RtcEventLog* event_log_;
|
|
|
| @@ -449,7 +449,7 @@ Call::Call(const Call::Config& config,
|
| }
|
|
|
| Call::~Call() {
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| RTC_CHECK(audio_send_ssrcs_.empty());
|
| RTC_CHECK(video_send_ssrcs_.empty());
|
| @@ -587,14 +587,14 @@ void Call::UpdateReceiveHistograms() {
|
| PacketReceiver* Call::Receiver() {
|
| // TODO(solenberg): Some test cases in EndToEndTest use this from a different
|
| // thread. Re-enable once that is fixed.
|
| - // RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| return this;
|
| }
|
|
|
| webrtc::AudioSendStream* Call::CreateAudioSendStream(
|
| const webrtc::AudioSendStream::Config& config) {
|
| TRACE_EVENT0("webrtc", "Call::CreateAudioSendStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| event_log_->LogAudioSendStreamConfig(CreateRtcLogStreamConfig(config));
|
|
|
| rtc::Optional<RtpState> suspended_rtp_state;
|
| @@ -630,7 +630,7 @@ webrtc::AudioSendStream* Call::CreateAudioSendStream(
|
|
|
| void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
|
| TRACE_EVENT0("webrtc", "Call::DestroyAudioSendStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| RTC_DCHECK(send_stream != nullptr);
|
|
|
| send_stream->Stop();
|
| @@ -660,7 +660,7 @@ void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
|
| webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
|
| const webrtc::AudioReceiveStream::Config& config) {
|
| TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| event_log_->LogAudioReceiveStreamConfig(CreateRtcLogStreamConfig(config));
|
| AudioReceiveStream* receive_stream = new AudioReceiveStream(
|
| &audio_receiver_controller_, transport_send_->packet_router(), config,
|
| @@ -688,7 +688,7 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
|
| void Call::DestroyAudioReceiveStream(
|
| webrtc::AudioReceiveStream* receive_stream) {
|
| TRACE_EVENT0("webrtc", "Call::DestroyAudioReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| RTC_DCHECK(receive_stream != nullptr);
|
| webrtc::internal::AudioReceiveStream* audio_receive_stream =
|
| static_cast<webrtc::internal::AudioReceiveStream*>(receive_stream);
|
| @@ -716,7 +716,7 @@ webrtc::VideoSendStream* Call::CreateVideoSendStream(
|
| webrtc::VideoSendStream::Config config,
|
| VideoEncoderConfig encoder_config) {
|
| TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| video_send_delay_stats_->AddSsrcs(config);
|
| for (size_t ssrc_index = 0; ssrc_index < config.rtp.ssrcs.size();
|
| @@ -752,7 +752,7 @@ webrtc::VideoSendStream* Call::CreateVideoSendStream(
|
| void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) {
|
| TRACE_EVENT0("webrtc", "Call::DestroyVideoSendStream");
|
| RTC_DCHECK(send_stream != nullptr);
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| send_stream->Stop();
|
|
|
| @@ -787,7 +787,7 @@ void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) {
|
| webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream(
|
| webrtc::VideoReceiveStream::Config configuration) {
|
| TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| VideoReceiveStream* receive_stream = new VideoReceiveStream(
|
| &video_receiver_controller_, num_cpu_cores_,
|
| @@ -819,7 +819,7 @@ webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream(
|
| void Call::DestroyVideoReceiveStream(
|
| webrtc::VideoReceiveStream* receive_stream) {
|
| TRACE_EVENT0("webrtc", "Call::DestroyVideoReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| RTC_DCHECK(receive_stream != nullptr);
|
| VideoReceiveStream* receive_stream_impl =
|
| static_cast<VideoReceiveStream*>(receive_stream);
|
| @@ -846,7 +846,7 @@ void Call::DestroyVideoReceiveStream(
|
| FlexfecReceiveStream* Call::CreateFlexfecReceiveStream(
|
| const FlexfecReceiveStream::Config& config) {
|
| TRACE_EVENT0("webrtc", "Call::CreateFlexfecReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| RecoveredPacketReceiver* recovered_packet_receiver = this;
|
|
|
| @@ -879,7 +879,7 @@ FlexfecReceiveStream* Call::CreateFlexfecReceiveStream(
|
|
|
| void Call::DestroyFlexfecReceiveStream(FlexfecReceiveStream* receive_stream) {
|
| TRACE_EVENT0("webrtc", "Call::DestroyFlexfecReceiveStream");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| RTC_DCHECK(receive_stream != nullptr);
|
| {
|
| @@ -901,7 +901,7 @@ void Call::DestroyFlexfecReceiveStream(FlexfecReceiveStream* receive_stream) {
|
| Call::Stats Call::GetStats() const {
|
| // TODO(solenberg): Some test cases in EndToEndTest use this from a different
|
| // thread. Re-enable once that is fixed.
|
| - // RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| Stats stats;
|
| // Fetch available send/receive bitrates.
|
| uint32_t send_bandwidth = 0;
|
| @@ -926,7 +926,7 @@ Call::Stats Call::GetStats() const {
|
| void Call::SetBitrateConfig(
|
| const webrtc::Call::Config::BitrateConfig& bitrate_config) {
|
| TRACE_EVENT0("webrtc", "Call::SetBitrateConfig");
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| RTC_DCHECK_GE(bitrate_config.min_bitrate_bps, 0);
|
| RTC_DCHECK_NE(bitrate_config.start_bitrate_bps, 0);
|
| if (bitrate_config.max_bitrate_bps != -1) {
|
| @@ -950,7 +950,7 @@ void Call::SetBitrateConfig(
|
| void Call::SetBitrateConfigMask(
|
| const webrtc::Call::Config::BitrateConfigMask& mask) {
|
| TRACE_EVENT0("webrtc", "Call::SetBitrateConfigMask");
|
| - RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| bitrate_config_mask_ = mask;
|
| UpdateCurrentBitrateConfig(mask.start_bitrate_bps);
|
| @@ -1005,7 +1005,7 @@ void Call::UpdateCurrentBitrateConfig(const rtc::Optional<int>& new_start) {
|
| }
|
|
|
| void Call::SignalChannelNetworkState(MediaType media, NetworkState state) {
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| switch (media) {
|
| case MediaType::AUDIO:
|
| audio_network_state_ = state;
|
| @@ -1067,7 +1067,7 @@ void Call::OnTransportOverheadChanged(MediaType media,
|
| // TODO(honghaiz): Add tests for this method.
|
| void Call::OnNetworkRouteChanged(const std::string& transport_name,
|
| const rtc::NetworkRoute& network_route) {
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| // Check if the network route is connected.
|
| if (!network_route.connected) {
|
| LOG(LS_INFO) << "Transport " << transport_name << " is disconnected";
|
| @@ -1104,7 +1104,7 @@ void Call::OnNetworkRouteChanged(const std::string& transport_name,
|
| }
|
|
|
| void Call::UpdateAggregateNetworkState() {
|
| - RTC_DCHECK_RUN_ON(&configuration_thread_checker_);
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
|
|
| bool have_audio = false;
|
| bool have_video = false;
|
| @@ -1370,7 +1370,7 @@ PacketReceiver::DeliveryStatus Call::DeliverPacket(
|
| // TODO(solenberg): Tests call this function on a network thread, libjingle
|
| // calls on the worker thread. We should move towards always using a network
|
| // thread. Then this check can be enabled.
|
| - // RTC_DCHECK(!configuration_thread_checker_.CalledOnValidThread());
|
| + // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
|
| if (RtpHeaderParser::IsRtcp(packet, length))
|
| return DeliverRtcp(media_type, packet, length);
|
|
|
|
|