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;