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

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: Rebase Created 5 years, 1 month 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') | webrtc/video_engine/vie_defines.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 16 matching lines...) Expand all
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;
42 const int kMinSendSidePacketHistorySize = 600;
43 const int kMaxPacketAgeToNack = 450;
44 const int kMaxNackListSize = 250;
43 45
44 // Helper class receiving statistics callbacks. 46 // Helper class receiving statistics callbacks.
45 class ChannelStatsObserver : public CallStatsObserver { 47 class ChannelStatsObserver : public CallStatsObserver {
46 public: 48 public:
47 explicit ChannelStatsObserver(ViEChannel* owner) : owner_(owner) {} 49 explicit ChannelStatsObserver(ViEChannel* owner) : owner_(owner) {}
48 virtual ~ChannelStatsObserver() {} 50 virtual ~ChannelStatsObserver() {}
49 51
50 // Implements StatsObserver. 52 // Implements StatsObserver.
51 virtual void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) { 53 virtual void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
52 owner_->OnRttUpdate(avg_rtt_ms, max_rtt_ms); 54 owner_->OnRttUpdate(avg_rtt_ms, max_rtt_ms);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 vie_sync_(vcm_), 103 vie_sync_(vcm_),
102 stats_observer_(new ChannelStatsObserver(this)), 104 stats_observer_(new ChannelStatsObserver(this)),
103 receive_stats_callback_(nullptr), 105 receive_stats_callback_(nullptr),
104 incoming_video_stream_(nullptr), 106 incoming_video_stream_(nullptr),
105 intra_frame_observer_(intra_frame_observer), 107 intra_frame_observer_(intra_frame_observer),
106 rtt_stats_(rtt_stats), 108 rtt_stats_(rtt_stats),
107 paced_sender_(paced_sender), 109 paced_sender_(paced_sender),
108 packet_router_(packet_router), 110 packet_router_(packet_router),
109 bandwidth_observer_(bandwidth_observer), 111 bandwidth_observer_(bandwidth_observer),
110 transport_feedback_observer_(transport_feedback_observer), 112 transport_feedback_observer_(transport_feedback_observer),
111 nack_history_size_sender_(kSendSidePacketHistorySize), 113 nack_history_size_sender_(kMinSendSidePacketHistorySize),
112 max_nack_reordering_threshold_(kMaxPacketAgeToNack), 114 max_nack_reordering_threshold_(kMaxPacketAgeToNack),
113 pre_render_callback_(NULL), 115 pre_render_callback_(NULL),
114 report_block_stats_sender_(new ReportBlockStats()), 116 report_block_stats_sender_(new ReportBlockStats()),
115 time_of_first_rtt_ms_(-1), 117 time_of_first_rtt_ms_(-1),
116 rtt_sum_ms_(0), 118 rtt_sum_ms_(0),
117 last_rtt_ms_(0), 119 last_rtt_ms_(0),
118 num_rtts_(0), 120 num_rtts_(0),
119 rtp_rtcp_modules_( 121 rtp_rtcp_modules_(
120 CreateRtpRtcpModules(!sender, 122 CreateRtpRtcpModules(!sender,
121 vie_receiver_.GetReceiveStatistics(), 123 vie_receiver_.GetReceiveStatistics(),
122 transport, 124 transport,
123 sender ? intra_frame_observer_ : nullptr, 125 sender ? intra_frame_observer_ : nullptr,
124 sender ? bandwidth_observer_.get() : nullptr, 126 sender ? bandwidth_observer_.get() : nullptr,
125 transport_feedback_observer_, 127 transport_feedback_observer_,
126 rtt_stats_, 128 rtt_stats_,
127 &rtcp_packet_type_counter_observer_, 129 &rtcp_packet_type_counter_observer_,
128 remote_bitrate_estimator, 130 remote_bitrate_estimator,
129 paced_sender_, 131 paced_sender_,
130 packet_router_, 132 packet_router_,
131 &send_bitrate_observer_, 133 &send_bitrate_observer_,
132 &send_frame_count_observer_, 134 &send_frame_count_observer_,
133 &send_side_delay_observer_, 135 &send_side_delay_observer_,
134 max_rtp_streams)), 136 max_rtp_streams)),
135 num_active_rtp_rtcp_modules_(1) { 137 num_active_rtp_rtcp_modules_(1) {
136 vie_receiver_.SetRtpRtcpModule(rtp_rtcp_modules_[0]); 138 vie_receiver_.SetRtpRtcpModule(rtp_rtcp_modules_[0]);
137 vcm_->SetNackSettings(kMaxNackListSize, max_nack_reordering_threshold_, 0); 139 vcm_->SetNackSettings(kMaxNackListSize, max_nack_reordering_threshold_, 0);
138 } 140 }
139 141
140 int32_t ViEChannel::Init() { 142 int32_t ViEChannel::Init() {
143 static const int kDefaultRenderDelayMs = 10;
141 module_process_thread_->RegisterModule(vie_receiver_.GetReceiveStatistics()); 144 module_process_thread_->RegisterModule(vie_receiver_.GetReceiveStatistics());
142 145
143 // RTP/RTCP initialization. 146 // RTP/RTCP initialization.
144 module_process_thread_->RegisterModule(rtp_rtcp_modules_[0]); 147 module_process_thread_->RegisterModule(rtp_rtcp_modules_[0]);
145 148
146 rtp_rtcp_modules_[0]->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp); 149 rtp_rtcp_modules_[0]->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp);
147 if (paced_sender_) { 150 if (paced_sender_) {
148 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 151 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
149 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_); 152 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_);
150 } 153 }
151 packet_router_->AddRtpModule(rtp_rtcp_modules_[0]); 154 packet_router_->AddRtpModule(rtp_rtcp_modules_[0]);
152 if (sender_) { 155 if (sender_) {
153 std::list<RtpRtcp*> send_rtp_modules(1, rtp_rtcp_modules_[0]); 156 std::list<RtpRtcp*> send_rtp_modules(1, rtp_rtcp_modules_[0]);
154 send_payload_router_->SetSendingRtpModules(send_rtp_modules); 157 send_payload_router_->SetSendingRtpModules(send_rtp_modules);
155 RTC_DCHECK(!send_payload_router_->active()); 158 RTC_DCHECK(!send_payload_router_->active());
156 } 159 }
157 if (vcm_->RegisterReceiveCallback(this) != 0) { 160 if (vcm_->RegisterReceiveCallback(this) != 0) {
158 return -1; 161 return -1;
159 } 162 }
160 vcm_->RegisterFrameTypeCallback(this); 163 vcm_->RegisterFrameTypeCallback(this);
161 vcm_->RegisterReceiveStatisticsCallback(this); 164 vcm_->RegisterReceiveStatisticsCallback(this);
162 vcm_->RegisterDecoderTimingCallback(this); 165 vcm_->RegisterDecoderTimingCallback(this);
163 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs); 166 vcm_->SetRenderDelay(kDefaultRenderDelayMs);
164 167
165 module_process_thread_->RegisterModule(vcm_); 168 module_process_thread_->RegisterModule(vcm_);
166 module_process_thread_->RegisterModule(&vie_sync_); 169 module_process_thread_->RegisterModule(&vie_sync_);
167 170
168 return 0; 171 return 0;
169 } 172 }
170 173
171 ViEChannel::~ViEChannel() { 174 ViEChannel::~ViEChannel() {
172 UpdateHistograms(); 175 UpdateHistograms();
173 // Make sure we don't get more callbacks from the RTP module. 176 // Make sure we don't get more callbacks from the RTP module.
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 return false; 557 return false;
555 } 558 }
556 559
557 int ViEChannel::SetSenderBufferingMode(int target_delay_ms) { 560 int ViEChannel::SetSenderBufferingMode(int target_delay_ms) {
558 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) { 561 if ((target_delay_ms < 0) || (target_delay_ms > kMaxTargetDelayMs)) {
559 LOG(LS_ERROR) << "Invalid send buffer value."; 562 LOG(LS_ERROR) << "Invalid send buffer value.";
560 return -1; 563 return -1;
561 } 564 }
562 if (target_delay_ms == 0) { 565 if (target_delay_ms == 0) {
563 // Real-time mode. 566 // Real-time mode.
564 nack_history_size_sender_ = kSendSidePacketHistorySize; 567 nack_history_size_sender_ = kMinSendSidePacketHistorySize;
565 } else { 568 } else {
566 nack_history_size_sender_ = GetRequiredNackListSize(target_delay_ms); 569 nack_history_size_sender_ = GetRequiredNackListSize(target_delay_ms);
567 // Don't allow a number lower than the default value. 570 // Don't allow a number lower than the default value.
568 if (nack_history_size_sender_ < kSendSidePacketHistorySize) { 571 if (nack_history_size_sender_ < kMinSendSidePacketHistorySize) {
569 nack_history_size_sender_ = kSendSidePacketHistorySize; 572 nack_history_size_sender_ = kMinSendSidePacketHistorySize;
570 } 573 }
571 } 574 }
572 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 575 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
573 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_); 576 rtp_rtcp->SetStorePacketsStatus(true, nack_history_size_sender_);
574 return 0; 577 return 0;
575 } 578 }
576 579
577 int ViEChannel::GetRequiredNackListSize(int target_delay_ms) { 580 int ViEChannel::GetRequiredNackListSize(int target_delay_ms) {
578 // The max size of the nack list should be large enough to accommodate the 581 // The max size of the nack list should be large enough to accommodate the
579 // the number of packets (frames) resulting from the increased delay. 582 // the number of packets (frames) resulting from the increased delay.
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 CriticalSectionScoped cs(crit_.get()); 1219 CriticalSectionScoped cs(crit_.get());
1217 receive_stats_callback_ = receive_statistics_proxy; 1220 receive_stats_callback_ = receive_statistics_proxy;
1218 } 1221 }
1219 1222
1220 void ViEChannel::SetIncomingVideoStream( 1223 void ViEChannel::SetIncomingVideoStream(
1221 IncomingVideoStream* incoming_video_stream) { 1224 IncomingVideoStream* incoming_video_stream) {
1222 CriticalSectionScoped cs(crit_.get()); 1225 CriticalSectionScoped cs(crit_.get());
1223 incoming_video_stream_ = incoming_video_stream; 1226 incoming_video_stream_ = incoming_video_stream;
1224 } 1227 }
1225 } // namespace webrtc 1228 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video_engine/vie_channel.h ('k') | webrtc/video_engine/vie_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698