Have BaseChannel take MediaChannel as unique_ptr
Bug: None
Change-Id: I9a0c67cc364623b7c17824271edfbd782f88dbfb
Reviewed-on: https://webrtc-review.googlesource.com/18300
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20594}
diff --git a/pc/channel.cc b/pc/channel.cc
index 1185ec6..5d8bbcd 100644
--- a/pc/channel.cc
+++ b/pc/channel.cc
@@ -142,7 +142,7 @@
BaseChannel::BaseChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- MediaChannel* media_channel,
+ std::unique_ptr<MediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required)
@@ -152,9 +152,9 @@
content_name_(content_name),
rtcp_mux_required_(rtcp_mux_required),
srtp_required_(srtp_required),
- media_channel_(media_channel),
+ media_channel_(std::move(media_channel)),
selected_candidate_pair_(nullptr) {
- RTC_DCHECK(worker_thread_ == rtc::Thread::Current());
+ RTC_DCHECK_RUN_ON(worker_thread_);
if (srtp_required) {
auto transport =
rtc::MakeUnique<webrtc::SrtpTransport>(rtcp_mux_required, content_name);
@@ -179,7 +179,7 @@
BaseChannel::~BaseChannel() {
TRACE_EVENT0("webrtc", "BaseChannel::~BaseChannel");
- RTC_DCHECK(worker_thread_ == rtc::Thread::Current());
+ RTC_DCHECK_RUN_ON(worker_thread_);
Deinit();
StopConnectionMonitor();
// Eats any outstanding messages or packets.
@@ -188,7 +188,7 @@
// We must destroy the media channel before the transport channel, otherwise
// the media channel may try to send on the dead transport channel. NULLing
// is not an effective strategy since the sends will come on another thread.
- delete media_channel_;
+ media_channel_.reset();
LOG(LS_INFO) << "Destroyed channel: " << content_name_;
}
@@ -217,24 +217,22 @@
network_thread_->Clear(this);
}
-bool BaseChannel::Init_w(DtlsTransportInternal* rtp_dtls_transport,
+void BaseChannel::Init_w(DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport) {
- if (!network_thread_->Invoke<bool>(
- RTC_FROM_HERE, Bind(&BaseChannel::InitNetwork_n, this,
- rtp_dtls_transport, rtcp_dtls_transport,
- rtp_packet_transport, rtcp_packet_transport))) {
- return false;
- }
+ RTC_DCHECK_RUN_ON(worker_thread_);
+ network_thread_->Invoke<void>(RTC_FROM_HERE, [&] {
+ return InitNetwork_n(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport);
+ });
+
// Both RTP and RTCP channels should be set, we can call SetInterface on
// the media channel and it can set network options.
- RTC_DCHECK_RUN_ON(worker_thread_);
media_channel_->SetInterface(this);
- return true;
}
-bool BaseChannel::InitNetwork_n(
+void BaseChannel::InitNetwork_n(
DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
@@ -246,7 +244,6 @@
if (rtcp_mux_required_) {
rtcp_mux_filter_.SetActive();
}
- return true;
}
void BaseChannel::Deinit() {
@@ -615,16 +612,14 @@
UpdateTransportOverhead();
}
- invoker_.AsyncInvoke<void>(
- RTC_FROM_HERE, worker_thread_,
- Bind(&MediaChannel::OnNetworkRouteChanged, media_channel_, transport_name,
- network_route));
+ invoker_.AsyncInvoke<void>(RTC_FROM_HERE, worker_thread_, [=] {
+ media_channel_->OnNetworkRouteChanged(transport_name, network_route);
+ });
}
void BaseChannel::OnTransportReadyToSend(bool ready) {
- invoker_.AsyncInvoke<void>(
- RTC_FROM_HERE, worker_thread_,
- Bind(&MediaChannel::OnReadyToSend, media_channel_, ready));
+ invoker_.AsyncInvoke<void>(RTC_FROM_HERE, worker_thread_,
+ [=] { media_channel_->OnReadyToSend(ready); });
}
bool BaseChannel::SendPacket(bool rtcp,
@@ -1435,19 +1430,18 @@
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
MediaEngineInterface* media_engine,
- VoiceMediaChannel* media_channel,
+ std::unique_ptr<VoiceMediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
- media_channel,
+ std::move(media_channel),
content_name,
rtcp_mux_required,
srtp_required),
- media_engine_(media_engine),
- received_media_(false) {}
+ media_engine_(media_engine) {}
VoiceChannel::~VoiceChannel() {
TRACE_EVENT0("webrtc", "VoiceChannel::~VoiceChannel");
@@ -1676,7 +1670,7 @@
if (transport_overhead_per_packet)
invoker_.AsyncInvoke<void>(
RTC_FROM_HERE, worker_thread_,
- Bind(&MediaChannel::OnTransportOverheadChanged, media_channel_,
+ Bind(&MediaChannel::OnTransportOverheadChanged, media_channel_.get(),
transport_overhead_per_packet));
}
@@ -1852,14 +1846,14 @@
VideoChannel::VideoChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- VideoMediaChannel* media_channel,
+ std::unique_ptr<VideoMediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
- media_channel,
+ std::move(media_channel),
content_name,
rtcp_mux_required,
srtp_required) {}
@@ -2112,14 +2106,14 @@
RtpDataChannel::RtpDataChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- DataMediaChannel* media_channel,
+ std::unique_ptr<DataMediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
- media_channel,
+ std::move(media_channel),
content_name,
rtcp_mux_required,
srtp_required) {}
@@ -2133,20 +2127,18 @@
Deinit();
}
-bool RtpDataChannel::Init_w(
+void RtpDataChannel::Init_w(
DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport) {
- if (!BaseChannel::Init_w(rtp_dtls_transport, rtcp_dtls_transport,
- rtp_packet_transport, rtcp_packet_transport)) {
- return false;
- }
+ BaseChannel::Init_w(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport);
+
media_channel()->SignalDataReceived.connect(this,
&RtpDataChannel::OnDataReceived);
media_channel()->SignalReadyToSend.connect(
this, &RtpDataChannel::OnDataChannelReadyToSend);
- return true;
}
bool RtpDataChannel::SendData(const SendDataParams& params,
diff --git a/pc/channel.h b/pc/channel.h
index c5888db..5689338 100644
--- a/pc/channel.h
+++ b/pc/channel.h
@@ -80,12 +80,12 @@
BaseChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- MediaChannel* channel,
+ std::unique_ptr<MediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required);
virtual ~BaseChannel();
- bool Init_w(DtlsTransportInternal* rtp_dtls_transport,
+ void Init_w(DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport);
@@ -191,7 +191,7 @@
bool HandlesPayloadType(int payload_type) const;
protected:
- virtual MediaChannel* media_channel() const { return media_channel_; }
+ virtual MediaChannel* media_channel() const { return media_channel_.get(); }
void SetTransports_n(DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
@@ -353,7 +353,7 @@
void AddHandledPayloadType(int payload_type);
private:
- bool InitNetwork_n(DtlsTransportInternal* rtp_dtls_transport,
+ void InitNetwork_n(DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport);
@@ -400,7 +400,7 @@
// MediaChannel related members that should be accessed from the worker
// thread.
- MediaChannel* const media_channel_;
+ std::unique_ptr<MediaChannel> media_channel_;
// Currently the |enabled_| flag is accessed from the signaling thread as
// well, but it can be changed only when signaling thread does a synchronous
// call to the worker thread, so it should be safe.
@@ -420,7 +420,7 @@
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
MediaEngineInterface* media_engine,
- VoiceMediaChannel* channel,
+ std::unique_ptr<VoiceMediaChannel> channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required);
@@ -517,7 +517,7 @@
static const int kEarlyMediaTimeout = 1000;
MediaEngineInterface* media_engine_;
- bool received_media_;
+ bool received_media_ = false;
std::unique_ptr<VoiceMediaMonitor> media_monitor_;
std::unique_ptr<AudioMonitor> audio_monitor_;
@@ -535,7 +535,7 @@
VideoChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- VideoMediaChannel* channel,
+ std::unique_ptr<VideoMediaChannel> media_channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required);
@@ -612,12 +612,12 @@
RtpDataChannel(rtc::Thread* worker_thread,
rtc::Thread* network_thread,
rtc::Thread* signaling_thread,
- DataMediaChannel* channel,
+ std::unique_ptr<DataMediaChannel> channel,
const std::string& content_name,
bool rtcp_mux_required,
bool srtp_required);
~RtpDataChannel();
- bool Init_w(DtlsTransportInternal* rtp_dtls_transport,
+ void Init_w(DtlsTransportInternal* rtp_dtls_transport,
DtlsTransportInternal* rtcp_dtls_transport,
rtc::PacketTransportInternal* rtp_packet_transport,
rtc::PacketTransportInternal* rtcp_packet_transport);
diff --git a/pc/channel_unittest.cc b/pc/channel_unittest.cc
index 07333b4..5736bb6 100644
--- a/pc/channel_unittest.cc
+++ b/pc/channel_unittest.cc
@@ -121,12 +121,14 @@
}
void CreateChannels(int flags1, int flags2) {
- CreateChannels(new typename T::MediaChannel(NULL, typename T::Options()),
- new typename T::MediaChannel(NULL, typename T::Options()),
+ CreateChannels(rtc::MakeUnique<typename T::MediaChannel>(
+ nullptr, typename T::Options()),
+ rtc::MakeUnique<typename T::MediaChannel>(
+ nullptr, typename T::Options()),
flags1, flags2);
}
- void CreateChannels(typename T::MediaChannel* ch1,
- typename T::MediaChannel* ch2,
+ void CreateChannels(std::unique_ptr<typename T::MediaChannel> ch1,
+ std::unique_ptr<typename T::MediaChannel> ch2,
int flags1,
int flags2) {
// Network thread is started in CreateChannels, to allow the test to
@@ -142,8 +144,8 @@
// channels.
RTC_DCHECK_EQ(flags1 & RAW_PACKET_TRANSPORT, flags2 & RAW_PACKET_TRANSPORT);
rtc::Thread* worker_thread = rtc::Thread::Current();
- media_channel1_ = ch1;
- media_channel2_ = ch2;
+ media_channel1_ = ch1.get();
+ media_channel2_ = ch2.get();
rtc::PacketTransportInternal* rtp1 = nullptr;
rtc::PacketTransportInternal* rtcp1 = nullptr;
rtc::PacketTransportInternal* rtp2 = nullptr;
@@ -240,14 +242,14 @@
}
}
}
- channel1_.reset(
- CreateChannel(worker_thread, network_thread_, &media_engine_, ch1,
- fake_rtp_dtls_transport1_.get(),
- fake_rtcp_dtls_transport1_.get(), rtp1, rtcp1, flags1));
- channel2_.reset(
- CreateChannel(worker_thread, network_thread_, &media_engine_, ch2,
- fake_rtp_dtls_transport2_.get(),
- fake_rtcp_dtls_transport2_.get(), rtp2, rtcp2, flags2));
+ channel1_ =
+ CreateChannel(worker_thread, network_thread_, &media_engine_,
+ std::move(ch1), fake_rtp_dtls_transport1_.get(),
+ fake_rtcp_dtls_transport1_.get(), rtp1, rtcp1, flags1);
+ channel2_ =
+ CreateChannel(worker_thread, network_thread_, &media_engine_,
+ std::move(ch2), fake_rtp_dtls_transport2_.get(),
+ fake_rtcp_dtls_transport2_.get(), rtp2, rtcp2, flags2);
channel1_->SignalMediaMonitor.connect(this,
&ChannelTest<T>::OnMediaMonitor1);
channel2_->SignalMediaMonitor.connect(this,
@@ -281,30 +283,26 @@
AddLegacyStreamInContent(kSsrc2, flags2, &remote_media_content2_);
}
}
- typename T::Channel* CreateChannel(
+ std::unique_ptr<typename T::Channel> CreateChannel(
rtc::Thread* worker_thread,
rtc::Thread* network_thread,
cricket::MediaEngineInterface* engine,
- typename T::MediaChannel* ch,
+ std::unique_ptr<typename T::MediaChannel> ch,
cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
rtc::PacketTransportInternal* fake_rtp_packet_transport,
rtc::PacketTransportInternal* fake_rtcp_packet_transport,
int flags) {
rtc::Thread* signaling_thread = rtc::Thread::Current();
- typename T::Channel* channel = new typename T::Channel(
- worker_thread, network_thread, signaling_thread, engine, ch,
+ auto channel = rtc::MakeUnique<typename T::Channel>(
+ worker_thread, network_thread, signaling_thread, engine, std::move(ch),
cricket::CN_AUDIO, (flags & RTCP_MUX_REQUIRED) != 0,
(flags & SECURE) != 0);
if (!channel->NeedsRtcpTransport()) {
fake_rtcp_dtls_transport = nullptr;
}
- if (!channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
- fake_rtp_packet_transport,
- fake_rtcp_packet_transport)) {
- delete channel;
- channel = NULL;
- }
+ channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
+ fake_rtp_packet_transport, fake_rtcp_packet_transport);
return channel;
}
@@ -1280,8 +1278,8 @@
T::MediaChannel::SendRtcp(kRtcpReport, sizeof(kRtcpReport));
}
};
- CreateChannels(new LastWordMediaChannel(), new LastWordMediaChannel(),
- RTCP_MUX, RTCP_MUX);
+ CreateChannels(rtc::MakeUnique<LastWordMediaChannel>(),
+ rtc::MakeUnique<LastWordMediaChannel>(), RTCP_MUX, RTCP_MUX);
EXPECT_TRUE(SendInitiate());
EXPECT_TRUE(SendAccept());
EXPECT_TRUE(Terminate());
@@ -2207,28 +2205,26 @@
// override to add NULL parameter
template <>
-cricket::VideoChannel* ChannelTest<VideoTraits>::CreateChannel(
+std::unique_ptr<cricket::VideoChannel> ChannelTest<VideoTraits>::CreateChannel(
rtc::Thread* worker_thread,
rtc::Thread* network_thread,
cricket::MediaEngineInterface* engine,
- cricket::FakeVideoMediaChannel* ch,
+ std::unique_ptr<cricket::FakeVideoMediaChannel> ch,
cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
rtc::PacketTransportInternal* fake_rtp_packet_transport,
rtc::PacketTransportInternal* fake_rtcp_packet_transport,
int flags) {
rtc::Thread* signaling_thread = rtc::Thread::Current();
- cricket::VideoChannel* channel = new cricket::VideoChannel(
- worker_thread, network_thread, signaling_thread, ch, cricket::CN_VIDEO,
- (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0);
+ auto channel = rtc::MakeUnique<cricket::VideoChannel>(
+ worker_thread, network_thread, signaling_thread, std::move(ch),
+ cricket::CN_VIDEO, (flags & RTCP_MUX_REQUIRED) != 0,
+ (flags & SECURE) != 0);
if (!channel->NeedsRtcpTransport()) {
fake_rtcp_dtls_transport = nullptr;
}
- if (!channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
- fake_rtp_packet_transport, fake_rtcp_packet_transport)) {
- delete channel;
- channel = NULL;
- }
+ channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
+ fake_rtp_packet_transport, fake_rtcp_packet_transport);
return channel;
}
@@ -3501,28 +3497,26 @@
// Override to avoid engine channel parameter.
template <>
-cricket::RtpDataChannel* ChannelTest<DataTraits>::CreateChannel(
+std::unique_ptr<cricket::RtpDataChannel> ChannelTest<DataTraits>::CreateChannel(
rtc::Thread* worker_thread,
rtc::Thread* network_thread,
cricket::MediaEngineInterface* engine,
- cricket::FakeDataMediaChannel* ch,
+ std::unique_ptr<cricket::FakeDataMediaChannel> ch,
cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
rtc::PacketTransportInternal* fake_rtp_packet_transport,
rtc::PacketTransportInternal* fake_rtcp_packet_transport,
int flags) {
rtc::Thread* signaling_thread = rtc::Thread::Current();
- cricket::RtpDataChannel* channel = new cricket::RtpDataChannel(
- worker_thread, network_thread, signaling_thread, ch, cricket::CN_DATA,
- (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0);
+ auto channel = rtc::MakeUnique<cricket::RtpDataChannel>(
+ worker_thread, network_thread, signaling_thread, std::move(ch),
+ cricket::CN_DATA, (flags & RTCP_MUX_REQUIRED) != 0,
+ (flags & SECURE) != 0);
if (!channel->NeedsRtcpTransport()) {
fake_rtcp_dtls_transport = nullptr;
}
- if (!channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
- fake_rtp_packet_transport, fake_rtcp_packet_transport)) {
- delete channel;
- channel = NULL;
- }
+ channel->Init_w(fake_rtp_dtls_transport, fake_rtcp_dtls_transport,
+ fake_rtp_packet_transport, fake_rtcp_packet_transport);
return channel;
}
@@ -3847,16 +3841,16 @@
: fake_rtp_dtls_transport_("foo", cricket::ICE_CANDIDATE_COMPONENT_RTP),
fake_rtcp_dtls_transport_("foo", cricket::ICE_CANDIDATE_COMPONENT_RTCP),
// RTCP mux not required, SRTP required.
- voice_channel_(
- rtc::Thread::Current(),
- rtc::Thread::Current(),
- rtc::Thread::Current(),
- &fake_media_engine_,
- new cricket::FakeVoiceMediaChannel(nullptr,
- cricket::AudioOptions()),
- cricket::CN_AUDIO,
- false,
- true) {}
+ voice_channel_(rtc::Thread::Current(),
+ rtc::Thread::Current(),
+ rtc::Thread::Current(),
+ &fake_media_engine_,
+ rtc::MakeUnique<cricket::FakeVoiceMediaChannel>(
+ nullptr,
+ cricket::AudioOptions()),
+ cricket::CN_AUDIO,
+ false,
+ true) {}
protected:
cricket::FakeMediaEngine fake_media_engine_;
@@ -3866,27 +3860,24 @@
};
TEST_F(BaseChannelDeathTest, SetTransportsWithNullRtpTransport) {
- ASSERT_TRUE(voice_channel_.Init_w(
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(&fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
+ &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_);
cricket::FakeDtlsTransport new_rtcp_transport(
"bar", cricket::ICE_CANDIDATE_COMPONENT_RTCP);
EXPECT_DEATH(voice_channel_.SetTransports(nullptr, &new_rtcp_transport), "");
}
TEST_F(BaseChannelDeathTest, SetTransportsWithMissingRtcpTransport) {
- ASSERT_TRUE(voice_channel_.Init_w(
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(&fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
+ &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_);
cricket::FakeDtlsTransport new_rtp_transport(
"bar", cricket::ICE_CANDIDATE_COMPONENT_RTP);
EXPECT_DEATH(voice_channel_.SetTransports(&new_rtp_transport, nullptr), "");
}
TEST_F(BaseChannelDeathTest, SetTransportsWithUnneededRtcpTransport) {
- ASSERT_TRUE(voice_channel_.Init_w(
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(&fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
+ &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_);
// Activate RTCP muxing, simulating offer/answer negotiation.
cricket::AudioContentDescription content;
content.set_rtcp_mux(true);
@@ -3905,9 +3896,8 @@
// This test will probably go away if/when we move the transport name out of
// the transport classes and into their parent classes.
TEST_F(BaseChannelDeathTest, SetTransportsWithMismatchingTransportNames) {
- ASSERT_TRUE(voice_channel_.Init_w(
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(&fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
+ &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_);
cricket::FakeDtlsTransport new_rtp_transport(
"bar", cricket::ICE_CANDIDATE_COMPONENT_RTP);
cricket::FakeDtlsTransport new_rtcp_transport(
@@ -3920,9 +3910,8 @@
// Not expected to support going from DtlsTransportInternal to
// PacketTransportInternal.
TEST_F(BaseChannelDeathTest, SetTransportsDtlsToNonDtls) {
- ASSERT_TRUE(voice_channel_.Init_w(
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
- &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(&fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
+ &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_);
EXPECT_DEATH(
voice_channel_.SetTransports(
static_cast<rtc::PacketTransportInternal*>(&fake_rtp_dtls_transport_),
@@ -3934,8 +3923,8 @@
// Not expected to support going from PacketTransportInternal to
// DtlsTransportInternal.
TEST_F(BaseChannelDeathTest, SetTransportsNonDtlsToDtls) {
- ASSERT_TRUE(voice_channel_.Init_w(nullptr, nullptr, &fake_rtp_dtls_transport_,
- &fake_rtcp_dtls_transport_));
+ voice_channel_.Init_w(nullptr, nullptr, &fake_rtp_dtls_transport_,
+ &fake_rtcp_dtls_transport_);
EXPECT_DEATH(voice_channel_.SetTransports(&fake_rtp_dtls_transport_,
&fake_rtp_dtls_transport_),
"");
diff --git a/pc/channelmanager.cc b/pc/channelmanager.cc
index 9658444..bb1548d 100644
--- a/pc/channelmanager.cc
+++ b/pc/channelmanager.cc
@@ -210,12 +210,10 @@
auto voice_channel = rtc::MakeUnique<VoiceChannel>(
worker_thread_, network_thread_, signaling_thread, media_engine_.get(),
- media_channel, content_name, rtcp_packet_transport == nullptr,
- srtp_required);
- if (!voice_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
- rtp_packet_transport, rtcp_packet_transport)) {
- return nullptr;
- }
+ rtc::WrapUnique(media_channel), content_name,
+ rtcp_packet_transport == nullptr, srtp_required);
+ voice_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport);
VoiceChannel* voice_channel_ptr = voice_channel.get();
voice_channels_.push_back(std::move(voice_channel));
@@ -302,12 +300,11 @@
}
auto video_channel = rtc::MakeUnique<VideoChannel>(
- worker_thread_, network_thread_, signaling_thread, media_channel,
- content_name, rtcp_packet_transport == nullptr, srtp_required);
- if (!video_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
- rtp_packet_transport, rtcp_packet_transport)) {
- return nullptr;
- }
+ worker_thread_, network_thread_, signaling_thread,
+ rtc::WrapUnique(media_channel), content_name,
+ rtcp_packet_transport == nullptr, srtp_required);
+ video_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport);
VideoChannel* video_channel_ptr = video_channel.get();
video_channels_.push_back(std::move(video_channel));
@@ -363,13 +360,11 @@
}
auto data_channel = rtc::MakeUnique<RtpDataChannel>(
- worker_thread_, network_thread_, signaling_thread, media_channel,
- content_name, rtcp_transport == nullptr, srtp_required);
- if (!data_channel->Init_w(rtp_transport, rtcp_transport, rtp_transport,
- rtcp_transport)) {
- LOG(LS_WARNING) << "Failed to init data channel.";
- return nullptr;
- }
+ worker_thread_, network_thread_, signaling_thread,
+ rtc::WrapUnique(media_channel), content_name, rtcp_transport == nullptr,
+ srtp_required);
+ data_channel->Init_w(rtp_transport, rtcp_transport, rtp_transport,
+ rtcp_transport);
RtpDataChannel* data_channel_ptr = data_channel.get();
data_channels_.push_back(std::move(data_channel));
diff --git a/pc/rtcstatscollector_unittest.cc b/pc/rtcstatscollector_unittest.cc
index 50cc603..2e77ec3 100644
--- a/pc/rtcstatscollector_unittest.cc
+++ b/pc/rtcstatscollector_unittest.cc
@@ -454,20 +454,21 @@
EXPECT_CALL(pc_, GetSenders()).WillRepeatedly(Return(rtp_senders_));
EXPECT_CALL(pc_, GetReceivers()).WillRepeatedly(Return(rtp_receivers_));
- MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
+ auto* voice_media_channel = new MockVoiceMediaChannel();
voice_channel_.reset(new cricket::VoiceChannel(
worker_thread_, network_thread_, nullptr, media_engine_,
- voice_media_channel, "VoiceContentName", kDefaultRtcpMuxRequired,
- kDefaultSrtpRequired));
+ rtc::WrapUnique(voice_media_channel), "VoiceContentName",
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired));
EXPECT_CALL(pc_, voice_channel())
.WillRepeatedly(Return(voice_channel_.get()));
EXPECT_CALL(*voice_media_channel, GetStats(_))
.WillOnce(DoAll(SetArgPointee<0>(*voice_media_info_), Return(true)));
- MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
+ auto* video_media_channel = new MockVideoMediaChannel();
video_channel_.reset(new cricket::VideoChannel(
- worker_thread_, network_thread_, nullptr, video_media_channel,
- "VideoContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired));
+ worker_thread_, network_thread_, nullptr,
+ rtc::WrapUnique(video_media_channel), "VideoContentName",
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired));
EXPECT_CALL(pc_, video_channel())
.WillRepeatedly(Return(video_channel_.get()));
EXPECT_CALL(*video_media_channel, GetStats(_))
@@ -737,17 +738,18 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCCodecStats) {
- MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
+ auto* voice_media_channel = new MockVoiceMediaChannel();
cricket::VoiceChannel voice_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), test_->media_engine(), voice_media_channel,
- "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), test_->media_engine(),
+ rtc::WrapUnique(voice_media_channel), "VoiceContentName",
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
- MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
+ auto* video_media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), video_media_channel, "VideoContentName",
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), rtc::WrapUnique(video_media_channel),
+ "VideoContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
// Audio
cricket::VoiceMediaInfo voice_media_info;
@@ -1210,11 +1212,11 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCIceCandidatePairStats) {
- MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
+ auto* video_media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), video_media_channel, "VideoContentName",
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), rtc::WrapUnique(video_media_channel),
+ "VideoContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
std::unique_ptr<cricket::Candidate> local_candidate = CreateFakeCandidate(
"42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42);
@@ -1804,11 +1806,12 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Audio) {
- MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
+ auto* voice_media_channel = new MockVoiceMediaChannel();
cricket::VoiceChannel voice_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), test_->media_engine(), voice_media_channel,
- "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), test_->media_engine(),
+ rtc::WrapUnique(voice_media_channel), "VoiceContentName",
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
test_->SetupRemoteTrackAndReceiver(
cricket::MEDIA_TYPE_AUDIO, "RemoteAudioTrackID", 1);
@@ -1883,11 +1886,11 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) {
- MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
+ auto* video_media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), video_media_channel, "VideoContentName",
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), rtc::WrapUnique(video_media_channel),
+ "VideoContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
test_->SetupRemoteTrackAndReceiver(
cricket::MEDIA_TYPE_VIDEO, "RemoteVideoTrackID", 1);
@@ -1984,11 +1987,12 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) {
- MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
+ auto* voice_media_channel = new MockVoiceMediaChannel();
cricket::VoiceChannel voice_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), test_->media_engine(), voice_media_channel,
- "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), test_->media_engine(),
+ rtc::WrapUnique(voice_media_channel), "VoiceContentName",
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
test_->SetupLocalTrackAndSender(
cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1);
@@ -2061,11 +2065,11 @@
}
TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) {
- MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
+ auto* video_media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
test_->worker_thread(), test_->network_thread(),
- test_->signaling_thread(), video_media_channel, "VideoContentName",
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ test_->signaling_thread(), rtc::WrapUnique(video_media_channel),
+ "VideoContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
test_->SetupLocalTrackAndSender(
cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1);
diff --git a/pc/statscollector_unittest.cc b/pc/statscollector_unittest.cc
index 7448a12..104ee77 100644
--- a/pc/statscollector_unittest.cc
+++ b/pc/statscollector_unittest.cc
@@ -926,9 +926,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
StatsReports reports; // returned values.
cricket::VideoSenderInfo video_sender_info;
@@ -973,10 +973,11 @@
return std::unique_ptr<SessionStats>(new SessionStats(session_stats_));
}));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, nullptr, media_channel,
- kAudioChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, nullptr,
+ rtc::WrapUnique(media_channel), kAudioChannelName,
+ kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
StatsReports reports; // returned values.
cricket::VoiceSenderInfo voice_sender_info;
@@ -1040,9 +1041,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
StatsReports reports; // returned values.
@@ -1125,10 +1126,10 @@
TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) {
StatsCollectorForTest stats(&pc_);
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel, "video",
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
+ "video", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddOutgoingVideoTrackStats();
stats.AddStream(stream_);
@@ -1163,9 +1164,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddOutgoingVideoTrackStats();
stats.AddStream(stream_);
@@ -1229,12 +1230,12 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
// The transport_name known by the video channel.
const std::string kVcName("vcname");
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel, kVcName,
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
+ kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddOutgoingVideoTrackStats();
stats.AddStream(stream_);
@@ -1290,12 +1291,12 @@
TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) {
StatsCollectorForTest stats(&pc_);
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
// The transport_name known by the video channel.
const std::string kVcName("vcname");
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel, kVcName,
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
+ kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddOutgoingVideoTrackStats();
stats.AddStream(stream_);
@@ -1316,12 +1317,12 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
// The transport_name known by the video channel.
const std::string kVcName("vcname");
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel, kVcName,
- kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
+ kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddOutgoingVideoTrackStats();
stats.AddStream(stream_);
@@ -1377,9 +1378,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
AddIncomingVideoTrackStats();
stats.AddStream(stream_);
@@ -1685,12 +1686,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
// Create a local stream with a local audio track and adds it to the stats.
if (stream_ == NULL)
@@ -1794,12 +1796,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
AddOutgoingAudioTrackStats();
stats.AddStream(stream_);
stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack);
@@ -1829,12 +1832,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
AddIncomingAudioTrackStats();
stats.AddStream(stream_);
@@ -1858,12 +1862,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
AddOutgoingAudioTrackStats();
stats.AddStream(stream_);
stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack);
@@ -1921,12 +1926,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
// Create a local stream with a local audio track and adds it to the stats.
AddOutgoingAudioTrackStats();
@@ -2010,12 +2016,13 @@
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
- MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
+ auto* media_channel = new MockVoiceMediaChannel();
// The transport_name known by the voice channel.
const std::string kVcName("vcname");
cricket::VoiceChannel voice_channel(
- worker_thread_, network_thread_, nullptr, media_engine_, media_channel,
- kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
+ worker_thread_, network_thread_, nullptr, media_engine_,
+ rtc::WrapUnique(media_channel), kVcName, kDefaultRtcpMuxRequired,
+ kDefaultSrtpRequired);
// Create a local stream with a local audio track and adds it to the stats.
AddOutgoingAudioTrackStats();
@@ -2072,9 +2079,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
StatsReports reports; // returned values.
cricket::VideoSenderInfo video_sender_info;
@@ -2119,9 +2126,9 @@
new SessionStats(session_stats_));
}));
- MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
+ auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
- worker_thread_, network_thread_, nullptr, media_channel,
+ worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
StatsReports reports; // returned values.
cricket::VideoReceiverInfo video_receiver_info;