| Index: webrtc/pc/rtptransport.cc
|
| diff --git a/webrtc/pc/rtptransport.cc b/webrtc/pc/rtptransport.cc
|
| index 76bc639cbcfb3685e40ef46bb605d1198225f4d3..1d5fb77eaf97bbfbc716fde8df55a8602adb1e5c 100644
|
| --- a/webrtc/pc/rtptransport.cc
|
| +++ b/webrtc/pc/rtptransport.cc
|
| @@ -25,6 +25,38 @@ void RtpTransport::set_rtcp_packet_transport(
|
| rtcp_packet_transport_ = rtcp;
|
| }
|
|
|
| +void RtpTransport::Connect(bool rtcp) {
|
| + rtc::PacketTransportInternal* transport =
|
| + rtcp ? rtcp_packet_transport_ : rtp_packet_transport_;
|
| + RTC_DCHECK(transport);
|
| + transport->SignalReadyToSend.connect(this, &RtpTransport::OnReadyToSend);
|
| +}
|
| +
|
| +void RtpTransport::Disconnect(bool rtcp) {
|
| + rtc::PacketTransportInternal* transport =
|
| + rtcp ? rtcp_packet_transport_ : rtp_packet_transport_;
|
| + RTC_DCHECK(transport);
|
| + transport->SignalReadyToSend.disconnect(this);
|
| +}
|
| +
|
| +void RtpTransport::OnReadyToSend(rtc::PacketTransportInternal* transport) {
|
| + SetReadyToSend(transport == rtcp_packet_transport_, true);
|
| +}
|
| +
|
| +void RtpTransport::SetReadyToSend(bool rtcp, bool ready) {
|
| + if (rtcp) {
|
| + rtcp_ready_to_send_ = ready;
|
| + } else {
|
| + rtp_ready_to_send_ = ready;
|
| + }
|
| +
|
| + // In the case of rtcp mux |rtcp_packet_transport_| will be null.
|
| + // TODO(zstein): A better way to verify that rtcp mux is enabled.
|
| + bool ready_to_send =
|
| + rtp_ready_to_send_ && (rtcp_ready_to_send_ || !rtcp_packet_transport_);
|
| + SignalReadyToSend(ready_to_send);
|
| +}
|
| +
|
| PacketTransportInterface* RtpTransport::GetRtpPacketTransport() const {
|
| return rtp_packet_transport_;
|
| }
|
|
|