From dead4d1193fe79f64138e92fbc776dd31e7a9d0e Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 23 Aug 2005 08:03:26 +0000 Subject: Do not free demuxer before using demuxer->desc->type (happened when using -audiofile). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16292 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_demuxers.c | 6 ------ libmpdemux/demuxer.c | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_demuxers.c b/libmpdemux/demux_demuxers.c index 6edfddb3c2..68e55dd716 100644 --- a/libmpdemux/demux_demuxers.c +++ b/libmpdemux/demux_demuxers.c @@ -104,12 +104,6 @@ static void demux_close_demuxers(demuxer_t* demuxer) { } free(priv); - if(demuxer->info) { - for(i=0;demuxer->info[i] != NULL; i++) - free(demuxer->info[i]); - free(demuxer->info); - } - free(demuxer); } diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index d43735c186..22620b38ef 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -260,7 +260,7 @@ void free_demuxer(demuxer_t *demuxer){ demuxer->desc->close(demuxer); // Very ugly hack to make it behave like old implementation if (demuxer->desc->type == DEMUXER_TYPE_DEMUXERS) - return; + goto skip_streamfree; // free streams: for(i = 0; i < MAX_A_STREAMS; i++) if(demuxer->a_streams[i]) free_sh_audio(demuxer->a_streams[i]); @@ -272,6 +272,7 @@ void free_demuxer(demuxer_t *demuxer){ free_demuxer_stream(demuxer->audio); free_demuxer_stream(demuxer->video); free_demuxer_stream(demuxer->sub); +skip_streamfree: if(demuxer->info) { for(i=0;demuxer->info[i] != NULL; i++) free(demuxer->info[i]); -- cgit v1.2.3