Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 6384:f0b933918a22
Support for playing audio cds using cdparanoia. Include a raw audio
demuxer wich can be used for other purpose.
author | albeu |
---|---|
date | Tue, 11 Jun 2002 14:29:51 +0000 |
parents | f03fe2e84efd |
children | 7bc4c6ba9485 |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Mon Jun 10 18:43:42 2002 +0000 +++ b/libmpdemux/demuxer.c Tue Jun 11 14:29:51 2002 +0000 @@ -260,6 +260,7 @@ int demux_audio_fill_buffer(demux_stream_t *ds); 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); int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){ // Note: parameter 'ds' can be NULL! @@ -287,6 +288,7 @@ case DEMUXER_TYPE_AUDIO: return demux_audio_fill_buffer(ds); case DEMUXER_TYPE_DEMUXERS: return demux_demuxers_fill_buffer(demux,ds); case DEMUXER_TYPE_OGG: return demux_ogg_fill_buffer(demux); + case DEMUXER_TYPE_RAWAUDIO: return demux_rawaudio_fill_buffer(demux,ds); } return 0; } @@ -501,9 +503,12 @@ extern void demux_open_nuv(demuxer_t *demuxer); 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 demuxer_t* init_avi_with_ogg(demuxer_t* demuxer); +extern int use_rawaudio; + static demuxer_t* demux_open_stream(stream_t *stream,int file_format,int audio_id,int video_id,int dvdsub_id){ @@ -525,6 +530,11 @@ file_format=DEMUXER_TYPE_MF; } +if(stream->type == STREAMTYPE_CDDA || use_rawaudio) { + demuxer = new_demuxer(stream,DEMUXER_TYPE_RAWAUDIO,audio_id,video_id,dvdsub_id); + file_format = DEMUXER_TYPE_RAWAUDIO; +} + #ifdef USE_TV //=============== Try to open as TV-input: ================= if((tv_param_on == 1) && @@ -789,6 +799,10 @@ demuxer->file_format=file_format; switch(file_format){ + case DEMUXER_TYPE_RAWAUDIO: { + demux_rawaudio_open(demuxer); + break; + } case DEMUXER_TYPE_MF: { if (!demux_open_mf(demuxer)) return NULL; break; @@ -999,6 +1013,7 @@ #ifdef HAVE_OGGVORBIS extern void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); #endif +extern void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ demux_stream_t *d_audio=demuxer->audio; @@ -1071,6 +1086,8 @@ case DEMUXER_TYPE_OGG: demux_ogg_seek(demuxer,rel_seek_secs,flags); break; #endif + case DEMUXER_TYPE_RAWAUDIO: + demux_rawaudio_seek(demuxer,rel_seek_secs,flags); break; } // switch(demuxer->file_format)