| OLD | NEW |
| 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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 return VCM_OK; | 237 return VCM_OK; |
| 238 } | 238 } |
| 239 | 239 |
| 240 void VideoReceiver::TriggerDecoderShutdown() { | 240 void VideoReceiver::TriggerDecoderShutdown() { |
| 241 _receiver.TriggerDecoderShutdown(); | 241 _receiver.TriggerDecoderShutdown(); |
| 242 } | 242 } |
| 243 | 243 |
| 244 // Decode next frame, blocking. | 244 // Decode next frame, blocking. |
| 245 // Should be called as often as possible to get the most out of the decoder. | 245 // Should be called as often as possible to get the most out of the decoder. |
| 246 int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) { | 246 int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) { |
| 247 int64_t nextRenderTimeMs; | |
| 248 bool prefer_late_decoding = false; | 247 bool prefer_late_decoding = false; |
| 249 { | 248 { |
| 250 rtc::CritScope cs(&receive_crit_); | 249 rtc::CritScope cs(&receive_crit_); |
| 251 prefer_late_decoding = _codecDataBase.PrefersLateDecoding(); | 250 prefer_late_decoding = _codecDataBase.PrefersLateDecoding(); |
| 252 } | 251 } |
| 253 | 252 |
| 254 VCMEncodedFrame* frame = _receiver.FrameForDecoding( | 253 VCMEncodedFrame* frame = |
| 255 maxWaitTimeMs, &nextRenderTimeMs, prefer_late_decoding); | 254 _receiver.FrameForDecoding(maxWaitTimeMs, prefer_late_decoding); |
| 256 | 255 |
| 257 if (!frame) | 256 if (!frame) |
| 258 return VCM_FRAME_NOT_READY; | 257 return VCM_FRAME_NOT_READY; |
| 259 | 258 |
| 260 { | 259 { |
| 261 rtc::CritScope cs(&process_crit_); | 260 rtc::CritScope cs(&process_crit_); |
| 262 if (drop_frames_until_keyframe_) { | 261 if (drop_frames_until_keyframe_) { |
| 263 // Still getting delta frames, schedule another keyframe request as if | 262 // Still getting delta frames, schedule another keyframe request as if |
| 264 // decode failed. | 263 // decode failed. |
| 265 if (frame->FrameType() != kVideoFrameKey) { | 264 if (frame->FrameType() != kVideoFrameKey) { |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 _receiver.SetNackSettings(max_nack_list_size, max_packet_age_to_nack, | 502 _receiver.SetNackSettings(max_nack_list_size, max_packet_age_to_nack, |
| 504 max_incomplete_time_ms); | 503 max_incomplete_time_ms); |
| 505 } | 504 } |
| 506 | 505 |
| 507 int VideoReceiver::SetMinReceiverDelay(int desired_delay_ms) { | 506 int VideoReceiver::SetMinReceiverDelay(int desired_delay_ms) { |
| 508 return _receiver.SetMinReceiverDelay(desired_delay_ms); | 507 return _receiver.SetMinReceiverDelay(desired_delay_ms); |
| 509 } | 508 } |
| 510 | 509 |
| 511 } // namespace vcm | 510 } // namespace vcm |
| 512 } // namespace webrtc | 511 } // namespace webrtc |
| OLD | NEW |