Add thread accessors to Call.
Classes associated with the Call instance, need access to these threads and/or awareness, for checking for thread correctness. Bug: webrtc:11993 Change-Id: I93bcee0657875f211be2ec959b96f818fa9fd8a0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215584 Reviewed-by: Markus Handell <handellm@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33772}
This commit is contained in:

committed by
Commit Bot

parent
bddebc8b03
commit
e984aa2e58
11
call/call.cc
11
call/call.cc
@ -292,6 +292,9 @@ class Call final : public webrtc::Call,
|
|||||||
|
|
||||||
const WebRtcKeyValueConfig& trials() const override;
|
const WebRtcKeyValueConfig& trials() const override;
|
||||||
|
|
||||||
|
TaskQueueBase* network_thread() const override;
|
||||||
|
TaskQueueBase* worker_thread() const override;
|
||||||
|
|
||||||
// Implements PacketReceiver.
|
// Implements PacketReceiver.
|
||||||
DeliveryStatus DeliverPacket(MediaType media_type,
|
DeliveryStatus DeliverPacket(MediaType media_type,
|
||||||
rtc::CopyOnWriteBuffer packet,
|
rtc::CopyOnWriteBuffer packet,
|
||||||
@ -1164,6 +1167,14 @@ const WebRtcKeyValueConfig& Call::trials() const {
|
|||||||
return *config_.trials;
|
return *config_.trials;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskQueueBase* Call::network_thread() const {
|
||||||
|
return network_thread_;
|
||||||
|
}
|
||||||
|
|
||||||
|
TaskQueueBase* Call::worker_thread() const {
|
||||||
|
return worker_thread_;
|
||||||
|
}
|
||||||
|
|
||||||
void Call::SignalChannelNetworkState(MediaType media, NetworkState state) {
|
void Call::SignalChannelNetworkState(MediaType media, NetworkState state) {
|
||||||
RTC_DCHECK_RUN_ON(network_thread_);
|
RTC_DCHECK_RUN_ON(network_thread_);
|
||||||
RTC_DCHECK(media == MediaType::AUDIO || media == MediaType::VIDEO);
|
RTC_DCHECK(media == MediaType::AUDIO || media == MediaType::VIDEO);
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
#include "api/adaptation/resource.h"
|
#include "api/adaptation/resource.h"
|
||||||
#include "api/media_types.h"
|
#include "api/media_types.h"
|
||||||
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "call/audio_receive_stream.h"
|
#include "call/audio_receive_stream.h"
|
||||||
#include "call/audio_send_stream.h"
|
#include "call/audio_send_stream.h"
|
||||||
#include "call/call_config.h"
|
#include "call/call_config.h"
|
||||||
@ -158,6 +159,9 @@ class Call {
|
|||||||
|
|
||||||
virtual const WebRtcKeyValueConfig& trials() const = 0;
|
virtual const WebRtcKeyValueConfig& trials() const = 0;
|
||||||
|
|
||||||
|
virtual TaskQueueBase* network_thread() const = 0;
|
||||||
|
virtual TaskQueueBase* worker_thread() const = 0;
|
||||||
|
|
||||||
virtual ~Call() {}
|
virtual ~Call() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -270,6 +270,14 @@ const WebRtcKeyValueConfig& DegradedCall::trials() const {
|
|||||||
return call_->trials();
|
return call_->trials();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskQueueBase* DegradedCall::network_thread() const {
|
||||||
|
return call_->network_thread();
|
||||||
|
}
|
||||||
|
|
||||||
|
TaskQueueBase* DegradedCall::worker_thread() const {
|
||||||
|
return call_->worker_thread();
|
||||||
|
}
|
||||||
|
|
||||||
void DegradedCall::SignalChannelNetworkState(MediaType media,
|
void DegradedCall::SignalChannelNetworkState(MediaType media,
|
||||||
NetworkState state) {
|
NetworkState state) {
|
||||||
call_->SignalChannelNetworkState(media, state);
|
call_->SignalChannelNetworkState(media, state);
|
||||||
|
@ -87,6 +87,9 @@ class DegradedCall : public Call, private PacketReceiver {
|
|||||||
|
|
||||||
const WebRtcKeyValueConfig& trials() const override;
|
const WebRtcKeyValueConfig& trials() const override;
|
||||||
|
|
||||||
|
TaskQueueBase* network_thread() const override;
|
||||||
|
TaskQueueBase* worker_thread() const override;
|
||||||
|
|
||||||
void SignalChannelNetworkState(MediaType media, NetworkState state) override;
|
void SignalChannelNetworkState(MediaType media, NetworkState state) override;
|
||||||
void OnAudioTransportOverheadChanged(
|
void OnAudioTransportOverheadChanged(
|
||||||
int transport_overhead_per_packet) override;
|
int transport_overhead_per_packet) override;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "media/base/rtp_utils.h"
|
#include "media/base/rtp_utils.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/gunit.h"
|
#include "rtc_base/gunit.h"
|
||||||
|
#include "rtc_base/thread.h"
|
||||||
|
|
||||||
namespace cricket {
|
namespace cricket {
|
||||||
FakeAudioSendStream::FakeAudioSendStream(
|
FakeAudioSendStream::FakeAudioSendStream(
|
||||||
@ -377,7 +378,13 @@ void FakeFlexfecReceiveStream::OnRtpPacket(const webrtc::RtpPacketReceived&) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FakeCall::FakeCall()
|
FakeCall::FakeCall()
|
||||||
: audio_network_state_(webrtc::kNetworkUp),
|
: FakeCall(rtc::Thread::Current(), rtc::Thread::Current()) {}
|
||||||
|
|
||||||
|
FakeCall::FakeCall(webrtc::TaskQueueBase* worker_thread,
|
||||||
|
webrtc::TaskQueueBase* network_thread)
|
||||||
|
: network_thread_(network_thread),
|
||||||
|
worker_thread_(worker_thread),
|
||||||
|
audio_network_state_(webrtc::kNetworkUp),
|
||||||
video_network_state_(webrtc::kNetworkUp),
|
video_network_state_(webrtc::kNetworkUp),
|
||||||
num_created_send_streams_(0),
|
num_created_send_streams_(0),
|
||||||
num_created_receive_streams_(0) {}
|
num_created_receive_streams_(0) {}
|
||||||
@ -612,6 +619,14 @@ webrtc::Call::Stats FakeCall::GetStats() const {
|
|||||||
return stats_;
|
return stats_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
webrtc::TaskQueueBase* FakeCall::network_thread() const {
|
||||||
|
return network_thread_;
|
||||||
|
}
|
||||||
|
|
||||||
|
webrtc::TaskQueueBase* FakeCall::worker_thread() const {
|
||||||
|
return worker_thread_;
|
||||||
|
}
|
||||||
|
|
||||||
void FakeCall::SignalChannelNetworkState(webrtc::MediaType media,
|
void FakeCall::SignalChannelNetworkState(webrtc::MediaType media,
|
||||||
webrtc::NetworkState state) {
|
webrtc::NetworkState state) {
|
||||||
switch (media) {
|
switch (media) {
|
||||||
|
@ -282,6 +282,8 @@ class FakeFlexfecReceiveStream final : public webrtc::FlexfecReceiveStream {
|
|||||||
class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
|
class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
|
||||||
public:
|
public:
|
||||||
FakeCall();
|
FakeCall();
|
||||||
|
FakeCall(webrtc::TaskQueueBase* worker_thread,
|
||||||
|
webrtc::TaskQueueBase* network_thread);
|
||||||
~FakeCall() override;
|
~FakeCall() override;
|
||||||
|
|
||||||
webrtc::MockRtpTransportControllerSend* GetMockTransportControllerSend() {
|
webrtc::MockRtpTransportControllerSend* GetMockTransportControllerSend() {
|
||||||
@ -364,12 +366,18 @@ class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
|
|||||||
return trials_;
|
return trials_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
webrtc::TaskQueueBase* network_thread() const override;
|
||||||
|
webrtc::TaskQueueBase* worker_thread() const override;
|
||||||
|
|
||||||
void SignalChannelNetworkState(webrtc::MediaType media,
|
void SignalChannelNetworkState(webrtc::MediaType media,
|
||||||
webrtc::NetworkState state) override;
|
webrtc::NetworkState state) override;
|
||||||
void OnAudioTransportOverheadChanged(
|
void OnAudioTransportOverheadChanged(
|
||||||
int transport_overhead_per_packet) override;
|
int transport_overhead_per_packet) override;
|
||||||
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
|
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
|
||||||
|
|
||||||
|
webrtc::TaskQueueBase* const network_thread_;
|
||||||
|
webrtc::TaskQueueBase* const worker_thread_;
|
||||||
|
|
||||||
::testing::NiceMock<webrtc::MockRtpTransportControllerSend>
|
::testing::NiceMock<webrtc::MockRtpTransportControllerSend>
|
||||||
transport_controller_send_;
|
transport_controller_send_;
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ class ChannelManagerTest : public ::testing::Test {
|
|||||||
false,
|
false,
|
||||||
worker_,
|
worker_,
|
||||||
network_.get())),
|
network_.get())),
|
||||||
fake_call_() {
|
fake_call_(worker_, network_.get()) {
|
||||||
network_->SetName("Network", this);
|
network_->SetName("Network", this);
|
||||||
network_->Start();
|
network_->Start();
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ class RtpSenderReceiverTest
|
|||||||
// Create fake media engine/etc. so we can create channels to use to
|
// Create fake media engine/etc. so we can create channels to use to
|
||||||
// test RtpSenders/RtpReceivers.
|
// test RtpSenders/RtpReceivers.
|
||||||
media_engine_(new cricket::FakeMediaEngine()),
|
media_engine_(new cricket::FakeMediaEngine()),
|
||||||
fake_call_(),
|
fake_call_(worker_thread_, network_thread_),
|
||||||
local_stream_(MediaStream::Create(kStreamId1)) {
|
local_stream_(MediaStream::Create(kStreamId1)) {
|
||||||
worker_thread_->Invoke<void>(RTC_FROM_HERE, [&]() {
|
worker_thread_->Invoke<void>(RTC_FROM_HERE, [&]() {
|
||||||
channel_manager_ = cricket::ChannelManager::Create(
|
channel_manager_ = cricket::ChannelManager::Create(
|
||||||
|
Reference in New Issue
Block a user