Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 3786:7ebf504c92d6
yuv4mpeg2 (mjpegtools) support by Rik Snel <rsnel@cube.dyndns.org>
author | arpi |
---|---|
date | Thu, 27 Dec 2001 02:08:31 +0000 |
parents | 026ccd3dc489 |
children | 3cea69dda1b3 |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Thu Dec 27 02:02:03 2001 +0000 +++ b/libmpdemux/demuxer.c Thu Dec 27 02:08:31 2001 +0000 @@ -168,6 +168,7 @@ extern int demux_tv_fill_buffer(demuxer_t *demux, tvi_handle_t *tvh); extern int demux_open_tv(demuxer_t *demuxer, tvi_handle_t *tvh); #endif +int demux_y4m_fill_buffer(demuxer_t *demux); int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){ // Note: parameter 'ds' can be NULL! @@ -186,6 +187,7 @@ #ifdef USE_TV case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, tv_handler); #endif + case DEMUXER_TYPE_Y4M: return demux_y4m_fill_buffer(demux); } return 0; } @@ -363,6 +365,8 @@ extern int vivo_check_file(demuxer_t *demuxer); extern void demux_open_vivo(demuxer_t *demuxer); +extern int y4m_check_file(demuxer_t *demuxer); +extern void demux_open_y4m(demuxer_t *demuxer); extern int real_check_file(demuxer_t *demuxer); extern void demux_open_real(demuxer_t *demuxer); @@ -414,6 +418,14 @@ file_format=DEMUXER_TYPE_ASF; } } +//=============== Try to open as Y4M file: ================= +if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_Y4M){ + demuxer=new_demuxer(stream,DEMUXER_TYPE_Y4M,audio_id,video_id,dvdsub_id); + if(y4m_check_file(demuxer)){ + mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected YUV4MPEG2 file format!\n"); + file_format=DEMUXER_TYPE_Y4M; + } +} //=============== Try to open as MOV file: ================= if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MOV){ demuxer=new_demuxer(stream,DEMUXER_TYPE_MOV,audio_id,video_id,dvdsub_id); @@ -543,6 +555,10 @@ demux_open_vivo(demuxer); break; } + case DEMUXER_TYPE_Y4M: { + demux_open_y4m(demuxer); + break; + } case DEMUXER_TYPE_REAL: { demux_open_real(demuxer); break;