Index: webrtc/pc/rtptransport.cc |
diff --git a/webrtc/pc/rtptransport.cc b/webrtc/pc/rtptransport.cc |
index eb463db0bfb53afd7a045ca38613aac7479b10ae..f11fe36c01518c91c0230d53fd6bcd3a5b7104be 100644 |
--- a/webrtc/pc/rtptransport.cc |
+++ b/webrtc/pc/rtptransport.cc |
@@ -11,13 +11,57 @@ |
#include "webrtc/pc/rtptransport.h" |
#include "webrtc/base/checks.h" |
+#include "webrtc/base/ptr_util.h" |
namespace webrtc { |
+RtpTransport::RtpTransport(bool rtcp_mux_required) |
+ : rtcp_mux_required_(rtcp_mux_required), |
+ rtp_packet_transport_wrapper_(rtc::MakeUnique<PacketTransportWrapper>()), |
+ rtcp_packet_transport_wrapper_( |
+ rtc::MakeUnique<PacketTransportWrapper>()) {} |
+ |
+void RtpTransport::set_rtp_packet_transport(rtc::PacketTransportInternal* rtp) { |
+ rtp_packet_transport_wrapper_->set_transport(rtp); |
+} |
+ |
void RtpTransport::set_rtcp_packet_transport( |
rtc::PacketTransportInternal* rtcp) { |
RTC_DCHECK(!rtcp_mux_required_); |
- rtcp_packet_transport_ = rtcp; |
+ rtcp_packet_transport_wrapper_->set_transport(rtcp); |
+} |
+ |
+PacketTransportInterface* RtpTransport::GetRtpPacketTransport() const { |
+ return rtp_packet_transport_wrapper_.get(); |
+} |
+ |
+PacketTransportInterface* RtpTransport::GetRtcpPacketTransport() const { |
+ return rtcp_packet_transport_wrapper_.get(); |
+} |
+ |
+RTCError RtpTransport::SetRtcpParameters(const RtcpParameters& parameters) { |
+ // disabling mux is not allowed |
+ if (rtcp_parameters_.mux && !parameters.mux) { |
+ return RTCError(RTCErrorType::INVALID_PARAMETER, |
+ "disabling mux is not allowed"); |
Taylor Brandstetter
2017/04/07 04:16:03
Can use the LOG_AND_RETURN_ERROR macro so this get
Zach Stein
2017/04/10 22:37:43
Done.
|
+ } |
+ |
+ RtcpParameters new_parameters = parameters; |
+ |
+ if (new_parameters.cname.empty()) { |
+ new_parameters.cname = rtcp_parameters_.cname; |
+ } |
+ |
+ rtcp_parameters_ = new_parameters; |
+ return RTCError::OK(); |
+} |
+ |
+RtcpParameters RtpTransport::GetRtcpParameters() const { |
+ return rtcp_parameters_; |
+} |
+ |
+RtpTransportAdapter* RtpTransport::GetInternal() { |
+ return nullptr; |
} |
} // namespace webrtc |