From ee58e7cfe5c1ed1532f0c0dbe2428811a3382f17 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 1 Aug 2015 22:16:52 +0200 Subject: vo: correctly account for dropped frames If the framedrop count happens to be incremented with vo_increment_drop_count() during rendering, these increments were counted twice, because these events also set in->dropped_frame. --- video/out/vo.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/video/out/vo.c b/video/out/vo.c index e538860452..ca00bb1c49 100644 --- a/video/out/vo.c +++ b/video/out/vo.c @@ -677,7 +677,9 @@ static bool render_frame(struct vo *vo) // frame currently drawn, while in->current_frame is the potentially next.) in->current_frame->repeat = true; - if (!in->dropped_frame) { + if (in->dropped_frame) { + in->drop_count += 1; + } else { in->rendering = true; in->hasframe_rendered = true; int64_t prev_drop_count = vo->in->drop_count; @@ -714,9 +716,7 @@ static bool render_frame(struct vo *vo) in->rendering = false; } - if (in->dropped_frame) { - in->drop_count += 1; - } else { + if (!in->dropped_frame) { vo->want_redraw = false; in->want_redraw = false; in->request_redraw = false; -- cgit v1.2.3