Index: webrtc/pc/rtptransport.h |
diff --git a/webrtc/pc/rtptransport.h b/webrtc/pc/rtptransport.h |
index 5dbebe6ed9a6fdad4674cf54af601b5ccd67a1e0..c42a34ac62da49e425d03d9c4541afe4571fda75 100644 |
--- a/webrtc/pc/rtptransport.h |
+++ b/webrtc/pc/rtptransport.h |
@@ -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,37 +21,63 @@ class PacketTransportInternal; |
namespace webrtc { |
-class RtpTransport { |
+class PacketTransportWrapper : public PacketTransportInterface { |
Taylor Brandstetter
2017/04/07 04:16:03
I was confused about why this was necessary until
Zach Stein
2017/04/10 22:37:43
Done.
|
+ public: |
+ PacketTransportWrapper() = default; |
+ explicit PacketTransportWrapper(rtc::PacketTransportInternal* transport) |
+ : transport_(transport) {} |
+ |
+ rtc::PacketTransportInternal* transport() const { return transport_; } |
+ |
+ void set_transport(rtc::PacketTransportInternal* transport) { |
+ transport_ = transport; |
+ } |
+ |
+ protected: |
+ rtc::PacketTransportInternal* GetInternal() { return transport_; } |
+ |
+ private: |
+ rtc::PacketTransportInternal* transport_ = nullptr; |
+}; |
+ |
+class RtpTransport : public RtpTransportInterface { |
public: |
RtpTransport(const RtpTransport&) = delete; |
RtpTransport& operator=(const RtpTransport&) = delete; |
- explicit RtpTransport(bool rtcp_mux_required) |
- : rtcp_mux_required_(rtcp_mux_required) {} |
+ explicit RtpTransport(bool rtcp_mux_required); |
bool rtcp_mux_required() const { return rtcp_mux_required_; } |
rtc::PacketTransportInternal* rtp_packet_transport() const { |
- return rtp_packet_transport_; |
- } |
- void set_rtp_packet_transport(rtc::PacketTransportInternal* rtp) { |
- rtp_packet_transport_ = rtp; |
+ return rtp_packet_transport_wrapper_->transport(); |
} |
+ void set_rtp_packet_transport(rtc::PacketTransportInternal* rtp); |
rtc::PacketTransportInternal* rtcp_packet_transport() const { |
- return rtcp_packet_transport_; |
+ return rtcp_packet_transport_wrapper_->transport(); |
} |
void set_rtcp_packet_transport(rtc::PacketTransportInternal* rtcp); |
+ PacketTransportInterface* GetRtpPacketTransport() const override; |
+ PacketTransportInterface* GetRtcpPacketTransport() const override; |
+ |
+ RTCError SetRtcpParameters(const RtcpParameters& parameters) override; |
+ RtcpParameters GetRtcpParameters() const override; |
Taylor Brandstetter
2017/04/07 04:16:03
Since these methods aren't used anywhere yet, can
Zach Stein
2017/04/10 22:37:43
Done.
|
+ |
+ 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; |
+ std::unique_ptr<PacketTransportWrapper> rtp_packet_transport_wrapper_; |
+ std::unique_ptr<PacketTransportWrapper> rtcp_packet_transport_wrapper_; |
+ |
+ RtcpParameters rtcp_parameters_; |
}; |
} // namespace webrtc |