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}
diff --git a/modules/video_coding/frame_buffer2.cc b/modules/video_coding/frame_buffer2.cc
index 832fd36..e52af53 100644
--- a/modules/video_coding/frame_buffer2.cc
+++ b/modules/video_coding/frame_buffer2.cc
@@ -167,6 +167,12 @@
frame->SetRenderTime(
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);
// This will cause the frame buffer to prefer high framerate rather