mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user