Chromium Code Reviews| 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 |