diff --git a/video/out/hwdec/hwdec_vaapi.c b/video/out/hwdec/hwdec_vaapi.c index 9b1d191fb4..4b3a598ad7 100644 --- a/video/out/hwdec/hwdec_vaapi.c +++ b/video/out/hwdec/hwdec_vaapi.c @@ -52,11 +52,8 @@ static VADisplay *create_x11_va_display(struct ra *ra) static VADisplay *create_wayland_va_display(struct ra *ra) { struct wl_display *wl = ra_get_native_resource(ra, "wl"); - VADisplay rc = wl ? vaGetDisplayWl(wl) : NULL; - if (rc) - ra_add_native_resource(ra, "VADisplay", rc); - return rc; + return wl ? vaGetDisplayWl(wl) : NULL; } #endif @@ -174,6 +171,9 @@ static int init(struct ra_hwdec *hw) return -1; } + // it's now safe to set the display resource + ra_add_native_resource(hw->ra, "VADisplay", p->display); + p->ctx->hwctx.hw_imgfmt = IMGFMT_VAAPI; p->ctx->hwctx.supported_formats = p->formats; p->ctx->hwctx.driver_name = hw->driver->name;