[vlc-commits] video_output: count the time to do the prepare to determine if a frame is late
Steve Lhomme
git at videolan.org
Fri Jan 29 14:54:19 UTC 2021
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Thu Jan 21 08:52:15 2021 +0100| [a5d85a5f248b12a2ef78041cf2dfa14a6106d66d] | committer: Steve Lhomme
video_output: count the time to do the prepare to determine if a frame is late
The system_pts is the date we should do the swap (vd->display) for the picture.
But between now and the time we do the swap, there is also the prepare
(+ static filtering) that will happen. We are late if now+that duration is
after the date we should do the swap.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a5d85a5f248b12a2ef78041cf2dfa14a6106d66d
---
src/video_output/video_output.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index eeb49e9ab6..19fe940fd8 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1094,7 +1094,9 @@ static picture_t *ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reus
}
else if (is_late_dropped && !decoded->b_force)
{
- vlc_tick_t late = system_now - system_pts;
+ const vlc_tick_t prepare_decoded_duration = vout_chrono_GetHigh(&sys->render) +
+ VOUT_MWAIT_TOLERANCE;
+ vlc_tick_t late = system_now + prepare_decoded_duration - system_pts;
vlc_tick_t late_threshold;
if (decoded->format.i_frame_rate && decoded->format.i_frame_rate_base) {
More information about the vlc-commits
mailing list