vlc | branch: master | Steve Lhomme <[email protected]> | Tue Oct 22 16:15:46 2019 +0200| [8419f591c230c2bc62e368a8524e117335566f17] | committer: Steve Lhomme
hw: vaapi: keep the VADisplay in each picture context So we don't depend on picref. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8419f591c230c2bc62e368a8524e117335566f17 --- modules/hw/vaapi/vlc_vaapi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/hw/vaapi/vlc_vaapi.c b/modules/hw/vaapi/vlc_vaapi.c index 1e603bb8fc..47fd463da6 100644 --- a/modules/hw/vaapi/vlc_vaapi.c +++ b/modules/hw/vaapi/vlc_vaapi.c @@ -419,6 +419,7 @@ struct vaapi_pic_ctx { picture_context_t s; VASurfaceID surface; + VADisplay va_dpy; picture_t *picref; }; @@ -472,6 +473,7 @@ pic_ctx_copy_cb(struct picture_context_t *opaque) dst_ctx->s.destroy = pic_ctx_destroy_cb; dst_ctx->s.copy = pic_ctx_copy_cb; dst_ctx->surface = src_ctx->surface; + dst_ctx->va_dpy = src_ctx->va_dpy; dst_ctx->picref = picture_Hold(src_ctx->picref); return &dst_ctx->s; } @@ -533,6 +535,7 @@ vlc_vaapi_PoolNew(vlc_object_t *o, vlc_decoder_device *dec_device, p_sys->ctx.s.destroy = pic_sys_ctx_destroy_cb; p_sys->ctx.s.copy = pic_ctx_copy_cb; p_sys->ctx.surface = instance->render_targets[i]; + p_sys->ctx.va_dpy = dpy; p_sys->ctx.picref = NULL; picture_resource_t rsc = { .p_sys = p_sys, @@ -610,6 +613,6 @@ vlc_vaapi_PicGetDisplay(picture_t *pic) ASSERT_VAAPI_CHROMA(pic); assert(pic->context); - picture_sys_t *p_sys = ((struct vaapi_pic_ctx *)pic->context)->picref->p_sys; - return p_sys->instance->va_dpy; + struct vaapi_pic_ctx *pic_ctx = (struct vaapi_pic_ctx *)pic->context; + return pic_ctx->va_dpy; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
