Browse Source

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
tags/v0.6
Alexander Strange 16 years ago
parent
commit
d2d5e06735
1 changed files with 3 additions and 2 deletions
  1. +3
    -2
      libavcodec/h264.c

+ 3
- 2
libavcodec/h264.c View File

@@ -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++)


Loading…
Cancel
Save