From: Jaroslav Kysela Date: Sat, 2 Sep 2017 15:06:47 +0000 (+0200) Subject: transcode: don't use deprecated hw_context member of AVCodecContext X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=879c0065d9472d39c1dff0750c973220dec2af87;p=thirdparty%2Ftvheadend.git transcode: don't use deprecated hw_context member of AVCodecContext --- diff --git a/src/transcoding/transcode/context.c b/src/transcoding/transcode/context.c index c29b1c16a..7ce2a7c5a 100644 --- a/src/transcoding/transcode/context.c +++ b/src/transcoding/transcode/context.c @@ -578,10 +578,10 @@ tvh_context_open_filters(TVHContext *self, } // additional filtergraph params - if (!strcmp("buffer", source_name) && self->hw_device_ctx) { + if (!strcmp("buffer", source_name) && self->hw_device_octx) { for (i = 0; i < self->avfltgraph->nb_filters; i++) { if (!(self->avfltgraph->filters[i]->hw_device_ctx = - av_buffer_ref(self->hw_device_ctx))) { + av_buffer_ref(self->hw_device_octx))) { ret = -1; goto finish; } diff --git a/src/transcoding/transcode/hwaccels/vaapi.c b/src/transcoding/transcode/hwaccels/vaapi.c index 4ac20006a..b5c896c56 100644 --- a/src/transcoding/transcode/hwaccels/vaapi.c +++ b/src/transcoding/transcode/hwaccels/vaapi.c @@ -507,7 +507,9 @@ vaapi_get_buffer2(AVCodecContext *avctx, AVFrame *avframe, int flags) int vaapi_decode_setup_context(AVCodecContext *avctx) { - if (!(avctx->hwaccel_context = + TVHContext *ctx = avctx->opaque; + + if (!(ctx->hw_accel_ictx = tvhva_context_create("decode", avctx, VAEntrypointVLD))) { return -1; } @@ -522,11 +524,9 @@ vaapi_decode_setup_context(AVCodecContext *avctx) void vaapi_decode_close_context(AVCodecContext *avctx) { - /*if (avctx->hw_frames_ctx) { - av_buffer_unref(&avctx->hw_frames_ctx); - avctx->hw_frames_ctx = NULL; - }*/ - tvhva_context_destroy(avctx->hwaccel_context); + TVHContext *ctx = avctx->opaque; + + tvhva_context_destroy(ctx->hw_accel_ictx); } @@ -550,7 +550,7 @@ vaapi_encode_setup_context(AVCodecContext *avctx) tvhva_context_create("encode", avctx, VAEntrypointEncSlice))) { return -1; } - if (!(ctx->hw_device_ctx = av_buffer_ref(hwaccel_context->hw_device_ref))) { + if (!(ctx->hw_device_octx = av_buffer_ref(hwaccel_context->hw_device_ref))) { tvhva_context_destroy(hwaccel_context); return AVERROR(ENOMEM); } @@ -562,13 +562,9 @@ vaapi_encode_setup_context(AVCodecContext *avctx) void vaapi_encode_close_context(AVCodecContext *avctx) { - /*if (avctx->hw_frames_ctx) { - av_buffer_unref(&avctx->hw_frames_ctx); - avctx->hw_frames_ctx = NULL; - }*/ TVHContext *ctx = avctx->opaque; - av_buffer_unref(&ctx->hw_device_ctx); - ctx->hw_device_ctx = NULL; + av_buffer_unref(&ctx->hw_device_octx); + ctx->hw_device_octx = NULL; } diff --git a/src/transcoding/transcode/internals.h b/src/transcoding/transcode/internals.h index a274575c3..2abdac5c1 100644 --- a/src/transcoding/transcode/internals.h +++ b/src/transcoding/transcode/internals.h @@ -171,7 +171,8 @@ typedef struct tvh_context_t { // hardware acceleration char *hw_accel_device; AVBufferRef *hw_device_ref; - AVBufferRef *hw_device_ctx; + void *hw_accel_ictx; + AVBufferRef *hw_device_octx; } TVHContext; int