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

Side by Side Diff: webrtc/modules/video_coding/receiver.cc

Issue 2779623002: remove more CriticalSectionWrappers. (Closed)
Patch Set: rebase Created 3 years, 9 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/modules/video_coding/receiver.h ('k') | webrtc/modules/video_coding/timing.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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 nullptr, // NackSender 65 nullptr, // NackSender
66 nullptr) // KeyframeRequestSender 66 nullptr) // KeyframeRequestSender
67 {} 67 {}
68 68
69 VCMReceiver::VCMReceiver(VCMTiming* timing, 69 VCMReceiver::VCMReceiver(VCMTiming* timing,
70 Clock* clock, 70 Clock* clock,
71 std::unique_ptr<EventWrapper> receiver_event, 71 std::unique_ptr<EventWrapper> receiver_event,
72 std::unique_ptr<EventWrapper> jitter_buffer_event, 72 std::unique_ptr<EventWrapper> jitter_buffer_event,
73 NackSender* nack_sender, 73 NackSender* nack_sender,
74 KeyFrameRequestSender* keyframe_request_sender) 74 KeyFrameRequestSender* keyframe_request_sender)
75 : crit_sect_(CriticalSectionWrapper::CreateCriticalSection()), 75 : clock_(clock),
76 clock_(clock),
77 jitter_buffer_(clock_, 76 jitter_buffer_(clock_,
78 std::move(jitter_buffer_event), 77 std::move(jitter_buffer_event),
79 nack_sender, 78 nack_sender,
80 keyframe_request_sender), 79 keyframe_request_sender),
81 timing_(timing), 80 timing_(timing),
82 render_wait_event_(std::move(receiver_event)), 81 render_wait_event_(std::move(receiver_event)),
83 max_video_delay_ms_(kMaxVideoDelayMs) { 82 max_video_delay_ms_(kMaxVideoDelayMs) {
84 Reset(); 83 Reset();
85 } 84 }
86 85
87 VCMReceiver::~VCMReceiver() { 86 VCMReceiver::~VCMReceiver() {
88 render_wait_event_->Set(); 87 render_wait_event_->Set();
89 delete crit_sect_;
90 } 88 }
91 89
92 void VCMReceiver::Reset() { 90 void VCMReceiver::Reset() {
93 CriticalSectionScoped cs(crit_sect_); 91 rtc::CritScope cs(&crit_sect_);
94 if (!jitter_buffer_.Running()) { 92 if (!jitter_buffer_.Running()) {
95 jitter_buffer_.Start(); 93 jitter_buffer_.Start();
96 } else { 94 } else {
97 jitter_buffer_.Flush(); 95 jitter_buffer_.Flush();
98 } 96 }
99 } 97 }
100 98
101 void VCMReceiver::UpdateRtt(int64_t rtt) { 99 void VCMReceiver::UpdateRtt(int64_t rtt) {
102 jitter_buffer_.UpdateRtt(rtt); 100 jitter_buffer_.UpdateRtt(rtt);
103 } 101 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 233
236 void VCMReceiver::ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate) { 234 void VCMReceiver::ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate) {
237 assert(bitrate); 235 assert(bitrate);
238 assert(framerate); 236 assert(framerate);
239 jitter_buffer_.IncomingRateStatistics(framerate, bitrate); 237 jitter_buffer_.IncomingRateStatistics(framerate, bitrate);
240 } 238 }
241 239
242 void VCMReceiver::SetNackMode(VCMNackMode nackMode, 240 void VCMReceiver::SetNackMode(VCMNackMode nackMode,
243 int64_t low_rtt_nack_threshold_ms, 241 int64_t low_rtt_nack_threshold_ms,
244 int64_t high_rtt_nack_threshold_ms) { 242 int64_t high_rtt_nack_threshold_ms) {
245 CriticalSectionScoped cs(crit_sect_); 243 rtc::CritScope cs(&crit_sect_);
246 // Default to always having NACK enabled in hybrid mode. 244 // Default to always having NACK enabled in hybrid mode.
247 jitter_buffer_.SetNackMode(nackMode, low_rtt_nack_threshold_ms, 245 jitter_buffer_.SetNackMode(nackMode, low_rtt_nack_threshold_ms,
248 high_rtt_nack_threshold_ms); 246 high_rtt_nack_threshold_ms);
249 } 247 }
250 248
251 void VCMReceiver::SetNackSettings(size_t max_nack_list_size, 249 void VCMReceiver::SetNackSettings(size_t max_nack_list_size,
252 int max_packet_age_to_nack, 250 int max_packet_age_to_nack,
253 int max_incomplete_time_ms) { 251 int max_incomplete_time_ms) {
254 jitter_buffer_.SetNackSettings(max_nack_list_size, max_packet_age_to_nack, 252 jitter_buffer_.SetNackSettings(max_nack_list_size, max_packet_age_to_nack,
255 max_incomplete_time_ms); 253 max_incomplete_time_ms);
256 } 254 }
257 255
258 VCMNackMode VCMReceiver::NackMode() const { 256 VCMNackMode VCMReceiver::NackMode() const {
259 CriticalSectionScoped cs(crit_sect_); 257 rtc::CritScope cs(&crit_sect_);
260 return jitter_buffer_.nack_mode(); 258 return jitter_buffer_.nack_mode();
261 } 259 }
262 260
263 std::vector<uint16_t> VCMReceiver::NackList(bool* request_key_frame) { 261 std::vector<uint16_t> VCMReceiver::NackList(bool* request_key_frame) {
264 return jitter_buffer_.GetNackList(request_key_frame); 262 return jitter_buffer_.GetNackList(request_key_frame);
265 } 263 }
266 264
267 void VCMReceiver::SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) { 265 void VCMReceiver::SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) {
268 jitter_buffer_.SetDecodeErrorMode(decode_error_mode); 266 jitter_buffer_.SetDecodeErrorMode(decode_error_mode);
269 } 267 }
270 268
271 VCMDecodeErrorMode VCMReceiver::DecodeErrorMode() const { 269 VCMDecodeErrorMode VCMReceiver::DecodeErrorMode() const {
272 return jitter_buffer_.decode_error_mode(); 270 return jitter_buffer_.decode_error_mode();
273 } 271 }
274 272
275 int VCMReceiver::SetMinReceiverDelay(int desired_delay_ms) { 273 int VCMReceiver::SetMinReceiverDelay(int desired_delay_ms) {
276 CriticalSectionScoped cs(crit_sect_); 274 rtc::CritScope cs(&crit_sect_);
277 if (desired_delay_ms < 0 || desired_delay_ms > kMaxReceiverDelayMs) { 275 if (desired_delay_ms < 0 || desired_delay_ms > kMaxReceiverDelayMs) {
278 return -1; 276 return -1;
279 } 277 }
280 max_video_delay_ms_ = desired_delay_ms + kMaxVideoDelayMs; 278 max_video_delay_ms_ = desired_delay_ms + kMaxVideoDelayMs;
281 // Initializing timing to the desired delay. 279 // Initializing timing to the desired delay.
282 timing_->set_min_playout_delay(desired_delay_ms); 280 timing_->set_min_playout_delay(desired_delay_ms);
283 return 0; 281 return 0;
284 } 282 }
285 283
286 void VCMReceiver::RegisterStatsCallback( 284 void VCMReceiver::RegisterStatsCallback(
287 VCMReceiveStatisticsCallback* callback) { 285 VCMReceiveStatisticsCallback* callback) {
288 jitter_buffer_.RegisterStatsCallback(callback); 286 jitter_buffer_.RegisterStatsCallback(callback);
289 } 287 }
290 288
291 } // namespace webrtc 289 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/receiver.h ('k') | webrtc/modules/video_coding/timing.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698