Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(791)

Unified Diff: webrtc/pc/channelmanager.cc

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Move ORTC files to different subdirectories Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/pc/channelmanager.cc
diff --git a/webrtc/pc/channelmanager.cc b/webrtc/pc/channelmanager.cc
index d0957a7b55f507af873a4b8b554c78865977408f..150dfd9a9d7124aedf347f924bd7ecfe1cfad0f5 100644
--- a/webrtc/pc/channelmanager.cc
+++ b/webrtc/pc/channelmanager.cc
@@ -28,28 +28,26 @@ namespace cricket {
using rtc::Bind;
-static DataEngineInterface* ConstructDataEngine() {
- return new RtpDataEngine();
-}
-
-ChannelManager::ChannelManager(MediaEngineInterface* me,
- DataEngineInterface* dme,
+ChannelManager::ChannelManager(std::unique_ptr<MediaEngineInterface> me,
+ std::unique_ptr<DataEngineInterface> dme,
rtc::Thread* thread) {
- Construct(me, dme, thread, thread);
+ Construct(std::move(me), std::move(dme), thread, thread);
}
-ChannelManager::ChannelManager(MediaEngineInterface* me,
+ChannelManager::ChannelManager(std::unique_ptr<MediaEngineInterface> me,
rtc::Thread* worker_thread,
rtc::Thread* network_thread) {
- Construct(me, ConstructDataEngine(), worker_thread, network_thread);
+ Construct(std::move(me),
+ std::unique_ptr<DataEngineInterface>(new RtpDataEngine()),
+ worker_thread, network_thread);
}
-void ChannelManager::Construct(MediaEngineInterface* me,
- DataEngineInterface* dme,
+void ChannelManager::Construct(std::unique_ptr<MediaEngineInterface> me,
+ std::unique_ptr<DataEngineInterface> dme,
rtc::Thread* worker_thread,
rtc::Thread* network_thread) {
- media_engine_.reset(me);
- data_media_engine_.reset(dme);
+ media_engine_ = std::move(me);
+ data_media_engine_ = std::move(dme);
initialized_ = false;
main_thread_ = rtc::Thread::Current();
worker_thread_ = worker_thread;
@@ -210,25 +208,38 @@ VoiceChannel* ChannelManager::CreateVoiceChannel(
DtlsTransportInternal* rtcp_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required,
const AudioOptions& options) {
return worker_thread_->Invoke<VoiceChannel*>(
RTC_FROM_HERE,
Bind(&ChannelManager::CreateVoiceChannel_w, this, media_controller,
- rtp_transport, rtcp_transport, signaling_thread, content_name,
- bundle_transport_name, rtcp_mux_required, srtp_required, options));
+ rtp_transport, rtcp_transport, rtp_transport, rtcp_transport,
+ signaling_thread, content_name, srtp_required, options));
+}
+
+VoiceChannel* ChannelManager::CreateVoiceChannel(
+ webrtc::MediaControllerInterface* media_controller,
+ rtc::PacketTransportInternal* rtp_transport,
+ rtc::PacketTransportInternal* rtcp_transport,
+ rtc::Thread* signaling_thread,
+ const std::string& content_name,
+ bool srtp_required,
+ const AudioOptions& options) {
+ return worker_thread_->Invoke<VoiceChannel*>(
+ RTC_FROM_HERE,
+ Bind(&ChannelManager::CreateVoiceChannel_w, this, media_controller,
+ nullptr, nullptr, rtp_transport, rtcp_transport, signaling_thread,
+ content_name, srtp_required, options));
}
VoiceChannel* ChannelManager::CreateVoiceChannel_w(
webrtc::MediaControllerInterface* media_controller,
- DtlsTransportInternal* rtp_transport,
- DtlsTransportInternal* rtcp_transport,
+ DtlsTransportInternal* rtp_dtls_transport,
+ DtlsTransportInternal* rtcp_dtls_transport,
+ rtc::PacketTransportInternal* rtp_packet_transport,
+ rtc::PacketTransportInternal* rtcp_packet_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required,
const AudioOptions& options) {
RTC_DCHECK(initialized_);
@@ -240,13 +251,14 @@ VoiceChannel* ChannelManager::CreateVoiceChannel_w(
if (!media_channel)
return nullptr;
- VoiceChannel* voice_channel = new VoiceChannel(
- worker_thread_, network_thread_, signaling_thread, media_engine_.get(),
- media_channel, content_name, rtcp_mux_required, srtp_required);
+ VoiceChannel* voice_channel =
+ new VoiceChannel(worker_thread_, network_thread_, signaling_thread,
+ media_engine_.get(), media_channel, content_name,
+ rtcp_packet_transport == nullptr, srtp_required);
voice_channel->SetCryptoOptions(crypto_options_);
- if (!voice_channel->Init_w(rtp_transport, rtcp_transport, rtp_transport,
- rtcp_transport)) {
+ if (!voice_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport)) {
delete voice_channel;
return nullptr;
}
@@ -283,25 +295,38 @@ VideoChannel* ChannelManager::CreateVideoChannel(
DtlsTransportInternal* rtcp_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required,
const VideoOptions& options) {
return worker_thread_->Invoke<VideoChannel*>(
RTC_FROM_HERE,
Bind(&ChannelManager::CreateVideoChannel_w, this, media_controller,
- rtp_transport, rtcp_transport, signaling_thread, content_name,
- bundle_transport_name, rtcp_mux_required, srtp_required, options));
+ rtp_transport, rtcp_transport, rtp_transport, rtcp_transport,
+ signaling_thread, content_name, srtp_required, options));
+}
+
+VideoChannel* ChannelManager::CreateVideoChannel(
+ webrtc::MediaControllerInterface* media_controller,
+ rtc::PacketTransportInternal* rtp_transport,
+ rtc::PacketTransportInternal* rtcp_transport,
+ rtc::Thread* signaling_thread,
+ const std::string& content_name,
+ bool srtp_required,
+ const VideoOptions& options) {
+ return worker_thread_->Invoke<VideoChannel*>(
+ RTC_FROM_HERE,
+ Bind(&ChannelManager::CreateVideoChannel_w, this, media_controller,
+ nullptr, nullptr, rtp_transport, rtcp_transport, signaling_thread,
+ content_name, srtp_required, options));
}
VideoChannel* ChannelManager::CreateVideoChannel_w(
webrtc::MediaControllerInterface* media_controller,
- DtlsTransportInternal* rtp_transport,
- DtlsTransportInternal* rtcp_transport,
+ DtlsTransportInternal* rtp_dtls_transport,
+ DtlsTransportInternal* rtcp_dtls_transport,
+ rtc::PacketTransportInternal* rtp_packet_transport,
+ rtc::PacketTransportInternal* rtcp_packet_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required,
const VideoOptions& options) {
RTC_DCHECK(initialized_);
@@ -315,10 +340,10 @@ VideoChannel* ChannelManager::CreateVideoChannel_w(
VideoChannel* video_channel = new VideoChannel(
worker_thread_, network_thread_, signaling_thread, media_channel,
- content_name, rtcp_mux_required, srtp_required);
+ content_name, rtcp_packet_transport == nullptr, srtp_required);
video_channel->SetCryptoOptions(crypto_options_);
- if (!video_channel->Init_w(rtp_transport, rtcp_transport, rtp_transport,
- rtcp_transport)) {
+ if (!video_channel->Init_w(rtp_dtls_transport, rtcp_dtls_transport,
+ rtp_packet_transport, rtcp_packet_transport)) {
delete video_channel;
return NULL;
}
@@ -356,14 +381,11 @@ RtpDataChannel* ChannelManager::CreateRtpDataChannel(
DtlsTransportInternal* rtcp_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required) {
return worker_thread_->Invoke<RtpDataChannel*>(
- RTC_FROM_HERE,
- Bind(&ChannelManager::CreateRtpDataChannel_w, this, media_controller,
- rtp_transport, rtcp_transport, signaling_thread, content_name,
- bundle_transport_name, rtcp_mux_required, srtp_required));
+ RTC_FROM_HERE, Bind(&ChannelManager::CreateRtpDataChannel_w, this,
+ media_controller, rtp_transport, rtcp_transport,
+ signaling_thread, content_name, srtp_required));
}
RtpDataChannel* ChannelManager::CreateRtpDataChannel_w(
@@ -372,8 +394,6 @@ RtpDataChannel* ChannelManager::CreateRtpDataChannel_w(
DtlsTransportInternal* rtcp_transport,
rtc::Thread* signaling_thread,
const std::string& content_name,
- const std::string* bundle_transport_name,
- bool rtcp_mux_required,
bool srtp_required) {
// This is ok to alloc from a thread other than the worker thread.
RTC_DCHECK(initialized_);
@@ -389,7 +409,7 @@ RtpDataChannel* ChannelManager::CreateRtpDataChannel_w(
RtpDataChannel* data_channel = new RtpDataChannel(
worker_thread_, network_thread_, signaling_thread, media_channel,
- content_name, rtcp_mux_required, srtp_required);
+ content_name, rtcp_transport == nullptr, srtp_required);
data_channel->SetCryptoOptions(crypto_options_);
if (!data_channel->Init_w(rtp_transport, rtcp_transport, rtp_transport,
rtcp_transport)) {

Powered by Google App Engine
This is Rietveld 408576698