summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authormelanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-20 05:15:53 +0000
committermelanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-20 05:15:53 +0000
commitcfaca0053dbfda1c2a091fa92037427bb3600e9e (patch)
treea54e215c474afb2a22aa2cf324c023257d1989f6 /libmpdemux/demuxer.c
parentc09119195d1d1705216eb992ccc7177820125108 (diff)
downloadmpv-cfaca0053dbfda1c2a091fa92037427bb3600e9e.tar.bz2
mpv-cfaca0053dbfda1c2a091fa92037427bb3600e9e.tar.xz
added a BMP file demuxer...yeah, that's right, a static image BMP file
demuxer; what, is that so weird?...:) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5215 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 8f45423dae..06edf250f7 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -196,6 +196,7 @@ void ds_read_packet(demux_stream_t *ds,stream_t *stream,int len,float pts,off_t
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 @@ int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){
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 mov_read_header(demuxer_t* demuxer);
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 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_ROQ){
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 @@ switch(file_format){
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;