From ebde784fabe12791956cbe4a23a9e4bda4a4a205 Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 1 Jun 2015 01:34:55 +0200 Subject: vf_vavpp: move vaMapBuffer() closer to its use The mapped data (pointed to by the param variable) is not needed before, so the call can be moved down. Also, this prevents that the buffer remains mapped forever if the other vaMapBuffer() call above fails (the cleanup code forgets to unmap the buffer - this commit makes it unnecessary). --- video/filter/vf_vavpp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'video/filter') diff --git a/video/filter/vf_vavpp.c b/video/filter/vf_vavpp.c index c8b3bfdf25..770e68bfce 100644 --- a/video/filter/vf_vavpp.c +++ b/video/filter/vf_vavpp.c @@ -156,10 +156,6 @@ static struct mp_image *render(struct vf_instance *vf, struct mp_image *in, if (!check_error(vf, status, "vaCreateBuffer()")) goto cleanup; - status = vaMapBuffer(p->display, buffer, (void**)¶m); - if (!check_error(vf, status, "vaMapBuffer()")) - goto cleanup; - VAProcFilterParameterBufferDeinterlacing *filter_params; status = vaMapBuffer(p->display, *(p->pipe.filters), (void**)&filter_params); if (!check_error(vf, status, "vaMapBuffer()")) @@ -171,6 +167,10 @@ static struct mp_image *render(struct vf_instance *vf, struct mp_image *in, vaUnmapBuffer(p->display, *(p->pipe.filters)); + status = vaMapBuffer(p->display, buffer, (void**)¶m); + if (!check_error(vf, status, "vaMapBuffer()")) + goto cleanup; + param->surface = in_id; param->surface_region = NULL; param->output_region = NULL; -- cgit v1.2.3