Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 12175:da8e39bfe121
nsv (Nullsoft streaming video) demuxer
Patch by Reza Jelveh <reza (dot) jelveh (at) tu-harburg (dot) de>
author | rtognimp |
---|---|
date | Mon, 12 Apr 2004 14:19:12 +0000 |
parents | 77ff303c0eaa |
children | e7c8200ffdc5 |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Sun Apr 11 20:01:42 2004 +0000 +++ b/libmpdemux/demuxer.c Mon Apr 12 14:19:12 2004 +0000 @@ -123,6 +123,7 @@ extern void demux_close_film(demuxer_t* demuxer); extern void demux_close_bmp(demuxer_t* demuxer); extern void demux_close_fli(demuxer_t* demuxer); +extern void demux_close_nsv(demuxer_t* demuxer); extern void demux_close_nuv(demuxer_t* demuxer); extern void demux_close_audio(demuxer_t* demuxer); extern void demux_close_ogg(demuxer_t* demuxer); @@ -175,6 +176,8 @@ demux_close_bmp(demuxer); break; case DEMUXER_TYPE_FLI: demux_close_fli(demuxer); break; + case DEMUXER_TYPE_NSV: + demux_close_nsv(demuxer); break; case DEMUXER_TYPE_NUV: demux_close_nuv(demuxer); break; case DEMUXER_TYPE_MPEG_TY: @@ -299,6 +302,7 @@ int demux_mov_fill_buffer(demuxer_t *demux,demux_stream_t* ds); int demux_vivo_fill_buffer(demuxer_t *demux); int demux_real_fill_buffer(demuxer_t *demuxer); +int demux_nsv_fill_buffer(demuxer_t *demux); int demux_nuv_fill_buffer(demuxer_t *demux); int demux_rtp_fill_buffer(demuxer_t *demux, demux_stream_t* ds); int demux_rawdv_fill_buffer(demuxer_t *demuxer); @@ -344,6 +348,7 @@ case DEMUXER_TYPE_RAWDV: return demux_rawdv_fill_buffer(demux); #endif case DEMUXER_TYPE_REAL: return demux_real_fill_buffer(demux); + case DEMUXER_TYPE_NSV: return demux_nsv_fill_buffer(demux); case DEMUXER_TYPE_NUV: return demux_nuv_fill_buffer(demux); #ifdef USE_TV case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, ds); @@ -598,7 +603,9 @@ extern demuxer_t * demux_open_pva(demuxer_t * demuxer); extern int real_check_file(demuxer_t *demuxer); extern void demux_open_real(demuxer_t *demuxer); +extern int nsv_check_file(demuxer_t *demuxer); extern int nuv_check_file(demuxer_t *demuxer); +extern void demux_open_nsv(demuxer_t *demuxer); extern void demux_open_nuv(demuxer_t *demuxer); extern int demux_audio_open(demuxer_t* demuxer); extern int demux_ogg_open(demuxer_t* demuxer); @@ -715,6 +722,17 @@ demuxer = NULL; } } +//=============== Try to open as NSV file: ================= +if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_NSV){ + demuxer=new_demuxer(stream,DEMUXER_TYPE_NSV,audio_id,video_id,dvdsub_id); + if(file_format==DEMUXER_TYPE_NSV||nsv_check_file(demuxer)){ + mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"Nullsoft Streaming Video"); + file_format=DEMUXER_TYPE_NSV; + } else { + free_demuxer(demuxer); + demuxer = NULL; + } +} //=============== Try to open as NUV file: ================= if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_NUV){ demuxer=new_demuxer(stream,DEMUXER_TYPE_NUV,audio_id,video_id,dvdsub_id); @@ -1192,6 +1210,10 @@ return demuxer; // break; } + case DEMUXER_TYPE_NSV: { + demux_open_nsv(demuxer); + break; + } case DEMUXER_TYPE_NUV: { demux_open_nuv(demuxer); break;