OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 107 matching lines...) Loading... | |
118 public: | 118 public: |
119 RtpPacketSenderProxy() : rtp_packet_sender_(nullptr) { | 119 RtpPacketSenderProxy() : rtp_packet_sender_(nullptr) { |
120 } | 120 } |
121 | 121 |
122 void SetPacketSender(RtpPacketSender* rtp_packet_sender) { | 122 void SetPacketSender(RtpPacketSender* rtp_packet_sender) { |
123 RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 123 RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
124 rtc::CritScope lock(&crit_); | 124 rtc::CritScope lock(&crit_); |
125 rtp_packet_sender_ = rtp_packet_sender; | 125 rtp_packet_sender_ = rtp_packet_sender; |
126 } | 126 } |
127 | 127 |
128 bool HasPacketSender() const { | |
129 RTC_DCHECK(thread_checker_.CalledOnValidThread()); | |
130 rtc::CritScope lock(&crit_); | |
131 return rtp_packet_sender_ != nullptr; | |
132 } | |
133 | |
128 // Implements RtpPacketSender. | 134 // Implements RtpPacketSender. |
129 void InsertPacket(Priority priority, | 135 void InsertPacket(Priority priority, |
130 uint32_t ssrc, | 136 uint32_t ssrc, |
131 uint16_t sequence_number, | 137 uint16_t sequence_number, |
132 int64_t capture_time_ms, | 138 int64_t capture_time_ms, |
133 size_t bytes, | 139 size_t bytes, |
134 bool retransmission) override { | 140 bool retransmission) override { |
135 rtc::CritScope lock(&crit_); | 141 rtc::CritScope lock(&crit_); |
136 if (rtp_packet_sender_) { | 142 if (rtp_packet_sender_) { |
137 rtp_packet_sender_->InsertPacket(priority, ssrc, sequence_number, | 143 rtp_packet_sender_->InsertPacket(priority, ssrc, sequence_number, |
(...skipping 2777 matching lines...) Loading... | |
2915 kRtpExtensionTransportSequenceNumber); | 2921 kRtpExtensionTransportSequenceNumber); |
2916 bool ret = rtp_header_parser_->RegisterRtpHeaderExtension( | 2922 bool ret = rtp_header_parser_->RegisterRtpHeaderExtension( |
2917 kRtpExtensionTransportSequenceNumber, id); | 2923 kRtpExtensionTransportSequenceNumber, id); |
2918 RTC_DCHECK(ret); | 2924 RTC_DCHECK(ret); |
2919 } | 2925 } |
2920 | 2926 |
2921 void Channel::SetCongestionControlObjects( | 2927 void Channel::SetCongestionControlObjects( |
2922 RtpPacketSender* rtp_packet_sender, | 2928 RtpPacketSender* rtp_packet_sender, |
2923 TransportFeedbackObserver* transport_feedback_observer, | 2929 TransportFeedbackObserver* transport_feedback_observer, |
2924 PacketRouter* packet_router) { | 2930 PacketRouter* packet_router) { |
2931 bool sender = rtp_packet_sender != nullptr || | |
2932 (rtp_packet_sender_proxy_.get() && | |
2933 rtp_packet_sender_proxy_->HasPacketSender()); | |
the sun
2016/01/25 15:42:01
Can this property change as a consequence of this
stefan-webrtc
2016/01/25 16:00:26
It can change to null as the stream is being teare
the sun
2016/01/26 09:17:03
Very well, but I think this code is becoming hard
stefan-webrtc
2016/01/26 10:50:38
Agree, done.
| |
2925 RTC_DCHECK(packet_router != nullptr || packet_router_ != nullptr); | 2934 RTC_DCHECK(packet_router != nullptr || packet_router_ != nullptr); |
2926 if (transport_feedback_observer) { | 2935 if (transport_feedback_observer) { |
2927 RTC_DCHECK(feedback_observer_proxy_.get()); | 2936 RTC_DCHECK(feedback_observer_proxy_.get()); |
2928 feedback_observer_proxy_->SetTransportFeedbackObserver( | 2937 feedback_observer_proxy_->SetTransportFeedbackObserver( |
2929 transport_feedback_observer); | 2938 transport_feedback_observer); |
2930 } | 2939 } |
2931 if (rtp_packet_sender) { | 2940 if (rtp_packet_sender) { |
2932 RTC_DCHECK(rtp_packet_sender_proxy_.get()); | 2941 RTC_DCHECK(rtp_packet_sender_proxy_.get()); |
2933 rtp_packet_sender_proxy_->SetPacketSender(rtp_packet_sender); | 2942 rtp_packet_sender_proxy_->SetPacketSender(rtp_packet_sender); |
2934 } | 2943 } |
2935 if (seq_num_allocator_proxy_.get()) { | 2944 if (seq_num_allocator_proxy_.get()) { |
2936 seq_num_allocator_proxy_->SetSequenceNumberAllocator(packet_router); | 2945 seq_num_allocator_proxy_->SetSequenceNumberAllocator(packet_router); |
2937 } | 2946 } |
2938 _rtpRtcpModule->SetStorePacketsStatus(rtp_packet_sender != nullptr, 600); | 2947 _rtpRtcpModule->SetStorePacketsStatus(rtp_packet_sender != nullptr, 600); |
2939 if (packet_router != nullptr) { | 2948 if (packet_router != nullptr) { |
2940 packet_router->AddRtpModule(_rtpRtcpModule.get()); | 2949 packet_router->AddRtpModule(_rtpRtcpModule.get(), sender); |
2941 } else { | 2950 } else { |
2942 packet_router_->RemoveRtpModule(_rtpRtcpModule.get()); | 2951 packet_router_->RemoveRtpModule(_rtpRtcpModule.get(), sender); |
2943 } | 2952 } |
2944 packet_router_ = packet_router; | 2953 packet_router_ = packet_router; |
2945 } | 2954 } |
2946 | 2955 |
2947 void Channel::SetRTCPStatus(bool enable) { | 2956 void Channel::SetRTCPStatus(bool enable) { |
2948 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId), | 2957 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId), |
2949 "Channel::SetRTCPStatus()"); | 2958 "Channel::SetRTCPStatus()"); |
2950 _rtpRtcpModule->SetRTCPStatus(enable ? RtcpMode::kCompound : RtcpMode::kOff); | 2959 _rtpRtcpModule->SetRTCPStatus(enable ? RtcpMode::kCompound : RtcpMode::kOff); |
2951 } | 2960 } |
2952 | 2961 |
(...skipping 1151 matching lines...) Loading... | |
4104 int64_t min_rtt = 0; | 4113 int64_t min_rtt = 0; |
4105 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) | 4114 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) |
4106 != 0) { | 4115 != 0) { |
4107 return 0; | 4116 return 0; |
4108 } | 4117 } |
4109 return rtt; | 4118 return rtt; |
4110 } | 4119 } |
4111 | 4120 |
4112 } // namespace voe | 4121 } // namespace voe |
4113 } // namespace webrtc | 4122 } // namespace webrtc |
OLD | NEW |