avcodec/nvenc: make sure newly allocated packets are refcounted
authorTimo Rothenpieler <timo@rothenpieler.org>
Sun, 17 Nov 2019 00:27:44 +0000 (01:27 +0100)
committerTimo Rothenpieler <timo@rothenpieler.org>
Sun, 17 Nov 2019 00:37:34 +0000 (01:37 +0100)
Fixes ticket 8383

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
libavcodec/nvenc.c

index 111048d..310e308 100644 (file)
@@ -1881,7 +1881,11 @@ static int process_output_surface(AVCodecContext *avctx, AVPacket *pkt, NvencSur
         goto error;
     }
 
-    if (res = ff_alloc_packet2(avctx, pkt, lock_params.bitstreamSizeInBytes,0)) {
+    res = pkt->data ?
+        ff_alloc_packet2(avctx, pkt, lock_params.bitstreamSizeInBytes, lock_params.bitstreamSizeInBytes) :
+        av_new_packet(pkt, lock_params.bitstreamSizeInBytes);
+
+    if (res < 0) {
         p_nvenc->nvEncUnlockBitstream(ctx->nvencoder, tmpoutsurf->output_surface);
         goto error;
     }