Mercurial > mplayer.hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
5213:b40644bb0e61 | 5214:dd79075bbd98 |
---|---|
194 // 0 = EOF or no stream found or invalid type | 194 // 0 = EOF or no stream found or invalid type |
195 // 1 = successfully read a packet | 195 // 1 = successfully read a packet |
196 int demux_mf_fill_buffer( demuxer_t *demux); | 196 int demux_mf_fill_buffer( demuxer_t *demux); |
197 int demux_roq_fill_buffer(demuxer_t *demux); | 197 int demux_roq_fill_buffer(demuxer_t *demux); |
198 int demux_film_fill_buffer(demuxer_t *demux); | 198 int demux_film_fill_buffer(demuxer_t *demux); |
199 int demux_bmp_fill_buffer(demuxer_t *demux); | |
199 int demux_fli_fill_buffer(demuxer_t *demux); | 200 int demux_fli_fill_buffer(demuxer_t *demux); |
200 int demux_mpg_es_fill_buffer(demuxer_t *demux); | 201 int demux_mpg_es_fill_buffer(demuxer_t *demux); |
201 int demux_mpg_fill_buffer(demuxer_t *demux); | 202 int demux_mpg_fill_buffer(demuxer_t *demux); |
202 int demux_avi_fill_buffer(demuxer_t *demux); | 203 int demux_avi_fill_buffer(demuxer_t *demux); |
203 int demux_avi_fill_buffer_ni(demuxer_t *demux,demux_stream_t *ds); | 204 int demux_avi_fill_buffer_ni(demuxer_t *demux,demux_stream_t *ds); |
225 // printf("demux->type=%d\n",demux->type); | 226 // printf("demux->type=%d\n",demux->type); |
226 switch(demux->type){ | 227 switch(demux->type){ |
227 case DEMUXER_TYPE_MF: return demux_mf_fill_buffer(demux); | 228 case DEMUXER_TYPE_MF: return demux_mf_fill_buffer(demux); |
228 case DEMUXER_TYPE_ROQ: return demux_roq_fill_buffer(demux); | 229 case DEMUXER_TYPE_ROQ: return demux_roq_fill_buffer(demux); |
229 case DEMUXER_TYPE_FILM: return demux_film_fill_buffer(demux); | 230 case DEMUXER_TYPE_FILM: return demux_film_fill_buffer(demux); |
231 case DEMUXER_TYPE_BMP: return demux_bmp_fill_buffer(demux); | |
230 case DEMUXER_TYPE_FLI: return demux_fli_fill_buffer(demux); | 232 case DEMUXER_TYPE_FLI: return demux_fli_fill_buffer(demux); |
231 case DEMUXER_TYPE_MPEG_ES: return demux_mpg_es_fill_buffer(demux); | 233 case DEMUXER_TYPE_MPEG_ES: return demux_mpg_es_fill_buffer(demux); |
232 case DEMUXER_TYPE_MPEG_PS: return demux_mpg_fill_buffer(demux); | 234 case DEMUXER_TYPE_MPEG_PS: return demux_mpg_fill_buffer(demux); |
233 case DEMUXER_TYPE_AVI: return demux_avi_fill_buffer(demux); | 235 case DEMUXER_TYPE_AVI: return demux_avi_fill_buffer(demux); |
234 case DEMUXER_TYPE_AVI_NI: return demux_avi_fill_buffer_ni(demux,ds); | 236 case DEMUXER_TYPE_AVI_NI: return demux_avi_fill_buffer_ni(demux,ds); |
420 int mov_check_file(demuxer_t* demuxer); | 422 int mov_check_file(demuxer_t* demuxer); |
421 int mov_read_header(demuxer_t* demuxer); | 423 int mov_read_header(demuxer_t* demuxer); |
422 int demux_open_fli(demuxer_t* demuxer); | 424 int demux_open_fli(demuxer_t* demuxer); |
423 int demux_open_mf(demuxer_t* demuxer); | 425 int demux_open_mf(demuxer_t* demuxer); |
424 int demux_open_film(demuxer_t* demuxer); | 426 int demux_open_film(demuxer_t* demuxer); |
427 int demux_open_bmp(demuxer_t* demuxer); | |
425 int demux_open_roq(demuxer_t* demuxer); | 428 int demux_open_roq(demuxer_t* demuxer); |
426 | 429 |
427 extern int vivo_check_file(demuxer_t *demuxer); | 430 extern int vivo_check_file(demuxer_t *demuxer); |
428 extern void demux_open_vivo(demuxer_t *demuxer); | 431 extern void demux_open_vivo(demuxer_t *demuxer); |
429 extern int y4m_check_file(demuxer_t *demuxer); | 432 extern int y4m_check_file(demuxer_t *demuxer); |
591 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_ROQ){ | 594 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_ROQ){ |
592 demuxer=new_demuxer(stream,DEMUXER_TYPE_ROQ,audio_id,video_id,dvdsub_id); | 595 demuxer=new_demuxer(stream,DEMUXER_TYPE_ROQ,audio_id,video_id,dvdsub_id); |
593 if(roq_check_file(demuxer)){ | 596 if(roq_check_file(demuxer)){ |
594 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedROQfile); | 597 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedROQfile); |
595 file_format=DEMUXER_TYPE_ROQ; | 598 file_format=DEMUXER_TYPE_ROQ; |
599 } else { | |
600 free_demuxer(demuxer); | |
601 demuxer = NULL; | |
602 } | |
603 } | |
604 //=============== Try to open as BMP file: ================= | |
605 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_BMP){ | |
606 demuxer=new_demuxer(stream,DEMUXER_TYPE_BMP,audio_id,video_id,dvdsub_id); | |
607 if(bmp_check_file(demuxer)){ | |
608 mp_msg(MSGT_DEMUXER,MSGL_INFO,"BMP file\n"); | |
609 file_format=DEMUXER_TYPE_BMP; | |
596 } else { | 610 } else { |
597 free_demuxer(demuxer); | 611 free_demuxer(demuxer); |
598 demuxer = NULL; | 612 demuxer = NULL; |
599 } | 613 } |
600 } | 614 } |
720 if (!demux_open_fli(demuxer)) return NULL; | 734 if (!demux_open_fli(demuxer)) return NULL; |
721 break; | 735 break; |
722 } | 736 } |
723 case DEMUXER_TYPE_FILM: { | 737 case DEMUXER_TYPE_FILM: { |
724 if (!demux_open_film(demuxer)) return NULL; | 738 if (!demux_open_film(demuxer)) return NULL; |
739 break; | |
740 } | |
741 case DEMUXER_TYPE_BMP: { | |
742 if (!demux_open_bmp(demuxer)) return NULL; | |
725 break; | 743 break; |
726 } | 744 } |
727 case DEMUXER_TYPE_ROQ: { | 745 case DEMUXER_TYPE_ROQ: { |
728 if (!demux_open_roq(demuxer)) return NULL; | 746 if (!demux_open_roq(demuxer)) return NULL; |
729 break; | 747 break; |