diff options
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); } |