From ec7d0d2e9ec9c9e5ed6df5446c11ede90d602928 Mon Sep 17 00:00:00 2001 From: Gildas Bazin Date: Thu, 8 Jan 2004 19:01:16 +0000 Subject: memleak patch by (Gildas Bazin ) Originally committed as revision 2678 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/movenc.c | 2 ++ libavformat/mpegts.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 28e49e3fb6..104f176716 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -893,6 +893,8 @@ static int mov_write_trailer(AVFormatContext *s) av_free(mov->tracks[i].cluster[j]); } av_free(mov->tracks[i].cluster); + if( mov->tracks[i].vosLen ) av_free( mov->tracks[i].vosData ); + mov->tracks[i].cluster = NULL; mov->tracks[i].ents_allocated = mov->tracks[i].entry = 0; } diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 2da011a57e..2ad5aa5c76 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -214,6 +214,9 @@ void mpegts_close_filter(MpegTSContext *ts, MpegTSFilter *filter) pid = filter->pid; if (filter->type == MPEGTS_SECTION) av_freep(&filter->u.section_filter.section_buf); + else if (filter->type == MPEGTS_PES) + av_freep(&filter->u.pes_filter.opaque); + av_free(filter); ts->pids[pid] = NULL; } @@ -1271,7 +1274,7 @@ static int mpegts_read_close(AVFormatContext *s) MpegTSContext *ts = s->priv_data; int i; for(i=0;ipids[i]); + if (ts->pids[i]) mpegts_close_filter(ts, ts->pids[i]); return 0; } -- cgit v1.2.3