summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-27 02:08:31 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-27 02:08:31 +0000
commit5194d8791e30f968e569b6b452f9b4374298a539 (patch)
tree17046c404b6a50823a0a5992328c33403f405559 /libmpdemux/demuxer.c
parentfc8277500b16781708ab2ac5a2c6cbe25913bb77 (diff)
downloadmpv-5194d8791e30f968e569b6b452f9b4374298a539.tar.bz2
mpv-5194d8791e30f968e569b6b452f9b4374298a539.tar.xz
yuv4mpeg2 (mjpegtools) support by Rik Snel <rsnel@cube.dyndns.org>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3787 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 85da5ffc48..ad1f379086 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -168,6 +168,7 @@ extern int tv_param_on;
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 @@ int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){
#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 @@ int demux_open_fli(demuxer_t* demuxer);
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 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_ASF){
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 @@ switch(file_format){
demux_open_vivo(demuxer);
break;
}
+ case DEMUXER_TYPE_Y4M: {
+ demux_open_y4m(demuxer);
+ break;
+ }
case DEMUXER_TYPE_REAL: {
demux_open_real(demuxer);
break;