Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Unified Diff: webrtc/pc/rtptransport.cc

Issue 2812243005: Move ready to send logic from BaseChannel to RtpTransport. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;
}

Powered by Google App Engine
This is Rietveld 408576698