vaapi: set our own context in AVHWFramesContext not AVHWDeviceContext

AVHWDeviceContext.user_opaque is reserved to libavutil under certain
circumstances, while AVHWFramesContext.user_opaque is truly free for use
by us. It's slightly simpler too.
This commit is contained in:
wm4
2017-01-12 09:21:58 +01:00
parent fcb970492c
commit a51e991b56
2 changed files with 7 additions and 7 deletions

View File

@@ -521,15 +521,15 @@ struct mp_image *va_surface_download(struct mp_image *src,
if (!src->hwctx)
return NULL;
AVHWFramesContext *fctx = (void *)src->hwctx->data;
AVHWDeviceContext *dctx = fctx->device_ctx;
AVVAAPIDeviceContext *vactx = dctx->hwctx;
// as set by video/decode/vaapi.c
struct mp_vaapi_ctx *ctx = fctx->user_opaque;
tmp_p = (struct va_surface){
.ctx = dctx->user_opaque, // as set by video/decode/vaapi.c
.ctx = ctx,
.id = va_surface_id(src),
.rt_format = VA_RT_FORMAT_YUV420,
.w = fctx->width,
.h = fctx->height,
.display = vactx->display,
.display = ctx->display,
.image = { .image_id = VA_INVALID_ID, .buf = VA_INVALID_ID },
};
p = &tmp_p;