mirror of https://github.com/mpv-player/mpv
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:
parent
844656d135
commit
ff2e39a3d2
|
@ -334,11 +334,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
|
||||
|
@ -372,6 +373,7 @@ static void uninit(struct lavc_ctx *ctx)
|
|||
|
||||
destroy_decoder(ctx);
|
||||
va_surface_pool_release(p->pool);
|
||||
p->pool = NULL;
|
||||
|
||||
if (p->x11_display)
|
||||
destroy_va_dummy_ctx(p);
|
||||
|
|
Loading…
Reference in New Issue