diff options
author | Filip Milivojevic <zekica@gmail.com> | 2015-03-08 19:58:58 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-03-08 21:44:18 +0100 |
commit | 5c3a6ca96e8bb5275149e5763f27c6aaed35113d (patch) | |
tree | 3cc83ffe9f90073a4444e2e3a2c4acbe7c91fde6 /video | |
parent | 4d0aa016377bc997bb7c04bff8eb38701403c182 (diff) | |
download | mpv-5c3a6ca96e8bb5275149e5763f27c6aaed35113d.tar.bz2 mpv-5c3a6ca96e8bb5275149e5763f27c6aaed35113d.tar.xz |
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 <wm4@nowhere>
Diffstat (limited to 'video')
-rw-r--r-- | video/filter/vf_vavpp.c | 8 |
1 files changed, 8 insertions, 0 deletions
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; |