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/stream.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/stream.c')
-rw-r--r-- | libmpdemux/stream.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libmpdemux/stream.c b/libmpdemux/stream.c index f9d7b5dce1..86d2ffa3d1 100644 --- a/libmpdemux/stream.c +++ b/libmpdemux/stream.c @@ -35,6 +35,12 @@ int dvd_read_sector(void* d,void* p2); void dvd_seek(void* d,off_t pos); #endif +#ifdef HAVE_CDDA +int read_cdda(stream_t* s); +void seek_cdda(stream_t* s); +void close_cdda(stream_t* s); +#endif + //=================== STREAMER ========================= int stream_fill_buffer(stream_t *s){ @@ -53,6 +59,11 @@ int stream_fill_buffer(stream_t *s){ #else len=read(s->fd,s->buffer,STREAM_BUFFER_SIZE);break; #endif +#ifdef HAVE_CDDA + case STREAMTYPE_CDDA: + len = read_cdda(s); + break; +#endif #ifdef HAVE_VCD case STREAMTYPE_VCD: #ifdef VCD_CACHE @@ -147,6 +158,13 @@ if(newpos==0 || newpos!=s->pos){ #endif break; #endif +#ifdef HAVE_CDDA + case STREAMTYPE_CDDA: { + s->pos=newpos; + seek_cdda(s); + break; + } +#endif #ifdef USE_DVDNAV case STREAMTYPE_DVDNAV: { if (newpos==0) { @@ -260,6 +278,10 @@ void free_stream(stream_t *s){ waitpid(s->cache_pid,NULL,0); } if(s->fd>0) close(s->fd); +#ifdef HAVE_CDDA + if(s->type == STREAMTYPE_CDDA) + close_cdda(s); +#endif if(s->priv) free(s->priv); free(s); } |