diff libmpdemux/demuxer.c @ 5214:dd79075bbd98

added a BMP file demuxer...yeah, that's right, a static image BMP file demuxer; what, is that so weird?...:)
author melanson
date Wed, 20 Mar 2002 05:15:53 +0000
parents f67b321e1eda
children db582be1b590
line wrap: on
line diff
--- a/libmpdemux/demuxer.c	Wed Mar 20 05:09:38 2002 +0000
+++ b/libmpdemux/demuxer.c	Wed Mar 20 05:15:53 2002 +0000
@@ -196,6 +196,7 @@
 int demux_mf_fill_buffer( demuxer_t *demux);
 int demux_roq_fill_buffer(demuxer_t *demux);
 int demux_film_fill_buffer(demuxer_t *demux);
+int demux_bmp_fill_buffer(demuxer_t *demux);
 int demux_fli_fill_buffer(demuxer_t *demux);
 int demux_mpg_es_fill_buffer(demuxer_t *demux);
 int demux_mpg_fill_buffer(demuxer_t *demux);
@@ -227,6 +228,7 @@
     case DEMUXER_TYPE_MF: return demux_mf_fill_buffer(demux);
     case DEMUXER_TYPE_ROQ: return demux_roq_fill_buffer(demux);
     case DEMUXER_TYPE_FILM: return demux_film_fill_buffer(demux);
+    case DEMUXER_TYPE_BMP: return demux_bmp_fill_buffer(demux);
     case DEMUXER_TYPE_FLI: return demux_fli_fill_buffer(demux);
     case DEMUXER_TYPE_MPEG_ES: return demux_mpg_es_fill_buffer(demux);
     case DEMUXER_TYPE_MPEG_PS: return demux_mpg_fill_buffer(demux);
@@ -422,6 +424,7 @@
 int demux_open_fli(demuxer_t* demuxer);
 int demux_open_mf(demuxer_t* demuxer);
 int demux_open_film(demuxer_t* demuxer);
+int demux_open_bmp(demuxer_t* demuxer);
 int demux_open_roq(demuxer_t* demuxer);
 
 extern int vivo_check_file(demuxer_t *demuxer);
@@ -598,6 +601,17 @@
       demuxer = NULL;
   }
 }
+//=============== Try to open as BMP file: =================
+if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_BMP){
+  demuxer=new_demuxer(stream,DEMUXER_TYPE_BMP,audio_id,video_id,dvdsub_id);
+  if(bmp_check_file(demuxer)){
+      mp_msg(MSGT_DEMUXER,MSGL_INFO,"BMP file\n");
+      file_format=DEMUXER_TYPE_BMP;
+  } else {
+      free_demuxer(demuxer);
+      demuxer = NULL;
+  }
+}
 //=============== Try to open as Ogg file: =================
 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_OGG){
   demuxer=new_demuxer(stream,DEMUXER_TYPE_OGG,audio_id,video_id,dvdsub_id);
@@ -724,6 +738,10 @@
   if (!demux_open_film(demuxer)) return NULL;
   break;
  }
+ case DEMUXER_TYPE_BMP: {
+  if (!demux_open_bmp(demuxer)) return NULL;
+  break;
+ }
  case DEMUXER_TYPE_ROQ: {
   if (!demux_open_roq(demuxer)) return NULL;
   break;