Added WEBRTC_VIDEO_CODEC_OK_REQUEST_KEYFRAME decoder return code.

Bug: None
Change-Id: I71e1d42c92273dc4ce3f5f5e7052615d68e65a38
Reviewed-on: https://webrtc-review.googlesource.com/31860
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21363}
This commit is contained in:
philipel
2017-12-11 14:52:58 +01:00
committed by Commit Bot
parent 25b2ec78fe
commit 49b46e0085
2 changed files with 7 additions and 1 deletions

View File

@ -15,6 +15,7 @@
// Define return values
#define WEBRTC_VIDEO_CODEC_OK_REQUEST_KEYFRAME 4
#define WEBRTC_VIDEO_CODEC_REQUEST_SLI 2
#define WEBRTC_VIDEO_CODEC_NO_OUTPUT 1
#define WEBRTC_VIDEO_CODEC_OK 0

View File

@ -424,10 +424,15 @@ bool VideoReceiveStream::Decode() {
if (frame) {
int64_t now_ms = clock_->TimeInMilliseconds();
RTC_DCHECK_EQ(res, video_coding::FrameBuffer::ReturnReason::kFrameFound);
if (video_receiver_.Decode(frame.get()) == VCM_OK) {
int decode_result = video_receiver_.Decode(frame.get());
if (decode_result == WEBRTC_VIDEO_CODEC_OK ||
decode_result == WEBRTC_VIDEO_CODEC_OK_REQUEST_KEYFRAME) {
keyframe_required_ = false;
frame_decoded_ = true;
rtp_video_stream_receiver_.FrameDecoded(frame->picture_id);
if (decode_result == WEBRTC_VIDEO_CODEC_OK_REQUEST_KEYFRAME)
RequestKeyFrame();
} else if (!frame_decoded_ || !keyframe_required_ ||
(last_keyframe_request_ms_ + kMaxWaitForKeyFrameMs < now_ms)) {
keyframe_required_ = true;