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.
This commit is contained in:
wm4
2015-08-01 22:16:52 +02:00
parent 63ade8a49c
commit ee58e7cfe5

View File

@@ -677,7 +677,9 @@ static bool render_frame(struct vo *vo)
// frame currently drawn, while in->current_frame is the potentially next.) // frame currently drawn, while in->current_frame is the potentially next.)
in->current_frame->repeat = true; in->current_frame->repeat = true;
if (!in->dropped_frame) { if (in->dropped_frame) {
in->drop_count += 1;
} else {
in->rendering = true; in->rendering = true;
in->hasframe_rendered = true; in->hasframe_rendered = true;
int64_t prev_drop_count = vo->in->drop_count; int64_t prev_drop_count = vo->in->drop_count;
@@ -714,9 +716,7 @@ static bool render_frame(struct vo *vo)
in->rendering = false; in->rendering = false;
} }
if (in->dropped_frame) { if (!in->dropped_frame) {
in->drop_count += 1;
} else {
vo->want_redraw = false; vo->want_redraw = false;
in->want_redraw = false; in->want_redraw = false;
in->request_redraw = false; in->request_redraw = false;