Chromium Code Reviews

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

Issue 1411573007: Removed vie_defines.h (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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 16 matching lines...)
27 #include "webrtc/modules/video_coding/main/interface/video_coding.h" 27 #include "webrtc/modules/video_coding/main/interface/video_coding.h"
28 #include "webrtc/modules/video_processing/main/interface/video_processing.h" 28 #include "webrtc/modules/video_processing/main/interface/video_processing.h"
29 #include "webrtc/modules/video_render/include/video_render_defines.h" 29 #include "webrtc/modules/video_render/include/video_render_defines.h"
30 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" 30 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
31 #include "webrtc/system_wrappers/include/metrics.h" 31 #include "webrtc/system_wrappers/include/metrics.h"
32 #include "webrtc/system_wrappers/include/thread_wrapper.h" 32 #include "webrtc/system_wrappers/include/thread_wrapper.h"
33 #include "webrtc/video/receive_statistics_proxy.h" 33 #include "webrtc/video/receive_statistics_proxy.h"
34 #include "webrtc/video_engine/call_stats.h" 34 #include "webrtc/video_engine/call_stats.h"
35 #include "webrtc/video_engine/payload_router.h" 35 #include "webrtc/video_engine/payload_router.h"
36 #include "webrtc/video_engine/report_block_stats.h" 36 #include "webrtc/video_engine/report_block_stats.h"
37 #include "webrtc/video_engine/vie_defines.h"
38 37
39 namespace webrtc { 38 namespace webrtc {
40 39
41 const int kMaxDecodeWaitTimeMs = 50; 40 const int kMaxDecodeWaitTimeMs = 50;
42 static const int kMaxTargetDelayMs = 10000; 41 static const int kMaxTargetDelayMs = 10000;
43 static const float kMaxIncompleteTimeMultiplier = 3.5f; 42 static const float kMaxIncompleteTimeMultiplier = 3.5f;
43 const int kMinSendSidePacketHistorySize = 600;
44 const int kMaxPacketAgeToNack = 450;
45 const int kMaxNackListSize = 250;
44 46
45 // Helper class receiving statistics callbacks. 47 // Helper class receiving statistics callbacks.
46 class ChannelStatsObserver : public CallStatsObserver { 48 class ChannelStatsObserver : public CallStatsObserver {
47 public: 49 public:
48 explicit ChannelStatsObserver(ViEChannel* owner) : owner_(owner) {} 50 explicit ChannelStatsObserver(ViEChannel* owner) : owner_(owner) {}
49 virtual ~ChannelStatsObserver() {} 51 virtual ~ChannelStatsObserver() {}
50 52
51 // Implements StatsObserver. 53 // Implements StatsObserver.
52 virtual void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) { 54 virtual void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
53 owner_->OnRttUpdate(avg_rtt_ms, max_rtt_ms); 55 owner_->OnRttUpdate(avg_rtt_ms, max_rtt_ms);
(...skipping 48 matching lines...)
102 vie_sync_(vcm_), 104 vie_sync_(vcm_),
103 stats_observer_(new ChannelStatsObserver(this)), 105 stats_observer_(new ChannelStatsObserver(this)),
104 receive_stats_callback_(nullptr), 106 receive_stats_callback_(nullptr),
105 incoming_video_stream_(nullptr), 107 incoming_video_stream_(nullptr),
106 intra_frame_observer_(intra_frame_observer), 108 intra_frame_observer_(intra_frame_observer),
107 rtt_stats_(rtt_stats), 109 rtt_stats_(rtt_stats),
108 paced_sender_(paced_sender), 110 paced_sender_(paced_sender),
109 packet_router_(packet_router), 111 packet_router_(packet_router),
110 bandwidth_observer_(bandwidth_observer), 112 bandwidth_observer_(bandwidth_observer),
111 transport_feedback_observer_(transport_feedback_observer), 113 transport_feedback_observer_(transport_feedback_observer),
112 nack_history_size_sender_(kSendSidePacketHistorySize), 114 nack_history_size_sender_(kMinSendSidePacketHistorySize),
113 max_nack_reordering_threshold_(kMaxPacketAgeToNack), 115 max_nack_reordering_threshold_(kMaxPacketAgeToNack),
114 pre_render_callback_(NULL), 116 pre_render_callback_(NULL),
115 report_block_stats_sender_(new ReportBlockStats()), 117 report_block_stats_sender_(new ReportBlockStats()),
116 time_of_first_rtt_ms_(-1), 118 time_of_first_rtt_ms_(-1),
117 rtt_sum_ms_(0), 119 rtt_sum_ms_(0),
118 last_rtt_ms_(0), 120 last_rtt_ms_(0),
119 num_rtts_(0), 121 num_rtts_(0),
120 rtp_rtcp_modules_( 122 rtp_rtcp_modules_(
121 CreateRtpRtcpModules(!sender, 123 CreateRtpRtcpModules(!sender,
122 vie_receiver_.GetReceiveStatistics(), 124 vie_receiver_.GetReceiveStatistics(),
123 transport, 125 transport,
124 sender ? intra_frame_observer_ : nullptr, 126 sender ? intra_frame_observer_ : nullptr,
125 sender ? bandwidth_observer_.get() : nullptr, 127 sender ? bandwidth_observer_.get() : nullptr,
126 transport_feedback_observer_, 128 transport_feedback_observer_,
127 rtt_stats_, 129 rtt_stats_,
128 &rtcp_packet_type_counter_observer_, 130 &rtcp_packet_type_counter_observer_,
129 remote_bitrate_estimator, 131 remote_bitrate_estimator,
130 paced_sender_, 132 paced_sender_,
131 packet_router_, 133 packet_router_,
132 &send_bitrate_observer_, 134 &send_bitrate_observer_,
133 &send_frame_count_observer_, 135 &send_frame_count_observer_,
134 &send_side_delay_observer_, 136 &send_side_delay_observer_,
135 max_rtp_streams)), 137 max_rtp_streams)),
136 num_active_rtp_rtcp_modules_(1) { 138 num_active_rtp_rtcp_modules_(1) {
137 vie_receiver_.SetRtpRtcpModule(rtp_rtcp_modules_[0]); 139 vie_receiver_.SetRtpRtcpModule(rtp_rtcp_modules_[0]);
138 vcm_->SetNackSettings(kMaxNackListSize, max_nack_reordering_threshold_, 0); 140 vcm_->SetNackSettings(kMaxNackListSize, max_nack_reordering_threshold_, 0);
139 } 141 }
140 142
141 int32_t ViEChannel::Init() { 143 int32_t ViEChannel::Init() {
144 const int kDefaultRenderDelayMs = 10;
pbos-webrtc 2015/10/29 15:39:40 static
mflodman 2015/11/06 11:38:36 Done.
142 module_process_thread_->RegisterModule(vie_receiver_.GetReceiveStatistics()); 145 module_process_thread_->RegisterModule(vie_receiver_.GetReceiveStatistics());
143 146
144 // RTP/RTCP initialization. 147 // RTP/RTCP initialization.
145 module_process_thread_->RegisterModule(rtp_rtcp_modules_[0]); 148 module_process_thread_->RegisterModule(rtp_rtcp_modules_[0]);
146 149
147 rtp_rtcp_modules_[0]->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp); 150 rtp_rtcp_modules_[0]->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp);
148 if (paced_sender_) { 151 if (paced_sender_) {
149 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 152 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
150 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_); 153 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_);
151 } 154 }
152 packet_router_->AddRtpModule(rtp_rtcp_modules_[0]); 155 packet_router_->AddRtpModule(rtp_rtcp_modules_[0]);
153 if (sender_) { 156 if (sender_) {
154 std::list<RtpRtcp*> send_rtp_modules(1, rtp_rtcp_modules_[0]); 157 std::list<RtpRtcp*> send_rtp_modules(1, rtp_rtcp_modules_[0]);
155 send_payload_router_->SetSendingRtpModules(send_rtp_modules); 158 send_payload_router_->SetSendingRtpModules(send_rtp_modules);
156 RTC_DCHECK(!send_payload_router_->active()); 159 RTC_DCHECK(!send_payload_router_->active());
157 } 160 }
158 if (vcm_->RegisterReceiveCallback(this) != 0) { 161 if (vcm_->RegisterReceiveCallback(this) != 0) {
159 return -1; 162 return -1;
160 } 163 }
161 vcm_->RegisterFrameTypeCallback(this); 164 vcm_->RegisterFrameTypeCallback(this);
162 vcm_->RegisterReceiveStatisticsCallback(this); 165 vcm_->RegisterReceiveStatisticsCallback(this);
163 vcm_->RegisterDecoderTimingCallback(this); 166 vcm_->RegisterDecoderTimingCallback(this);
164 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs); 167 vcm_->SetRenderDelay(kDefaultRenderDelayMs);
165 168
166 module_process_thread_->RegisterModule(vcm_); 169 module_process_thread_->RegisterModule(vcm_);
167 module_process_thread_->RegisterModule(&vie_sync_); 170 module_process_thread_->RegisterModule(&vie_sync_);
168 171
169 return 0; 172 return 0;
170 } 173 }
171 174
172 ViEChannel::~ViEChannel() { 175 ViEChannel::~ViEChannel() {
173 UpdateHistograms(); 176 UpdateHistograms();
174 // Make sure we don't get more callbacks from the RTP module. 177 // Make sure we don't get more callbacks from the RTP module.
(...skipping 380 matching lines...)
555 return false; 558 return false;
556 } 559 }
557 560
558 int ViEChannel::SetSenderBufferingMode(int target_delay_ms) { 561 int ViEChannel::SetSenderBufferingMode(int target_delay_ms) {
559 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) { 562 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) {
560 LOG(LS_ERROR) << "Invalid send buffer value."; 563 LOG(LS_ERROR) << "Invalid send buffer value.";
561 return -1; 564 return -1;
562 } 565 }
563 if (target_delay_ms == 0) { 566 if (target_delay_ms == 0) {
564 // Real-time mode. 567 // Real-time mode.
565 nack_history_size_sender_ = kSendSidePacketHistorySize; 568 nack_history_size_sender_ = kMinSendSidePacketHistorySize;
566 } else { 569 } else {
567 nack_history_size_sender_ = GetRequiredNackListSize(target_delay_ms); 570 nack_history_size_sender_ = GetRequiredNackListSize(target_delay_ms);
568 // Don't allow a number lower than the default value. 571 // Don't allow a number lower than the default value.
569 if (nack_history_size_sender_ < kSendSidePacketHistorySize) { 572 if (nack_history_size_sender_ < kMinSendSidePacketHistorySize) {
570 nack_history_size_sender_ = kSendSidePacketHistorySize; 573 nack_history_size_sender_ = kMinSendSidePacketHistorySize;
571 } 574 }
572 } 575 }
573 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 576 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
574 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_); 577 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_);
575 return 0; 578 return 0;
576 } 579 }
577 580
578 int ViEChannel::SetReceiverBufferingMode(int target_delay_ms) { 581 int ViEChannel::SetReceiverBufferingMode(int target_delay_ms) {
579 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) { 582 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) {
580 LOG(LS_ERROR) << "Invalid receive buffer delay value."; 583 LOG(LS_ERROR) << "Invalid receive buffer delay value.";
(...skipping 663 matching lines...)
1244 CriticalSectionScoped cs(crit_.get()); 1247 CriticalSectionScoped cs(crit_.get());
1245 receive_stats_callback_ = receive_statistics_proxy; 1248 receive_stats_callback_ = receive_statistics_proxy;
1246 } 1249 }
1247 1250
1248 void ViEChannel::SetIncomingVideoStream( 1251 void ViEChannel::SetIncomingVideoStream(
1249 IncomingVideoStream* incoming_video_stream) { 1252 IncomingVideoStream* incoming_video_stream) {
1250 CriticalSectionScoped cs(crit_.get()); 1253 CriticalSectionScoped cs(crit_.get());
1251 incoming_video_stream_ = incoming_video_stream; 1254 incoming_video_stream_ = incoming_video_stream;
1252 } 1255 }
1253 } // namespace webrtc 1256 } // namespace webrtc
OLDNEW

Powered by Google App Engine