Make RtpTransport actually implement RtpTransportInterface

BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2805783002
Cr-Commit-Position: refs/heads/master@{#17628}
This commit is contained in:
zstein 2017-04-10 16:17:57 -07:00 committed by Commit bot
parent 0f92c796b4
commit d9ce76444f
2 changed files with 54 additions and 6 deletions

View File

@ -11,13 +11,50 @@
#include "webrtc/pc/rtptransport.h"
#include "webrtc/base/checks.h"
#include "webrtc/p2p/base/packettransportinterface.h"
namespace webrtc {
void RtpTransport::set_rtp_packet_transport(rtc::PacketTransportInternal* rtp) {
rtp_packet_transport_ = rtp;
}
void RtpTransport::set_rtcp_packet_transport(
rtc::PacketTransportInternal* rtcp) {
RTC_DCHECK(!rtcp_mux_required_);
rtcp_packet_transport_ = rtcp;
}
PacketTransportInterface* RtpTransport::GetRtpPacketTransport() const {
return rtp_packet_transport_;
}
PacketTransportInterface* RtpTransport::GetRtcpPacketTransport() const {
return rtcp_packet_transport_;
}
RTCError RtpTransport::SetRtcpParameters(const RtcpParameters& parameters) {
if (rtcp_parameters_.mux && !parameters.mux) {
LOG_AND_RETURN_ERROR(RTCErrorType::INVALID_STATE,
"Disabling RTCP muxing is not allowed.");
}
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

View File

@ -11,6 +11,8 @@
#ifndef WEBRTC_PC_RTPTRANSPORT_H_
#define WEBRTC_PC_RTPTRANSPORT_H_
#include "webrtc/api/ortc/rtptransportinterface.h"
namespace rtc {
class PacketTransportInternal;
@ -19,7 +21,7 @@ class PacketTransportInternal;
namespace webrtc {
class RtpTransport {
class RtpTransport : public RtpTransportInterface {
public:
RtpTransport(const RtpTransport&) = delete;
RtpTransport& operator=(const RtpTransport&) = delete;
@ -32,24 +34,33 @@ class RtpTransport {
rtc::PacketTransportInternal* rtp_packet_transport() const {
return rtp_packet_transport_;
}
void set_rtp_packet_transport(rtc::PacketTransportInternal* rtp) {
rtp_packet_transport_ = rtp;
}
void set_rtp_packet_transport(rtc::PacketTransportInternal* rtp);
rtc::PacketTransportInternal* rtcp_packet_transport() const {
return rtcp_packet_transport_;
}
void set_rtcp_packet_transport(rtc::PacketTransportInternal* rtcp);
PacketTransportInterface* GetRtpPacketTransport() const override;
PacketTransportInterface* GetRtcpPacketTransport() const override;
// TODO(zstein): Use these RtcpParameters for configuration elsewhere.
RTCError SetRtcpParameters(const RtcpParameters& parameters) override;
RtcpParameters GetRtcpParameters() const override;
protected:
// TODO(zstein): Remove this when we remove RtpTransportAdapter.
RtpTransportAdapter* GetInternal() override;
private:
// True if RTCP-multiplexing is required. rtcp_packet_transport_ should
// always be null in this case.
const bool rtcp_mux_required_;
// TODO(zstein): Revisit ownership here - transports are currently owned by
// TransportController
rtc::PacketTransportInternal* rtp_packet_transport_ = nullptr;
rtc::PacketTransportInternal* rtcp_packet_transport_ = nullptr;
RtcpParameters rtcp_parameters_;
};
} // namespace webrtc