From 64a78cf314379302e28ed8727c51aec82f9328a2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 21 May 2013 22:06:45 +0200 Subject: demux_lavf: workaround minor ffmpeg memory leak The sequence of avcodec_alloc_context3() / avcodec_copy_context() / avcodec_close() / av_free() leaks some memory. So don't copy the context and use it directly. Originally avcodec_copy_context() was used to guarantee that libavformat can't update the fields of the context during demuxing in order to make things a little more robust, but it's not strictly needed, and ffmpeg/ffplay don't do this anyway. Still might make the situation worse should we move demuxing into a separate thread, though. --- demux/demux.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'demux/demux.c') diff --git a/demux/demux.c b/demux/demux.c index b027f896de..c379ee4736 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -315,10 +315,6 @@ struct sh_stream *new_sh_stream(demuxer_t *demuxer, enum stream_type type) static void free_sh_stream(struct sh_stream *sh) { - if (sh->lav_headers) { - avcodec_close(sh->lav_headers); - av_free(sh->lav_headers); - } } sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid) -- cgit v1.2.3