]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
transcode: fix memory leaks
authorJaroslav Kysela <perex@perex.cz>
Sat, 2 Sep 2017 19:57:41 +0000 (21:57 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sat, 2 Sep 2017 20:13:50 +0000 (22:13 +0200)
src/transcoding/transcode/hwaccels/hwaccels.c
src/transcoding/transcode/transcoder.c

index 44f1db106fb29e66fb19e812ffed03b79e297df1..cb063be9e65dc3cc6d976bbdfad02c8b304a443a 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include "hwaccels.h"
+#include "../internals.h"
 
 #if ENABLE_VAAPI
 #include "vaapi.h"
@@ -90,7 +91,9 @@ hwaccels_decode_get_format(AVCodecContext *avctx,
 void
 hwaccels_decode_close_context(AVCodecContext *avctx)
 {
-    if (avctx->hwaccel_context) {
+    TVHContext *ctx = avctx->opaque;
+
+    if (ctx->hw_accel_ictx) {
         switch (avctx->pix_fmt) {
 #if ENABLE_VAAPI
             case AV_PIX_FMT_VAAPI:
@@ -100,7 +103,7 @@ hwaccels_decode_close_context(AVCodecContext *avctx)
             default:
                 break;
         }
-        avctx->hwaccel_context = NULL;
+        ctx->hw_accel_ictx = NULL;
     }
 }
 
index 88312366a92decb2c7c966aa26bef032e62f3548..44d1fcb7c71acfd86bff4d3782126e57362aba0c 100644 (file)
@@ -330,6 +330,7 @@ tvh_transcoder_deliver(TVHTranscoder *self, th_pkt_t *pkt)
         tvh_transcoder_log(self, LOG_ERR, "failed to create message");
         return -1;
     }
+    pkt_ref_dec(pkt);
     streaming_target_deliver2(self->output, msg);
     return 0;
 }