aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-01-19 17:14:44 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-01-19 20:11:39 +0100
commite0e33ebe6bd71fdb211c9af7c7af17d6472c535b (patch)
treed0ca36e538b2a74063f9daacc8b70fa82a029dcd
parentf9a5a89bbfdef991523921f4733217009946eec4 (diff)
downloadffmpeg-e0e33ebe6bd71fdb211c9af7c7af17d6472c535b.tar.gz
h264: unref leaking error recovery picture
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>
-rw-r--r--libavcodec/h264_slice.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index ae50b9a2fe..3874d07000 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -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));