summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGildas Bazin <gbazi@altern.org>2004-01-08 19:01:16 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-01-08 19:01:16 +0000
commitec7d0d2e9ec9c9e5ed6df5446c11ede90d602928 (patch)
treee1d2af23d172490b52d3d309a10328cece32b784
parent303aebf97a1537185aa47f262eb9d756b0e315a7 (diff)
memleak patch by (Gildas Bazin <gbazin at altern dot org>)
Originally committed as revision 2678 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/movenc.c2
-rw-r--r--libavformat/mpegts.c5
2 files changed, 6 insertions, 1 deletions
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;i<NB_PID_MAX;i++)
- av_free(ts->pids[i]);
+ if (ts->pids[i]) mpegts_close_filter(ts, ts->pids[i]);
return 0;
}