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

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

Issue 2746413003: Delete support for sending RTCP RPSI and SLI messages. (Closed)
Patch Set: Delete RtcpContext::picture_id_, and related arguments. 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/video_coding_impl.h ('k') | webrtc/video/rtp_stream_receiver.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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 frame->CodecSpecific(), nullptr); 299 frame->CodecSpecific(), nullptr);
300 } 300 }
301 return Decode(*frame); 301 return Decode(*frame);
302 } 302 }
303 303
304 void VideoReceiver::DecodingStopped() { 304 void VideoReceiver::DecodingStopped() {
305 // No further calls to Decode() will be made after this point. 305 // No further calls to Decode() will be made after this point.
306 // TODO(tommi): Make use of this to clarify and check threading model. 306 // TODO(tommi): Make use of this to clarify and check threading model.
307 } 307 }
308 308
309 int32_t VideoReceiver::RequestSliceLossIndication(
310 const uint64_t pictureID) const {
311 TRACE_EVENT1("webrtc", "RequestSLI", "picture_id", pictureID);
312 rtc::CritScope cs(&process_crit_);
313 if (_frameTypeCallback != nullptr) {
314 const int32_t ret =
315 _frameTypeCallback->SliceLossIndicationRequest(pictureID);
316 if (ret < 0) {
317 return ret;
318 }
319 } else {
320 return VCM_MISSING_CALLBACK;
321 }
322 return VCM_OK;
323 }
324
325 int32_t VideoReceiver::RequestKeyFrame() { 309 int32_t VideoReceiver::RequestKeyFrame() {
326 TRACE_EVENT0("webrtc", "RequestKeyFrame"); 310 TRACE_EVENT0("webrtc", "RequestKeyFrame");
327 rtc::CritScope cs(&process_crit_); 311 rtc::CritScope cs(&process_crit_);
328 if (_frameTypeCallback != nullptr) { 312 if (_frameTypeCallback != nullptr) {
329 const int32_t ret = _frameTypeCallback->RequestKeyFrame(); 313 const int32_t ret = _frameTypeCallback->RequestKeyFrame();
330 if (ret < 0) { 314 if (ret < 0) {
331 return ret; 315 return ret;
332 } 316 }
333 _scheduleKeyRequest = false; 317 _scheduleKeyRequest = false;
334 } else { 318 } else {
(...skipping 10 matching lines...) Expand all
345 _codecDataBase.GetDecoder(frame, &_decodedFrameCallback); 329 _codecDataBase.GetDecoder(frame, &_decodedFrameCallback);
346 if (decoder == nullptr) { 330 if (decoder == nullptr) {
347 return VCM_NO_CODEC_REGISTERED; 331 return VCM_NO_CODEC_REGISTERED;
348 } 332 }
349 // Decode a frame 333 // Decode a frame
350 int32_t ret = decoder->Decode(frame, clock_->TimeInMilliseconds()); 334 int32_t ret = decoder->Decode(frame, clock_->TimeInMilliseconds());
351 335
352 // Check for failed decoding, run frame type request callback if needed. 336 // Check for failed decoding, run frame type request callback if needed.
353 bool request_key_frame = false; 337 bool request_key_frame = false;
354 if (ret < 0) { 338 if (ret < 0) {
355 if (ret == VCM_ERROR_REQUEST_SLI) { 339 request_key_frame = true;
356 return RequestSliceLossIndication(
357 _decodedFrameCallback.LastReceivedPictureID() + 1);
358 } else {
359 request_key_frame = true;
360 }
361 } else if (ret == VCM_REQUEST_SLI) {
362 ret = RequestSliceLossIndication(
363 _decodedFrameCallback.LastReceivedPictureID() + 1);
364 } 340 }
341
365 if (!frame.Complete() || frame.MissingFrame()) { 342 if (!frame.Complete() || frame.MissingFrame()) {
366 request_key_frame = true; 343 request_key_frame = true;
367 ret = VCM_OK; 344 ret = VCM_OK;
368 } 345 }
369 if (request_key_frame) { 346 if (request_key_frame) {
370 rtc::CritScope cs(&process_crit_); 347 rtc::CritScope cs(&process_crit_);
371 _scheduleKeyRequest = true; 348 _scheduleKeyRequest = true;
372 } 349 }
373 return ret; 350 return ret;
374 } 351 }
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 _receiver.SetNackSettings(max_nack_list_size, max_packet_age_to_nack, 497 _receiver.SetNackSettings(max_nack_list_size, max_packet_age_to_nack,
521 max_incomplete_time_ms); 498 max_incomplete_time_ms);
522 } 499 }
523 500
524 int VideoReceiver::SetMinReceiverDelay(int desired_delay_ms) { 501 int VideoReceiver::SetMinReceiverDelay(int desired_delay_ms) {
525 return _receiver.SetMinReceiverDelay(desired_delay_ms); 502 return _receiver.SetMinReceiverDelay(desired_delay_ms);
526 } 503 }
527 504
528 } // namespace vcm 505 } // namespace vcm
529 } // namespace webrtc 506 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/video_coding_impl.h ('k') | webrtc/video/rtp_stream_receiver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698