aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Strange <astrange@ithinksw.com>2009-06-16 21:50:36 +0000
committerAlexander Strange <astrange@ithinksw.com>2009-06-16 21:50:36 +0000
commitd2d5e067359873c3eebaa8e6fbedb5d2ddaab2e3 (patch)
tree7c17360a3f8b040412a559fde46f92a58aa1e810
parent73b02e24604961e49a63ca34203d8f6c56612117 (diff)
downloadffmpeg-d2d5e067359873c3eebaa8e6fbedb5d2ddaab2e3.tar.gz
H.264: Fix memory leaks with multithreading.
The threads' contexts and rbsp_buffers were not freed at the end of decoding. Fixes issue 1581 Originally committed as revision 19207 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/h264.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index d269795d45..55553ed313 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1997,6 +1997,9 @@ static void free_tables(H264Context *h){
av_freep(&hx->top_borders[1]);
av_freep(&hx->top_borders[0]);
av_freep(&hx->s.obmc_scratchpad);
+ av_freep(&hx->rbsp_buffer[1]);
+ av_freep(&hx->rbsp_buffer[0]);
+ if (i) av_freep(&h->thread_context[i]);
}
}
@@ -8123,8 +8126,6 @@ av_cold void ff_h264_free_context(H264Context *h)
{
int i;
- av_freep(&h->rbsp_buffer[0]);
- av_freep(&h->rbsp_buffer[1]);
free_tables(h); //FIXME cleanup init stuff perhaps
for(i = 0; i < MAX_SPS_COUNT; i++)