diff options
author | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-11 14:29:51 +0000 |
---|---|---|
committer | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-11 14:29:51 +0000 |
commit | 3be2d75562f99abc2a10098eb63accd0bbacfd5c (patch) | |
tree | e292390d52d5938b2585702c5be6b1799dec1b5a /libmpdemux/demuxer.c | |
parent | 3339519233aebefabc79610bc89e9edf390ceec3 (diff) | |
download | mpv-3be2d75562f99abc2a10098eb63accd0bbacfd5c.tar.bz2 mpv-3be2d75562f99abc2a10098eb63accd0bbacfd5c.tar.xz |
Support for playing audio cds using cdparanoia. Include a raw audio
demuxer wich can be used for other purpose.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6385 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r-- | libmpdemux/demuxer.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 78d33ac382..dbba020e3c 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -260,6 +260,7 @@ int demux_y4m_fill_buffer(demuxer_t *demux); 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 @@ int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){ 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 int nuv_check_file(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); +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 @@ if ( mf_support ) 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 @@ d_video=demuxer->video; 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 @@ extern void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags #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 @@ switch(demuxer->file_format){ 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) |