]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
transcode: don't use deprecated hw_context member of AVCodecContext
authorJaroslav Kysela <perex@perex.cz>
Sat, 2 Sep 2017 15:06:47 +0000 (17:06 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sat, 2 Sep 2017 15:06:47 +0000 (17:06 +0200)
src/transcoding/transcode/context.c
src/transcoding/transcode/hwaccels/vaapi.c
src/transcoding/transcode/internals.h

index c29b1c16a60f7de8cb4514fa9e02696d46f81747..7ce2a7c5a09fe12cff07a7bae6fd1e0771601642 100644 (file)
@@ -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;
             }
index 4ac20006abab0dcc14ace1151e3cf3eba1cbfbf3..b5c896c560cb9fb895816a7bc280ebb2f86727a5 100644 (file)
@@ -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;
 }
 
 
index a274575c3a1b4301c04a673dd58e313cdeda8823..2abdac5c116f3fea4c10f6805214fddeb189b93c 100644 (file)
@@ -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