Remove rtp_ and rtcp_packet_transport() from the RtpTransport interface.
RtpTransportInternal does not need to expose these. They are only used
by tests and for setting options. Instead, it can expose a SetRtpOption
and SetRtcpOption to set options relevant to each of its transports.
Also updates tests to work around no longer having access to internals.
This will simplify the composite needed during negotiation of different
RTP transport types, as we no longer need to have composites of both
RtpTransport and PacketTransport.
Bug: webrtc:9719
Change-Id: I91bfa6e95b7aa384d10497f47e7d2483c2e0bef2
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138282
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28066}
diff --git a/pc/channel.cc b/pc/channel.cc
index be40a7e..13341e3 100644
--- a/pc/channel.cc
+++ b/pc/channel.cc
@@ -254,8 +254,7 @@
rtp_transport_ = rtp_transport;
if (rtp_transport_) {
- RTC_DCHECK(rtp_transport_->rtp_packet_transport());
- transport_name_ = rtp_transport_->rtp_packet_transport()->transport_name();
+ transport_name_ = rtp_transport_->transport_name();
if (!ConnectToRtpTransport()) {
RTC_LOG(LS_ERROR) << "Failed to connect to the new RtpTransport.";
@@ -266,13 +265,11 @@
// Set the cached socket options.
for (const auto& pair : socket_options_) {
- rtp_transport_->rtp_packet_transport()->SetOption(pair.first,
- pair.second);
+ rtp_transport_->SetRtpOption(pair.first, pair.second);
}
- if (rtp_transport_->rtcp_packet_transport()) {
+ if (!rtp_transport_->rtcp_mux_enabled()) {
for (const auto& pair : rtcp_socket_options_) {
- rtp_transport_->rtp_packet_transport()->SetOption(pair.first,
- pair.second);
+ rtp_transport_->SetRtcpOption(pair.first, pair.second);
}
}
}
@@ -348,20 +345,17 @@
int value) {
RTC_DCHECK(network_thread_->IsCurrent());
RTC_DCHECK(rtp_transport_);
- rtc::PacketTransportInternal* transport = nullptr;
switch (type) {
case ST_RTP:
- transport = rtp_transport_->rtp_packet_transport();
socket_options_.push_back(
std::pair<rtc::Socket::Option, int>(opt, value));
- break;
+ return rtp_transport_->SetRtpOption(opt, value);
case ST_RTCP:
- transport = rtp_transport_->rtcp_packet_transport();
rtcp_socket_options_.push_back(
std::pair<rtc::Socket::Option, int>(opt, value));
- break;
+ return rtp_transport_->SetRtcpOption(opt, value);
}
- return transport ? transport->SetOption(opt, value) : -1;
+ return -1;
}
void BaseChannel::OnWritableState(bool writable) {