diff --git a/core/mplayer.c b/core/mplayer.c index 5707fdacc6..eccb40b7ec 100644 --- a/core/mplayer.c +++ b/core/mplayer.c @@ -2393,8 +2393,8 @@ static bool filter_output_queued_frame(struct MPContext *mpctx) struct vo *video_out = mpctx->video_out; struct mp_image *img = vf_chain_output_queued_frame(sh_video->vfilter); - if (img && video_out->config_ok) - vo_draw_image(video_out, img); + if (img) + vo_queue_image(video_out, img); talloc_free(img); return !!img; diff --git a/video/out/vo.c b/video/out/vo.c index fcc50713c9..753feaefeb 100644 --- a/video/out/vo.c +++ b/video/out/vo.c @@ -138,21 +138,18 @@ int vo_control(struct vo *vo, uint32_t request, void *data) return vo->driver->control(vo, request, data); } -// Return -1 if driver appears not to support a draw_image interface, -// 0 otherwise (whether the driver actually drew something or not). -int vo_draw_image(struct vo *vo, struct mp_image *mpi) +void vo_queue_image(struct vo *vo, struct mp_image *mpi) { if (!vo->config_ok) - return 0; + return; if (vo->driver->buffer_frames) { vo->driver->draw_image(vo, mpi); - return 0; + return; } vo->frame_loaded = true; vo->next_pts = mpi->pts; assert(!vo->waiting_mpi); vo->waiting_mpi = mp_image_new_ref(mpi); - return 0; } int vo_redraw_frame(struct vo *vo) diff --git a/video/out/vo.h b/video/out/vo.h index a9a33f558c..3328ab2626 100644 --- a/video/out/vo.h +++ b/video/out/vo.h @@ -288,7 +288,7 @@ int vo_config(struct vo *vo, uint32_t width, uint32_t height, void list_video_out(void); int vo_control(struct vo *vo, uint32_t request, void *data); -int vo_draw_image(struct vo *vo, struct mp_image *mpi); +void vo_queue_image(struct vo *vo, struct mp_image *mpi); int vo_redraw_frame(struct vo *vo); bool vo_get_want_redraw(struct vo *vo); int vo_get_buffered_frame(struct vo *vo, bool eof);