Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 3777:026ccd3dc489
added real demuxer
author | alex |
---|---|
date | Wed, 26 Dec 2001 22:57:51 +0000 |
parents | f9d9f6ab79f4 |
children | 7ebf504c92d6 |
comparison
equal
deleted
inserted
replaced
3776:a90d45d7bde6 | 3777:026ccd3dc489 |
---|---|
157 int demux_avi_fill_buffer_ni(demuxer_t *demux,demux_stream_t *ds); | 157 int demux_avi_fill_buffer_ni(demuxer_t *demux,demux_stream_t *ds); |
158 int demux_avi_fill_buffer_nini(demuxer_t *demux,demux_stream_t *ds); | 158 int demux_avi_fill_buffer_nini(demuxer_t *demux,demux_stream_t *ds); |
159 int demux_asf_fill_buffer(demuxer_t *demux); | 159 int demux_asf_fill_buffer(demuxer_t *demux); |
160 int demux_mov_fill_buffer(demuxer_t *demux,demux_stream_t* ds); | 160 int demux_mov_fill_buffer(demuxer_t *demux,demux_stream_t* ds); |
161 int demux_vivo_fill_buffer(demuxer_t *demux); | 161 int demux_vivo_fill_buffer(demuxer_t *demux); |
162 int demux_real_fill_buffer(demuxer_t *demux); | |
162 #ifdef USE_TV | 163 #ifdef USE_TV |
163 #include "tv.h" | 164 #include "tv.h" |
164 extern tvi_handle_t *tv_handler; | 165 extern tvi_handle_t *tv_handler; |
165 extern int tv_param_on; | 166 extern int tv_param_on; |
166 | 167 |
179 case DEMUXER_TYPE_AVI_NI: return demux_avi_fill_buffer_ni(demux,ds); | 180 case DEMUXER_TYPE_AVI_NI: return demux_avi_fill_buffer_ni(demux,ds); |
180 case DEMUXER_TYPE_AVI_NINI: return demux_avi_fill_buffer_nini(demux,ds); | 181 case DEMUXER_TYPE_AVI_NINI: return demux_avi_fill_buffer_nini(demux,ds); |
181 case DEMUXER_TYPE_ASF: return demux_asf_fill_buffer(demux); | 182 case DEMUXER_TYPE_ASF: return demux_asf_fill_buffer(demux); |
182 case DEMUXER_TYPE_MOV: return demux_mov_fill_buffer(demux,ds); | 183 case DEMUXER_TYPE_MOV: return demux_mov_fill_buffer(demux,ds); |
183 case DEMUXER_TYPE_VIVO: return demux_vivo_fill_buffer(demux); | 184 case DEMUXER_TYPE_VIVO: return demux_vivo_fill_buffer(demux); |
185 case DEMUXER_TYPE_REAL: return demux_real_fill_buffer(demux); | |
184 #ifdef USE_TV | 186 #ifdef USE_TV |
185 case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, tv_handler); | 187 case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, tv_handler); |
186 #endif | 188 #endif |
187 } | 189 } |
188 return 0; | 190 return 0; |
360 int demux_open_fli(demuxer_t* demuxer); | 362 int demux_open_fli(demuxer_t* demuxer); |
361 | 363 |
362 extern int vivo_check_file(demuxer_t *demuxer); | 364 extern int vivo_check_file(demuxer_t *demuxer); |
363 extern void demux_open_vivo(demuxer_t *demuxer); | 365 extern void demux_open_vivo(demuxer_t *demuxer); |
364 | 366 |
367 extern int real_check_file(demuxer_t *demuxer); | |
368 extern void demux_open_real(demuxer_t *demuxer); | |
369 | |
365 demuxer_t* demux_open(stream_t *stream,int file_format,int audio_id,int video_id,int dvdsub_id){ | 370 demuxer_t* demux_open(stream_t *stream,int file_format,int audio_id,int video_id,int dvdsub_id){ |
366 | 371 |
367 //int file_format=(*file_format_ptr); | 372 //int file_format=(*file_format_ptr); |
368 | 373 |
369 demuxer_t *demuxer=NULL; | 374 demuxer_t *demuxer=NULL; |
421 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_VIVO){ | 426 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_VIVO){ |
422 demuxer=new_demuxer(stream,DEMUXER_TYPE_VIVO,audio_id,video_id,dvdsub_id); | 427 demuxer=new_demuxer(stream,DEMUXER_TYPE_VIVO,audio_id,video_id,dvdsub_id); |
423 if(vivo_check_file(demuxer)){ | 428 if(vivo_check_file(demuxer)){ |
424 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected VIVO file format!\n"); | 429 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected VIVO file format!\n"); |
425 file_format=DEMUXER_TYPE_VIVO; | 430 file_format=DEMUXER_TYPE_VIVO; |
431 } | |
432 } | |
433 //=============== Try to open as REAL file: ================= | |
434 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_REAL){ | |
435 demuxer=new_demuxer(stream,DEMUXER_TYPE_REAL,audio_id,video_id,dvdsub_id); | |
436 if(real_check_file(demuxer)){ | |
437 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected REAL file format!\n"); | |
438 file_format=DEMUXER_TYPE_REAL; | |
426 } | 439 } |
427 } | 440 } |
428 //=============== Try to open as FLI file: ================= | 441 //=============== Try to open as FLI file: ================= |
429 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_FLI){ | 442 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_FLI){ |
430 demuxer=new_demuxer(stream,DEMUXER_TYPE_FLI,audio_id,video_id,dvdsub_id); | 443 demuxer=new_demuxer(stream,DEMUXER_TYPE_FLI,audio_id,video_id,dvdsub_id); |
528 } | 541 } |
529 case DEMUXER_TYPE_VIVO: { | 542 case DEMUXER_TYPE_VIVO: { |
530 demux_open_vivo(demuxer); | 543 demux_open_vivo(demuxer); |
531 break; | 544 break; |
532 } | 545 } |
546 case DEMUXER_TYPE_REAL: { | |
547 demux_open_real(demuxer); | |
548 break; | |
549 } | |
533 case DEMUXER_TYPE_ASF: { | 550 case DEMUXER_TYPE_ASF: { |
534 //---- ASF header: | 551 //---- ASF header: |
535 read_asf_header(demuxer); | 552 read_asf_header(demuxer); |
536 stream_reset(demuxer->stream); | 553 stream_reset(demuxer->stream); |
537 stream_seek(demuxer->stream,demuxer->movi_start); | 554 stream_seek(demuxer->stream,demuxer->movi_start); |