Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 14276:fa80ed52127b
TwinVQ decoder and demuxer
author | rtognimp |
---|---|
date | Wed, 29 Dec 2004 19:51:56 +0000 |
parents | 815f03b7cee5 |
children | 8769fa370f83 |
comparison
equal
deleted
inserted
replaced
14275:de13fd557440 | 14276:fa80ed52127b |
---|---|
154 extern void demux_close_ts(demuxer_t* demuxer); | 154 extern void demux_close_ts(demuxer_t* demuxer); |
155 extern void demux_close_mkv(demuxer_t* demuxer); | 155 extern void demux_close_mkv(demuxer_t* demuxer); |
156 extern void demux_close_ra(demuxer_t* demuxer); | 156 extern void demux_close_ra(demuxer_t* demuxer); |
157 extern void demux_close_ty(demuxer_t* demuxer); | 157 extern void demux_close_ty(demuxer_t* demuxer); |
158 extern void demux_close_lavf(demuxer_t* demuxer); | 158 extern void demux_close_lavf(demuxer_t* demuxer); |
159 extern void demux_close_vqf(demuxer_t* demuxer); | |
159 | 160 |
160 | 161 |
161 #ifdef USE_TV | 162 #ifdef USE_TV |
162 #include "tv.h" | 163 #include "tv.h" |
163 extern int tv_param_on; | 164 extern int tv_param_on; |
239 demux_close_ts(demuxer); break; | 240 demux_close_ts(demuxer); break; |
240 case DEMUXER_TYPE_MPEG_PS: | 241 case DEMUXER_TYPE_MPEG_PS: |
241 demux_close_mpg(demuxer); break; | 242 demux_close_mpg(demuxer); break; |
242 case DEMUXER_TYPE_REALAUDIO: | 243 case DEMUXER_TYPE_REALAUDIO: |
243 demux_close_ra(demuxer); break; | 244 demux_close_ra(demuxer); break; |
245 case DEMUXER_TYPE_VQF: | |
246 demux_close_vqf(demuxer); break; | |
244 #ifdef USE_LIBAVFORMAT | 247 #ifdef USE_LIBAVFORMAT |
245 case DEMUXER_TYPE_LAVF: | 248 case DEMUXER_TYPE_LAVF: |
246 demux_close_lavf(demuxer); break; | 249 demux_close_lavf(demuxer); break; |
247 #endif | 250 #endif |
248 } | 251 } |
324 int demux_pva_fill_buffer(demuxer_t *demux); | 327 int demux_pva_fill_buffer(demuxer_t *demux); |
325 int demux_xmms_fill_buffer(demuxer_t *demux,demux_stream_t *ds); | 328 int demux_xmms_fill_buffer(demuxer_t *demux,demux_stream_t *ds); |
326 int demux_gif_fill_buffer(demuxer_t *demux); | 329 int demux_gif_fill_buffer(demuxer_t *demux); |
327 int demux_ts_fill_buffer(demuxer_t *demux); | 330 int demux_ts_fill_buffer(demuxer_t *demux); |
328 int demux_ra_fill_buffer(demuxer_t *demux); | 331 int demux_ra_fill_buffer(demuxer_t *demux); |
332 int demux_vqf_fill_buffer(demuxer_t *demux); | |
329 | 333 |
330 extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds); | 334 extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds); |
331 extern int demux_ogg_fill_buffer(demuxer_t *d); | 335 extern int demux_ogg_fill_buffer(demuxer_t *d); |
332 extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); | 336 extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); |
333 extern int demux_rawvideo_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); | 337 extern int demux_rawvideo_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); |
388 #endif | 392 #endif |
389 case DEMUXER_TYPE_LMLM4: return demux_lmlm4_fill_buffer(demux); | 393 case DEMUXER_TYPE_LMLM4: return demux_lmlm4_fill_buffer(demux); |
390 case DEMUXER_TYPE_MPEG_TS: | 394 case DEMUXER_TYPE_MPEG_TS: |
391 return demux_ts_fill_buffer(demux); | 395 return demux_ts_fill_buffer(demux); |
392 case DEMUXER_TYPE_REALAUDIO: return demux_ra_fill_buffer(demux); | 396 case DEMUXER_TYPE_REALAUDIO: return demux_ra_fill_buffer(demux); |
397 case DEMUXER_TYPE_VQF: return demux_vqf_fill_buffer(demux); | |
393 #ifdef USE_LIBAVFORMAT | 398 #ifdef USE_LIBAVFORMAT |
394 case DEMUXER_TYPE_LAVF: return demux_lavf_fill_buffer(demux); | 399 case DEMUXER_TYPE_LAVF: return demux_lavf_fill_buffer(demux); |
395 #endif | 400 #endif |
396 } | 401 } |
397 return 0; | 402 return 0; |
632 extern int ts_check_file(demuxer_t * demuxer); | 637 extern int ts_check_file(demuxer_t * demuxer); |
633 extern int demux_open_ts(demuxer_t *demuxer); | 638 extern int demux_open_ts(demuxer_t *demuxer); |
634 extern int demux_open_mkv(demuxer_t *demuxer); | 639 extern int demux_open_mkv(demuxer_t *demuxer); |
635 extern int ra_check_file(demuxer_t *demuxer); | 640 extern int ra_check_file(demuxer_t *demuxer); |
636 extern int demux_open_ra(demuxer_t* demuxer); | 641 extern int demux_open_ra(demuxer_t* demuxer); |
642 extern int demux_probe_vqf(demuxer_t *demuxer); | |
643 extern int demux_open_vqf(demuxer_t* demuxer); | |
637 #ifdef HAVE_MATROSKA | 644 #ifdef HAVE_MATROSKA |
638 extern int demux_mkv_open(demuxer_t *demuxer); | 645 extern int demux_mkv_open(demuxer_t *demuxer); |
639 #endif | 646 #endif |
640 extern int lavf_check_file(demuxer_t *demuxer); | 647 extern int lavf_check_file(demuxer_t *demuxer); |
641 extern int demux_open_lavf(demuxer_t* demuxer); | 648 extern int demux_open_lavf(demuxer_t* demuxer); |
801 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_REALAUDIO){ | 808 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_REALAUDIO){ |
802 demuxer=new_demuxer(stream,DEMUXER_TYPE_REALAUDIO,audio_id,video_id,dvdsub_id); | 809 demuxer=new_demuxer(stream,DEMUXER_TYPE_REALAUDIO,audio_id,video_id,dvdsub_id); |
803 if(ra_check_file(demuxer)){ | 810 if(ra_check_file(demuxer)){ |
804 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"REALAUDIO"); | 811 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"REALAUDIO"); |
805 file_format=DEMUXER_TYPE_REALAUDIO; | 812 file_format=DEMUXER_TYPE_REALAUDIO; |
813 } else { | |
814 free_demuxer(demuxer); | |
815 demuxer = NULL; | |
816 } | |
817 } | |
818 | |
819 //=============== Try to open as VQF file: ================= | |
820 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_VQF){ | |
821 demuxer=new_demuxer(stream,DEMUXER_TYPE_VQF,audio_id,video_id,dvdsub_id); | |
822 if(demux_probe_vqf(demuxer)){ | |
823 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"VQF"); | |
824 file_format=DEMUXER_TYPE_VQF; | |
806 } else { | 825 } else { |
807 free_demuxer(demuxer); | 826 free_demuxer(demuxer); |
808 demuxer = NULL; | 827 demuxer = NULL; |
809 } | 828 } |
810 } | 829 } |
1353 } | 1372 } |
1354 case DEMUXER_TYPE_REALAUDIO: { | 1373 case DEMUXER_TYPE_REALAUDIO: { |
1355 if (!demux_open_ra(demuxer)) return NULL; | 1374 if (!demux_open_ra(demuxer)) return NULL; |
1356 break; | 1375 break; |
1357 } | 1376 } |
1377 case DEMUXER_TYPE_VQF: { | |
1378 if (!demux_open_vqf(demuxer)) return NULL; | |
1379 break; | |
1380 } | |
1358 #ifdef USE_LIBAVFORMAT | 1381 #ifdef USE_LIBAVFORMAT |
1359 case DEMUXER_TYPE_LAVF: { | 1382 case DEMUXER_TYPE_LAVF: { |
1360 if (!demux_open_lavf(demuxer)) return NULL; | 1383 if (!demux_open_lavf(demuxer)) return NULL; |
1361 break; | 1384 break; |
1362 } | 1385 } |
1472 extern void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); | 1495 extern void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); |
1473 extern void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); | 1496 extern void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); |
1474 extern void demux_rawvideo_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); | 1497 extern void demux_rawvideo_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); |
1475 extern void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); | 1498 extern void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); |
1476 extern void demux_mkv_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); | 1499 extern void demux_mkv_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); |
1500 extern void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags); | |
1477 | 1501 |
1478 int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ | 1502 int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ |
1479 demux_stream_t *d_audio=demuxer->audio; | 1503 demux_stream_t *d_audio=demuxer->audio; |
1480 demux_stream_t *d_video=demuxer->video; | 1504 demux_stream_t *d_video=demuxer->video; |
1481 sh_audio_t *sh_audio=d_audio->sh; | 1505 sh_audio_t *sh_audio=d_audio->sh; |
1574 demux_seek_ts(demuxer,rel_seek_secs,flags); break; | 1598 demux_seek_ts(demuxer,rel_seek_secs,flags); break; |
1575 #ifdef USE_LIBAVFORMAT | 1599 #ifdef USE_LIBAVFORMAT |
1576 case DEMUXER_TYPE_LAVF: | 1600 case DEMUXER_TYPE_LAVF: |
1577 demux_seek_lavf(demuxer,rel_seek_secs,flags); break; | 1601 demux_seek_lavf(demuxer,rel_seek_secs,flags); break; |
1578 #endif | 1602 #endif |
1603 case DEMUXER_TYPE_VQF: | |
1604 demux_seek_vqf(demuxer,rel_seek_secs,flags); break; | |
1579 | 1605 |
1580 } // switch(demuxer->file_format) | 1606 } // switch(demuxer->file_format) |
1581 | 1607 |
1582 return 1; | 1608 return 1; |
1583 } | 1609 } |