comparison libmpdemux/demuxer.c @ 14666:91bbfcb66883

Memleak fixes. Based on patch by Timothy Lee (timothy lee at siriushk com).
author reimar
date Sun, 06 Feb 2005 10:30:10 +0000
parents 8769fa370f83
children 37116118ab6a
comparison
equal deleted inserted replaced
14665:e07e06c06932 14666:91bbfcb66883
217 #ifdef STREAMING_LIVE_DOT_COM 217 #ifdef STREAMING_LIVE_DOT_COM
218 case DEMUXER_TYPE_RTP: 218 case DEMUXER_TYPE_RTP:
219 demux_close_rtp(demuxer); break; 219 demux_close_rtp(demuxer); break;
220 #endif 220 #endif
221 case DEMUXER_TYPE_SMJPEG: 221 case DEMUXER_TYPE_SMJPEG:
222 demux_close_smjpeg(demuxer); return; 222 demux_close_smjpeg(demuxer); break;
223 case DEMUXER_TYPE_DEMUXERS: 223 case DEMUXER_TYPE_DEMUXERS:
224 demux_close_demuxers(demuxer); return; 224 demux_close_demuxers(demuxer); break;
225 case DEMUXER_TYPE_AVI: 225 case DEMUXER_TYPE_AVI:
226 case DEMUXER_TYPE_AVI_NI: 226 case DEMUXER_TYPE_AVI_NI:
227 case DEMUXER_TYPE_AVI_NINI: 227 case DEMUXER_TYPE_AVI_NINI:
228 demux_close_avi(demuxer); return; 228 demux_close_avi(demuxer); break;
229 #ifdef HAVE_XMMS 229 #ifdef HAVE_XMMS
230 case DEMUXER_TYPE_XMMS: 230 case DEMUXER_TYPE_XMMS:
231 demux_close_xmms(demuxer); break; 231 demux_close_xmms(demuxer); break;
232 #endif 232 #endif
233 #ifdef HAVE_GIF 233 #ifdef HAVE_GIF
248 case DEMUXER_TYPE_LAVF: 248 case DEMUXER_TYPE_LAVF:
249 demux_close_lavf(demuxer); break; 249 demux_close_lavf(demuxer); break;
250 #endif 250 #endif
251 } 251 }
252 // free streams: 252 // free streams:
253 for(i=0;i<256;i++){ 253 for(i = 0; i < MAX_A_STREAMS; i++)
254 if(demuxer->a_streams[i]) free_sh_audio(demuxer->a_streams[i]); 254 if(demuxer->a_streams[i]) free_sh_audio(demuxer->a_streams[i]);
255 for(i = 0; i < MAX_V_STREAMS; i++)
255 if(demuxer->v_streams[i]) free_sh_video(demuxer->v_streams[i]); 256 if(demuxer->v_streams[i]) free_sh_video(demuxer->v_streams[i]);
256 }
257 //if(sh_audio) free_sh_audio(sh_audio); 257 //if(sh_audio) free_sh_audio(sh_audio);
258 //if(sh_video) free_sh_video(sh_video); 258 //if(sh_video) free_sh_video(sh_video);
259 // free demuxers: 259 // free demuxers:
260 free_demuxer_stream(demuxer->audio); 260 free_demuxer_stream(demuxer->audio);
261 free_demuxer_stream(demuxer->video); 261 free_demuxer_stream(demuxer->video);
1048 { 1048 {
1049 if(demuxer->synced==2) 1049 if(demuxer->synced==2)
1050 mp_msg(MSGT_DEMUXER,MSGL_ERR,"MPEG: " MSGTR_MissingVideoStreamBug); 1050 mp_msg(MSGT_DEMUXER,MSGL_ERR,"MPEG: " MSGTR_MissingVideoStreamBug);
1051 else 1051 else
1052 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_NotSystemStream); 1052 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_NotSystemStream);
1053 }
1054 if (demuxer && file_format != DEMUXER_TYPE_MPEG_PS) {
1053 free_demuxer(demuxer); 1055 free_demuxer(demuxer);
1054 demuxer = NULL; 1056 demuxer = NULL;
1055 } 1057 }
1056 } 1058 }
1057 break; 1059 break;