summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/demux_demuxers.c6
-rw-r--r--libmpdemux/demuxer.c3
2 files changed, 2 insertions, 7 deletions
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]);