diff libmpdemux/demuxer.c @ 5810:8a357300d0ec

Added demuxer uninit
author albeu
date Wed, 24 Apr 2002 15:36:07 +0000
parents 5a040bd83630
children f9d23c2aa6b7
line wrap: on
line diff
--- a/libmpdemux/demuxer.c	Wed Apr 24 12:28:03 2002 +0000
+++ b/libmpdemux/demuxer.c	Wed Apr 24 15:36:07 2002 +0000
@@ -137,9 +137,39 @@
     free(sh);
 }
 
+extern void demux_close_vivo(demuxer_t *demuxer);
+extern void demux_close_real(demuxer_t *demuxer);
+extern void demux_close_y4m(demuxer_t *demuxer);
+extern void demux_close_mf(demuxer_t* demuxer);
+extern void demux_close_roq(demuxer_t* demuxer);
+extern void demux_close_film(demuxer_t* demuxer);
+extern void demux_close_bmp(demuxer_t* demuxer);
+extern void demux_close_fli(demuxer_t* demuxer);
+extern void demux_close_nuv(demuxer_t* demuxer);
+
 void free_demuxer(demuxer_t *demuxer){
     int i;
     mp_msg(MSGT_DEMUXER,MSGL_V,"DEMUXER: freeing demuxer at %p  \n",demuxer);
+    switch(demuxer->type) {
+    case DEMUXER_TYPE_VIVO:
+      demux_close_vivo(demuxer); break;
+    case DEMUXER_TYPE_REAL:
+      demux_close_real(demuxer); break;
+    case DEMUXER_TYPE_Y4M:
+      demux_close_y4m(demuxer); break;
+    case DEMUXER_TYPE_MF:
+      demux_close_mf(demuxer); break;
+    case DEMUXER_TYPE_ROQ:
+      demux_close_roq(demuxer);  break;
+    case DEMUXER_TYPE_FILM:
+      demux_close_film(demuxer); break;
+    case DEMUXER_TYPE_BMP:
+      demux_close_bmp(demuxer); break;
+    case DEMUXER_TYPE_FLI:
+      demux_close_fli(demuxer); break;
+    case DEMUXER_TYPE_NUV:
+      demux_close_nuv(demuxer); break;
+    }
     // free streams:
     for(i=0;i<256;i++){
 	if(demuxer->a_streams[i]) free_sh_audio(demuxer->a_streams[i]);