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