summaryrefslogtreecommitdiffstats
path: root/video/out/vo.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo.c')
-rw-r--r--video/out/vo.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index 11690afb67..aee2dd8c75 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -687,9 +687,9 @@ static void do_redraw(struct vo *vo)
pthread_mutex_lock(&in->lock);
in->request_redraw = false;
in->want_redraw = false;
- bool force_full_redraw = in->dropped_frame;
+ bool full_redraw = in->dropped_frame;
struct mp_image *img = NULL;
- if (vo->config_ok)
+ if (vo->config_ok && !(vo->driver->untimed))
img = mp_image_new_ref(in->current_frame);
if (img)
in->dropped_frame = false;
@@ -698,12 +698,10 @@ static void do_redraw(struct vo *vo)
if (!img)
return;
- if (force_full_redraw) {
+ if (full_redraw || vo->driver->control(vo, VOCTRL_REDRAW_FRAME, NULL) < 1) {
vo->driver->draw_image(vo, img);
} else {
talloc_free(img);
- if (vo->driver->control(vo, VOCTRL_REDRAW_FRAME, NULL) < 1)
- return;
}
if (vo->driver->flip_page_timed)