summaryrefslogtreecommitdiffstats
path: root/video/out/vo_vdpau.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo_vdpau.c')
-rw-r--r--video/out/vo_vdpau.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c
index 56a52d613f..949d149a55 100644
--- a/video/out/vo_vdpau.c
+++ b/video/out/vo_vdpau.c
@@ -847,28 +847,21 @@ static void draw_image(struct vo *vo, struct mp_image *mpi)
{
struct vdpctx *vc = vo->priv;
- talloc_free(vc->current_image);
- vc->current_image = mpi;
-
- if (status_ok(vo))
- video_to_output_surface(vo);
-}
-
-static struct mp_image *filter_image(struct vo *vo, struct mp_image *mpi)
-{
- struct vdpctx *vc = vo->priv;
-
check_preemption(vo);
- struct mp_image *reserved_mpi = mp_vdpau_upload_video_surface(vc->mpvdp, mpi);
- if (!reserved_mpi)
- goto end;
+ struct mp_image *vdp_mpi = mp_vdpau_upload_video_surface(vc->mpvdp, mpi);
+ if (vdp_mpi) {
+ mp_image_copy_attributes(vdp_mpi, mpi);
+ } else {
+ MP_ERR(vo, "Could not upload image.\n");
+ }
+ talloc_free(mpi);
- mp_image_copy_attributes(reserved_mpi, mpi);
+ talloc_free(vc->current_image);
+ vc->current_image = vdp_mpi;
-end:
- talloc_free(mpi);
- return reserved_mpi;
+ if (status_ok(vo))
+ video_to_output_surface(vo);
}
// warning: the size and pixel format of surface must match that of the
@@ -1148,7 +1141,6 @@ const struct vo_driver video_out_vdpau = {
.reconfig = reconfig,
.control = control,
.draw_image = draw_image,
- .filter_image = filter_image,
.flip_page_timed = flip_page_timed,
.uninit = uninit,
.priv_size = sizeof(struct vdpctx),