summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-06 10:30:10 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-06 10:30:10 +0000
commit02f5ebf1d5fc226f7fa2ee2ea1f29d42c44e21a6 (patch)
treee19095d7fa9bfdc4a8b824b189f11caea4126476 /libmpdemux/demuxer.c
parent7a9b1289a2438f21dc9c1a62abc149a1bb072e9b (diff)
downloadmpv-02f5ebf1d5fc226f7fa2ee2ea1f29d42c44e21a6.tar.bz2
mpv-02f5ebf1d5fc226f7fa2ee2ea1f29d42c44e21a6.tar.xz
Memleak fixes. Based on patch by Timothy Lee (timothy lee at siriushk com).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14667 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index d6f91e0ce7..cf009d95c3 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -219,13 +219,13 @@ void free_demuxer(demuxer_t *demuxer){
demux_close_rtp(demuxer); break;
#endif
case DEMUXER_TYPE_SMJPEG:
- demux_close_smjpeg(demuxer); return;
+ demux_close_smjpeg(demuxer); break;
case DEMUXER_TYPE_DEMUXERS:
- demux_close_demuxers(demuxer); return;
+ demux_close_demuxers(demuxer); break;
case DEMUXER_TYPE_AVI:
case DEMUXER_TYPE_AVI_NI:
case DEMUXER_TYPE_AVI_NINI:
- demux_close_avi(demuxer); return;
+ demux_close_avi(demuxer); break;
#ifdef HAVE_XMMS
case DEMUXER_TYPE_XMMS:
demux_close_xmms(demuxer); break;
@@ -250,10 +250,10 @@ void free_demuxer(demuxer_t *demuxer){
#endif
}
// free streams:
- for(i=0;i<256;i++){
+ for(i = 0; i < MAX_A_STREAMS; i++)
if(demuxer->a_streams[i]) free_sh_audio(demuxer->a_streams[i]);
+ for(i = 0; i < MAX_V_STREAMS; i++)
if(demuxer->v_streams[i]) free_sh_video(demuxer->v_streams[i]);
- }
//if(sh_audio) free_sh_audio(sh_audio);
//if(sh_video) free_sh_video(sh_video);
// free demuxers:
@@ -1050,6 +1050,8 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPEG_PS){
mp_msg(MSGT_DEMUXER,MSGL_ERR,"MPEG: " MSGTR_MissingVideoStreamBug);
else
mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_NotSystemStream);
+ }
+ if (demuxer && file_format != DEMUXER_TYPE_MPEG_PS) {
free_demuxer(demuxer);
demuxer = NULL;
}