summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/vo_vdpau.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c
index 4904d78dd1..fbcb1e9917 100644
--- a/video/out/vo_vdpau.c
+++ b/video/out/vo_vdpau.c
@@ -204,8 +204,22 @@ static int render_video_to_output_surface(struct vo *vo,
return 0;
}
- mp_vdpau_mixer_render(vc->video_mixer, NULL, output_surface, output_rect,
- bv[dp].mpi, video_rect);
+ struct mp_image *mpi = bv[dp].mpi;
+ struct mp_vdpau_mixer_frame *frame = mp_vdpau_mixed_frame_get(mpi);
+ struct mp_vdpau_mixer_opts opts = {0};
+ if (frame)
+ opts = frame->opts;
+
+ // Apply custom vo_vdpau suboptions.
+ opts.chroma_deint |= vc->chroma_deint;
+ opts.pullup |= vc->pullup;
+ opts.denoise = MPCLAMP(opts.denoise + vc->denoise, 0, 1);
+ opts.sharpen = MPCLAMP(opts.sharpen + vc->sharpen, -1, 1);
+ if (vc->hqscaling)
+ opts.hqscaling = vc->hqscaling;
+
+ mp_vdpau_mixer_render(vc->video_mixer, &opts, output_surface, output_rect,
+ mpi, video_rect);
return 0;
}