h264: unref leaking error recovery picture
authorwm4 <nfxjfg@googlemail.com>
Mon, 19 Jan 2015 16:14:44 +0000 (17:14 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 19 Jan 2015 19:11:39 +0000 (20:11 +0100)
This leaked a frame on each avcodec_flush_buffers() call, if frame
threading was enabled. It caused severe memory usage in player if you
were seeking a lot.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h264_slice.c

index ae50b9a..3874d07 100644 (file)
@@ -529,6 +529,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst,
 
         av_freep(&h->rbsp_buffer[0]);
         av_freep(&h->rbsp_buffer[1]);
+        ff_h264_unref_picture(h, &h->last_pic_for_ec);
         memcpy(h, h1, offsetof(H264Context, intra_pcm_ptr));
         memcpy(&h->cabac, &h1->cabac,
                sizeof(H264Context) - offsetof(H264Context, cabac));