Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 7382:89cbab549659
added smjpeg demuxer only for nexus' request
author | alex |
---|---|
date | Fri, 13 Sep 2002 18:58:14 +0000 |
parents | b2445802532c |
children | 7d83ac879f51 |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Fri Sep 13 11:54:59 2002 +0000 +++ b/libmpdemux/demuxer.c Fri Sep 13 18:58:14 2002 +0000 @@ -155,6 +155,7 @@ extern void demux_close_avi(demuxer_t *demuxer); extern void demux_close_rawdv(demuxer_t* demuxer); extern void demux_close_pva(demuxer_t* demuxer); +extern void demux_close_smjpeg(demuxer_t* demuxer); #ifdef USE_TV #include "tv.h" @@ -207,6 +208,8 @@ case DEMUXER_TYPE_RTP: demux_close_rtp(demuxer); break; #endif + case DEMUXER_TYPE_SMJPEG: + demux_close_smjpeg(demuxer); return; case DEMUXER_TYPE_DEMUXERS: demux_close_demuxers(demuxer); return; case DEMUXER_TYPE_AVI: @@ -292,6 +295,7 @@ extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds); extern int demux_ogg_fill_buffer(demuxer_t *d); extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); +extern int demux_smjpeg_fill_buffer(demuxer_t* demux); int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){ // Note: parameter 'ds' can be NULL! @@ -327,6 +331,7 @@ #ifdef STREAMING_LIVE_DOT_COM case DEMUXER_TYPE_RTP: return demux_rtp_fill_buffer(demux, ds); #endif + case DEMUXER_TYPE_SMJPEG: return demux_smjpeg_fill_buffer(demux); } return 0; } @@ -546,6 +551,8 @@ extern int demux_audio_open(demuxer_t* demuxer); extern int demux_ogg_open(demuxer_t* demuxer); extern int demux_rawaudio_open(demuxer_t* demuxer); +extern int smjpeg_check_file(demuxer_t *demuxer); +extern int demux_open_smjpeg(demuxer_t* demuxer); extern demuxer_t* init_avi_with_ogg(demuxer_t* demuxer); @@ -734,6 +741,17 @@ demuxer = NULL; } } +//=============== Try to open as SMJPEG file: ================= +if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_SMJPEG){ + demuxer=new_demuxer(stream,DEMUXER_TYPE_SMJPEG,audio_id,video_id,dvdsub_id); + if(smjpeg_check_file(demuxer)){ + mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected SMJPEG file!\n"); + file_format=DEMUXER_TYPE_SMJPEG; + } else { + free_demuxer(demuxer); + demuxer = NULL; + } +} //=============== Try to open as Ogg file: ================= if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_OGG){ demuxer=new_demuxer(stream,DEMUXER_TYPE_OGG,audio_id,video_id,dvdsub_id); @@ -899,6 +917,10 @@ if (!demux_open_roq(demuxer)) return NULL; break; } + case DEMUXER_TYPE_SMJPEG: { + if (!demux_open_smjpeg(demuxer)) return NULL; + break; + } case DEMUXER_TYPE_MOV: { if(!mov_read_header(demuxer)) return NULL; // sh_video=d_video->sh;if(sh_video) sh_video->ds=d_video;