vaapi: fix destruction with --hwdec=haapi-copy

This is incomplete; the video chain will still hold some vaapi objects
after destroying the decoder and thus the vaapi context. This is very
bad. Fixing it would require something like refcounting the vaapi
context, but I don't really want to.
This commit is contained in:
wm4 2014-05-28 02:08:19 +02:00
parent d99f30d726
commit b442b522f6
1 changed files with 6 additions and 2 deletions

View File

@ -317,11 +317,12 @@ static struct mp_image *allocate_image(struct lavc_ctx *ctx, int format,
static void destroy_va_dummy_ctx(struct priv *p)
{
va_destroy(p->ctx);
p->ctx = NULL;
p->display = NULL;
if (p->x11_display)
XCloseDisplay(p->x11_display);
p->x11_display = NULL;
va_destroy(p->ctx);
p->ctx = NULL;
}
// Creates a "private" VADisplay, disconnected from the VO. We just create a
@ -355,6 +356,9 @@ static void uninit(struct lavc_ctx *ctx)
destroy_decoder(ctx);
talloc_free(p->pool);
p->pool = NULL;
if (p->x11_display)
destroy_va_dummy_ctx(p);