ffmpeg | branch: release/3.3 | Timo Rothenpieler <t...@rothenpieler.org> | Sun 
Jan 28 12:39:03 2018 +0100| [4bb40c32ee09c5f08f56b2715177c3707c7e8ec5] | 
committer: Timo Rothenpieler

avcodec/nvenc: unregister input resource when unmapping

Currently the resource is only ever unregistered when the
registered_frames array is fully in use and an unmapped entry is re-used
and cleaned up.
I'm pretty sure the frame will have been cleaned up before that happens,
so I'm kinda surprised this never blew up.

Signed-off-by: Timo Rothenpieler <t...@rothenpieler.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4bb40c32ee09c5f08f56b2715177c3707c7e8ec5
---

 libavcodec/nvenc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index c357a6f46a..bb059a2726 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -1669,6 +1669,8 @@ static int process_output_surface(AVCodecContext *avctx, 
AVPacket *pkt, NvencSur
         ctx->registered_frames[tmpoutsurf->reg_idx].mapped -= 1;
         if (ctx->registered_frames[tmpoutsurf->reg_idx].mapped == 0) {
             p_nvenc->nvEncUnmapInputResource(ctx->nvencoder, 
ctx->registered_frames[tmpoutsurf->reg_idx].in_map.mappedResource);
+            p_nvenc->nvEncUnregisterResource(ctx->nvencoder, 
ctx->registered_frames[tmpoutsurf->reg_idx].regptr);
+            ctx->registered_frames[tmpoutsurf->reg_idx].regptr = NULL;
         } else if (ctx->registered_frames[tmpoutsurf->reg_idx].mapped < 0) {
             res = AVERROR_BUG;
             goto error;

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to