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

Side by Side Diff: webrtc/video_engine/vie_channel.cc

Issue 1351403008: Add delay metric (includes network delay (rtt/2) + jitter delay + decode time + (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « webrtc/video_engine/vie_channel.h ('k') | no next file » | 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 paced_sender_(paced_sender), 108 paced_sender_(paced_sender),
109 packet_router_(packet_router), 109 packet_router_(packet_router),
110 bandwidth_observer_(bandwidth_observer), 110 bandwidth_observer_(bandwidth_observer),
111 transport_feedback_observer_(transport_feedback_observer), 111 transport_feedback_observer_(transport_feedback_observer),
112 nack_history_size_sender_(kSendSidePacketHistorySize), 112 nack_history_size_sender_(kSendSidePacketHistorySize),
113 max_nack_reordering_threshold_(kMaxPacketAgeToNack), 113 max_nack_reordering_threshold_(kMaxPacketAgeToNack),
114 pre_render_callback_(NULL), 114 pre_render_callback_(NULL),
115 report_block_stats_sender_(new ReportBlockStats()), 115 report_block_stats_sender_(new ReportBlockStats()),
116 time_of_first_rtt_ms_(-1), 116 time_of_first_rtt_ms_(-1),
117 rtt_sum_ms_(0), 117 rtt_sum_ms_(0),
118 last_rtt_ms_(0),
118 num_rtts_(0), 119 num_rtts_(0),
119 rtp_rtcp_modules_( 120 rtp_rtcp_modules_(
120 CreateRtpRtcpModules(!sender, 121 CreateRtpRtcpModules(!sender,
121 vie_receiver_.GetReceiveStatistics(), 122 vie_receiver_.GetReceiveStatistics(),
122 transport, 123 transport,
123 sender ? intra_frame_observer_ : nullptr, 124 sender ? intra_frame_observer_ : nullptr,
124 sender ? bandwidth_observer_.get() : nullptr, 125 sender ? bandwidth_observer_.get() : nullptr,
125 transport_feedback_observer_, 126 transport_feedback_observer_,
126 rtt_stats_, 127 rtt_stats_,
127 &rtcp_packet_type_counter_observer_, 128 &rtcp_packet_type_counter_observer_,
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 int current_delay_ms, 1062 int current_delay_ms,
1062 int target_delay_ms, 1063 int target_delay_ms,
1063 int jitter_buffer_ms, 1064 int jitter_buffer_ms,
1064 int min_playout_delay_ms, 1065 int min_playout_delay_ms,
1065 int render_delay_ms) { 1066 int render_delay_ms) {
1066 CriticalSectionScoped cs(crit_.get()); 1067 CriticalSectionScoped cs(crit_.get());
1067 if (!receive_stats_callback_) 1068 if (!receive_stats_callback_)
1068 return; 1069 return;
1069 receive_stats_callback_->OnDecoderTiming( 1070 receive_stats_callback_->OnDecoderTiming(
1070 decode_ms, max_decode_ms, current_delay_ms, target_delay_ms, 1071 decode_ms, max_decode_ms, current_delay_ms, target_delay_ms,
1071 jitter_buffer_ms, min_playout_delay_ms, render_delay_ms); 1072 jitter_buffer_ms, min_playout_delay_ms, render_delay_ms, last_rtt_ms_);
1072 } 1073 }
1073 1074
1074 int32_t ViEChannel::RequestKeyFrame() { 1075 int32_t ViEChannel::RequestKeyFrame() {
1075 return rtp_rtcp_modules_[0]->RequestKeyFrame(); 1076 return rtp_rtcp_modules_[0]->RequestKeyFrame();
1076 } 1077 }
1077 1078
1078 int32_t ViEChannel::SliceLossIndicationRequest( 1079 int32_t ViEChannel::SliceLossIndicationRequest(
1079 const uint64_t picture_id) { 1080 const uint64_t picture_id) {
1080 return rtp_rtcp_modules_[0]->SendRTCPSliceLossIndication( 1081 return rtp_rtcp_modules_[0]->SendRTCPSliceLossIndication(
1081 static_cast<uint8_t>(picture_id)); 1082 static_cast<uint8_t>(picture_id));
(...skipping 13 matching lines...) Expand all
1095 return true; 1096 return true;
1096 } 1097 }
1097 1098
1098 void ViEChannel::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) { 1099 void ViEChannel::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
1099 vcm_->SetReceiveChannelParameters(max_rtt_ms); 1100 vcm_->SetReceiveChannelParameters(max_rtt_ms);
1100 1101
1101 CriticalSectionScoped cs(crit_.get()); 1102 CriticalSectionScoped cs(crit_.get());
1102 if (time_of_first_rtt_ms_ == -1) 1103 if (time_of_first_rtt_ms_ == -1)
1103 time_of_first_rtt_ms_ = Clock::GetRealTimeClock()->TimeInMilliseconds(); 1104 time_of_first_rtt_ms_ = Clock::GetRealTimeClock()->TimeInMilliseconds();
1104 rtt_sum_ms_ += avg_rtt_ms; 1105 rtt_sum_ms_ += avg_rtt_ms;
1106 last_rtt_ms_ = avg_rtt_ms;
1105 ++num_rtts_; 1107 ++num_rtts_;
1106 } 1108 }
1107 1109
1108 int ViEChannel::ProtectionRequest(const FecProtectionParams* delta_fec_params, 1110 int ViEChannel::ProtectionRequest(const FecProtectionParams* delta_fec_params,
1109 const FecProtectionParams* key_fec_params, 1111 const FecProtectionParams* key_fec_params,
1110 uint32_t* video_rate_bps, 1112 uint32_t* video_rate_bps,
1111 uint32_t* nack_rate_bps, 1113 uint32_t* nack_rate_bps,
1112 uint32_t* fec_rate_bps) { 1114 uint32_t* fec_rate_bps) {
1113 *video_rate_bps = 0; 1115 *video_rate_bps = 0;
1114 *nack_rate_bps = 0; 1116 *nack_rate_bps = 0;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1253 CriticalSectionScoped cs(crit_.get()); 1255 CriticalSectionScoped cs(crit_.get());
1254 receive_stats_callback_ = receive_statistics_proxy; 1256 receive_stats_callback_ = receive_statistics_proxy;
1255 } 1257 }
1256 1258
1257 void ViEChannel::SetIncomingVideoStream( 1259 void ViEChannel::SetIncomingVideoStream(
1258 IncomingVideoStream* incoming_video_stream) { 1260 IncomingVideoStream* incoming_video_stream) {
1259 CriticalSectionScoped cs(crit_.get()); 1261 CriticalSectionScoped cs(crit_.get());
1260 incoming_video_stream_ = incoming_video_stream; 1262 incoming_video_stream_ = incoming_video_stream;
1261 } 1263 }
1262 } // namespace webrtc 1264 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video_engine/vie_channel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698