From 5c3a6ca96e8bb5275149e5763f27c6aaed35113d Mon Sep 17 00:00:00 2001 From: Filip Milivojevic Date: Sun, 8 Mar 2015 19:58:58 +0100 Subject: vf_vavpp: fix deinterlacing Add filter parameters to VAAPI deinterlacing filter to actually process bottom fields instead of deinterlacing top field twice. Signed-off-by: wm4 --- video/filter/vf_vavpp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/video/filter/vf_vavpp.c b/video/filter/vf_vavpp.c index 54648e124c..be7f7f4dad 100644 --- a/video/filter/vf_vavpp.c +++ b/video/filter/vf_vavpp.c @@ -163,6 +163,14 @@ static struct mp_image *render(struct vf_instance *vf, struct mp_image *in, status = vaMapBuffer(p->display, buffer, (void**)¶m); if (!check_error(vf, status, "vaMapBuffer()")) break; + + VAProcFilterParameterBufferDeinterlacing *filter_params; + status = vaMapBuffer(p->display, *(p->pipe.filters), (void**)&filter_params); + if (!check_error(vf, status, "vaMapBuffer()")) + break; + filter_params->flags = flags & VA_TOP_FIELD ? 0 : VA_DEINTERLACING_BOTTOM_FIELD; + vaUnmapBuffer(p->display, *(p->pipe.filters)); + param->surface = in_id; param->surface_region = NULL; param->output_region = NULL; -- cgit v1.2.3