summaryrefslogtreecommitdiffstats
path: root/video/out/vo_image.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo_image.c')
-rw-r--r--video/out/vo_image.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/video/out/vo_image.c b/video/out/vo_image.c
index aece3e069b..cc48ab3404 100644
--- a/video/out/vo_image.c
+++ b/video/out/vo_image.c
@@ -87,20 +87,19 @@ static bool checked_mkdir(struct vo *vo, const char *buf)
static int reconfig(struct vo *vo, struct mp_image_params *params)
{
- struct priv *p = vo->priv;
- mp_image_unrefp(&p->current);
-
return 0;
}
-static void draw_image(struct vo *vo, mp_image_t *mpi)
+static void draw_frame(struct vo *vo, struct vo_frame *frame)
{
struct priv *p = vo->priv;
+ if (!frame->current)
+ return;
- p->current = mpi;
+ p->current = frame->current;
struct mp_osd_res dim = osd_res_from_image_params(vo->params);
- osd_draw_on_image(vo->osd, dim, mpi->pts, OSD_DRAW_SUB_ONLY, p->current);
+ osd_draw_on_image(vo->osd, dim, frame->current->pts, OSD_DRAW_SUB_ONLY, p->current);
}
static void flip_page(struct vo *vo)
@@ -122,7 +121,6 @@ static void flip_page(struct vo *vo)
write_image(p->current, p->opts->opts, filename, vo->global, vo->log);
talloc_free(t);
- mp_image_unrefp(&p->current);
}
static int query_format(struct vo *vo, int fmt)
@@ -134,9 +132,6 @@ static int query_format(struct vo *vo, int fmt)
static void uninit(struct vo *vo)
{
- struct priv *p = vo->priv;
-
- mp_image_unrefp(&p->current);
}
static int preinit(struct vo *vo)
@@ -163,7 +158,7 @@ const struct vo_driver video_out_image =
.query_format = query_format,
.reconfig = reconfig,
.control = control,
- .draw_image = draw_image,
+ .draw_frame = draw_frame,
.flip_page = flip_page,
.uninit = uninit,
.global_opts = &vo_image_conf,