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

Side by Side Diff: webrtc/voice_engine/channel.cc

Issue 2530383002: Reland "Update rtt on audio only calls". (Closed)
Patch Set: Rebased. Created 4 years 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 unified diff | Download patch
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/channel_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 rtc::CritScope lock(&crit_); 144 rtc::CritScope lock(&crit_);
145 event_log_ = event_log; 145 event_log_ = event_log;
146 } 146 }
147 147
148 private: 148 private:
149 rtc::CriticalSection crit_; 149 rtc::CriticalSection crit_;
150 RtcEventLog* event_log_ GUARDED_BY(crit_); 150 RtcEventLog* event_log_ GUARDED_BY(crit_);
151 RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogProxy); 151 RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogProxy);
152 }; 152 };
153 153
154 class RtcpRttStatsProxy final : public RtcpRttStats {
155 public:
156 RtcpRttStatsProxy() : rtcp_rtt_stats_(nullptr) {}
157
158 void OnRttUpdate(int64_t rtt) override {
159 rtc::CritScope lock(&crit_);
160 if (rtcp_rtt_stats_)
161 rtcp_rtt_stats_->OnRttUpdate(rtt);
162 }
163
164 int64_t LastProcessedRtt() const override {
165 rtc::CritScope lock(&crit_);
166 if (!rtcp_rtt_stats_)
167 return 0;
168 return rtcp_rtt_stats_->LastProcessedRtt();
169 }
170
171 void SetRtcpRttStats(RtcpRttStats* rtcp_rtt_stats) {
172 rtc::CritScope lock(&crit_);
173 rtcp_rtt_stats_ = rtcp_rtt_stats;
174 }
175
176 private:
177 rtc::CriticalSection crit_;
178 RtcpRttStats* rtcp_rtt_stats_ GUARDED_BY(crit_);
179 RTC_DISALLOW_COPY_AND_ASSIGN(RtcpRttStatsProxy);
180 };
181
154 class TransportFeedbackProxy : public TransportFeedbackObserver { 182 class TransportFeedbackProxy : public TransportFeedbackObserver {
155 public: 183 public:
156 TransportFeedbackProxy() : feedback_observer_(nullptr) { 184 TransportFeedbackProxy() : feedback_observer_(nullptr) {
157 pacer_thread_.DetachFromThread(); 185 pacer_thread_.DetachFromThread();
158 network_thread_.DetachFromThread(); 186 network_thread_.DetachFromThread();
159 } 187 }
160 188
161 void SetTransportFeedbackObserver( 189 void SetTransportFeedbackObserver(
162 TransportFeedbackObserver* feedback_observer) { 190 TransportFeedbackObserver* feedback_observer) {
163 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 191 RTC_DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 "Channel::RecordFileEnded() => output file recorder module is" 855 "Channel::RecordFileEnded() => output file recorder module is"
828 " shutdown"); 856 " shutdown");
829 } 857 }
830 858
831 Channel::Channel(int32_t channelId, 859 Channel::Channel(int32_t channelId,
832 uint32_t instanceId, 860 uint32_t instanceId,
833 const VoEBase::ChannelConfig& config) 861 const VoEBase::ChannelConfig& config)
834 : _instanceId(instanceId), 862 : _instanceId(instanceId),
835 _channelId(channelId), 863 _channelId(channelId),
836 event_log_proxy_(new RtcEventLogProxy()), 864 event_log_proxy_(new RtcEventLogProxy()),
865 rtcp_rtt_stats_proxy_(new RtcpRttStatsProxy()),
837 rtp_header_parser_(RtpHeaderParser::Create()), 866 rtp_header_parser_(RtpHeaderParser::Create()),
838 rtp_payload_registry_(new RTPPayloadRegistry()), 867 rtp_payload_registry_(new RTPPayloadRegistry()),
839 rtp_receive_statistics_( 868 rtp_receive_statistics_(
840 ReceiveStatistics::Create(Clock::GetRealTimeClock())), 869 ReceiveStatistics::Create(Clock::GetRealTimeClock())),
841 rtp_receiver_( 870 rtp_receiver_(
842 RtpReceiver::CreateAudioReceiver(Clock::GetRealTimeClock(), 871 RtpReceiver::CreateAudioReceiver(Clock::GetRealTimeClock(),
843 this, 872 this,
844 this, 873 this,
845 rtp_payload_registry_.get())), 874 rtp_payload_registry_.get())),
846 telephone_event_handler_(rtp_receiver_->GetTelephoneEventHandler()), 875 telephone_event_handler_(rtp_receiver_->GetTelephoneEventHandler()),
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 configuration.outgoing_transport = this; 942 configuration.outgoing_transport = this;
914 configuration.receive_statistics = rtp_receive_statistics_.get(); 943 configuration.receive_statistics = rtp_receive_statistics_.get();
915 configuration.bandwidth_callback = rtcp_observer_.get(); 944 configuration.bandwidth_callback = rtcp_observer_.get();
916 if (pacing_enabled_) { 945 if (pacing_enabled_) {
917 configuration.paced_sender = rtp_packet_sender_proxy_.get(); 946 configuration.paced_sender = rtp_packet_sender_proxy_.get();
918 configuration.transport_sequence_number_allocator = 947 configuration.transport_sequence_number_allocator =
919 seq_num_allocator_proxy_.get(); 948 seq_num_allocator_proxy_.get();
920 configuration.transport_feedback_callback = feedback_observer_proxy_.get(); 949 configuration.transport_feedback_callback = feedback_observer_proxy_.get();
921 } 950 }
922 configuration.event_log = &(*event_log_proxy_); 951 configuration.event_log = &(*event_log_proxy_);
952 configuration.rtt_stats = &(*rtcp_rtt_stats_proxy_);
923 configuration.retransmission_rate_limiter = 953 configuration.retransmission_rate_limiter =
924 retransmission_rate_limiter_.get(); 954 retransmission_rate_limiter_.get();
925 955
926 _rtpRtcpModule.reset(RtpRtcp::CreateRtpRtcp(configuration)); 956 _rtpRtcpModule.reset(RtpRtcp::CreateRtpRtcp(configuration));
927 _rtpRtcpModule->SetSendingMediaStatus(false); 957 _rtpRtcpModule->SetSendingMediaStatus(false);
928 958
929 statistics_proxy_.reset(new StatisticsProxy(_rtpRtcpModule->SSRC())); 959 statistics_proxy_.reset(new StatisticsProxy(_rtpRtcpModule->SSRC()));
930 rtp_receive_statistics_->RegisterRtcpStatisticsCallback( 960 rtp_receive_statistics_->RegisterRtcpStatisticsCallback(
931 statistics_proxy_.get()); 961 statistics_proxy_.get());
932 } 962 }
(...skipping 1909 matching lines...) Expand 10 before | Expand all | Expand 10 after
2842 // Channel ID, disassociate with it. 2872 // Channel ID, disassociate with it.
2843 ChannelOwner ref(NULL); 2873 ChannelOwner ref(NULL);
2844 associate_send_channel_ = ref; 2874 associate_send_channel_ = ref;
2845 } 2875 }
2846 } 2876 }
2847 2877
2848 void Channel::SetRtcEventLog(RtcEventLog* event_log) { 2878 void Channel::SetRtcEventLog(RtcEventLog* event_log) {
2849 event_log_proxy_->SetEventLog(event_log); 2879 event_log_proxy_->SetEventLog(event_log);
2850 } 2880 }
2851 2881
2882 void Channel::SetRtcpRttStats(RtcpRttStats* rtcp_rtt_stats) {
2883 rtcp_rtt_stats_proxy_->SetRtcpRttStats(rtcp_rtt_stats);
2884 }
2885
2852 void Channel::SetTransportOverhead(int transport_overhead_per_packet) { 2886 void Channel::SetTransportOverhead(int transport_overhead_per_packet) {
2853 _rtpRtcpModule->SetTransportOverhead(transport_overhead_per_packet); 2887 _rtpRtcpModule->SetTransportOverhead(transport_overhead_per_packet);
2854 } 2888 }
2855 2889
2856 int Channel::RegisterExternalMediaProcessing(ProcessingTypes type, 2890 int Channel::RegisterExternalMediaProcessing(ProcessingTypes type,
2857 VoEMediaProcess& processObject) { 2891 VoEMediaProcess& processObject) {
2858 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId), 2892 WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
2859 "Channel::RegisterExternalMediaProcessing()"); 2893 "Channel::RegisterExternalMediaProcessing()");
2860 2894
2861 rtc::CritScope cs(&_callbackCritSect); 2895 rtc::CritScope cs(&_callbackCritSect);
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
3251 int64_t min_rtt = 0; 3285 int64_t min_rtt = 0;
3252 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) != 3286 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) !=
3253 0) { 3287 0) {
3254 return 0; 3288 return 0;
3255 } 3289 }
3256 return rtt; 3290 return rtt;
3257 } 3291 }
3258 3292
3259 } // namespace voe 3293 } // namespace voe
3260 } // namespace webrtc 3294 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/channel_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698