Ensure correct decoding for unfiltered KSVC streams

Set render timestamp for all frames in the superframe.

Bug: chromium:912122
Change-Id: Ic9604620da9fb4176ad5c21b95df47fca8ddea31
Reviewed-on: https://webrtc-review.googlesource.com/c/116985
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26247}
This commit is contained in:
Ilya Nikolaevskiy
2019-01-14 15:27:08 +01:00
committed by Commit Bot
parent dcfe484f2e
commit cd7c21bfad

View File

@ -167,6 +167,12 @@ FrameBuffer::ReturnReason FrameBuffer::NextFrame(
frame->SetRenderTime( frame->SetRenderTime(
timing_->RenderTimeMs(frame->Timestamp(), now_ms)); timing_->RenderTimeMs(frame->Timestamp(), now_ms));
} }
// If frames in superframe have different render timestamps, it will
// confuse jitter buffer and cause dropped frames in render queue.
for (size_t i = 1; i < frames_to_decode_.size(); ++i) {
frames_to_decode_[i]->second.frame->SetRenderTime(
frame->RenderTime());
}
wait_ms = timing_->MaxWaitingTime(frame->RenderTime(), now_ms); wait_ms = timing_->MaxWaitingTime(frame->RenderTime(), now_ms);
// This will cause the frame buffer to prefer high framerate rather // This will cause the frame buffer to prefer high framerate rather