X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg_vaapi.c;h=d011cacef7d5f3aacc74b53ee12ac5e1ae4bcf20;hb=0bab78f7e729a76ea7a8cbec7f1de033c52494e8;hp=b9ad7adee9a2a91d7437004454b2f9c8c0df1471;hpb=a0860b0a388d5471ae3e60fbf004509a3783f392;p=ffmpeg diff --git a/ffmpeg_vaapi.c b/ffmpeg_vaapi.c index b9ad7adee9a..d011cacef7d 100644 --- a/ffmpeg_vaapi.c +++ b/ffmpeg_vaapi.c @@ -157,6 +157,7 @@ int vaapi_decode_init(AVCodecContext *avctx) if (!ctx) return AVERROR(ENOMEM); ctx->class = &vaapi_class; + ist->hwaccel_ctx = ctx; ctx->device_ref = av_buffer_ref(hw_device_ctx); ctx->device = (AVHWDeviceContext*)ctx->device_ref->data; @@ -202,7 +203,6 @@ int vaapi_decode_init(AVCodecContext *avctx) goto fail; } - ist->hwaccel_ctx = ctx; ist->hwaccel_uninit = &vaapi_decode_uninit; ist->hwaccel_get_buffer = &vaapi_get_buffer; ist->hwaccel_retrieve_data = &vaapi_retrieve_data; @@ -220,6 +220,8 @@ av_cold int vaapi_device_init(const char *device) { int err; + av_buffer_unref(&hw_device_ctx); + err = av_hwdevice_ctx_create(&hw_device_ctx, AV_HWDEVICE_TYPE_VAAPI, device, NULL, 0); if (err < 0) {