Mercurial > mplayer.hg
comparison libmpdemux/stream.c @ 8782:6af7a6595cc9
cdrwin-style bin/cue VCD image support (-vcd <track> -cuefile file.cue)
patch by Robert Penz <robert.penz@outertech.com>
author | arpi |
---|---|
date | Sat, 04 Jan 2003 20:11:06 +0000 |
parents | fe542f0201ea |
children | f6456b177fdc |
comparison
equal
deleted
inserted
replaced
8781:8e3e71a8c414 | 8782:6af7a6595cc9 |
---|---|
29 #else | 29 #else |
30 #include "vcd_read.h" | 30 #include "vcd_read.h" |
31 #endif | 31 #endif |
32 | 32 |
33 #endif | 33 #endif |
34 | |
35 #include "vcd_read_bincue.h" | |
34 | 36 |
35 #ifdef USE_DVDREAD | 37 #ifdef USE_DVDREAD |
36 int dvd_read_sector(dvd_priv_t *d,unsigned char* data); | 38 int dvd_read_sector(dvd_priv_t *d,unsigned char* data); |
37 void dvd_seek(dvd_priv_t *d,int pos); | 39 void dvd_seek(dvd_priv_t *d,int pos); |
38 void dvd_close(dvd_priv_t *d); | 40 void dvd_close(dvd_priv_t *d); |
78 #endif | 80 #endif |
79 #ifdef HAVE_VCD | 81 #ifdef HAVE_VCD |
80 case STREAMTYPE_VCD: | 82 case STREAMTYPE_VCD: |
81 len=vcd_read(s->fd,s->buffer);break; | 83 len=vcd_read(s->fd,s->buffer);break; |
82 #endif | 84 #endif |
85 case STREAMTYPE_VCDBINCUE: | |
86 len=cue_vcd_read(s->buffer);break; | |
83 #ifdef USE_DVDNAV | 87 #ifdef USE_DVDNAV |
84 case STREAMTYPE_DVDNAV: { | 88 case STREAMTYPE_DVDNAV: { |
85 dvdnav_stream_read((dvdnav_priv_t*)s->priv,s->buffer,&len); | 89 dvdnav_stream_read((dvdnav_priv_t*)s->priv,s->buffer,&len); |
86 if (len==0) return 0; // this was an event, so repeat the read | 90 if (len==0) return 0; // this was an event, so repeat the read |
87 break; | 91 break; |
126 #else | 130 #else |
127 newpos=pos&(~(STREAM_BUFFER_SIZE-1));break; | 131 newpos=pos&(~(STREAM_BUFFER_SIZE-1));break; |
128 #endif | 132 #endif |
129 case STREAMTYPE_VCD: | 133 case STREAMTYPE_VCD: |
130 newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break; | 134 newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break; |
135 case STREAMTYPE_VCDBINCUE: | |
136 newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break; | |
131 case STREAMTYPE_DVD: | 137 case STREAMTYPE_DVD: |
132 newpos=pos/2048; newpos*=2048; break; | 138 newpos=pos/2048; newpos*=2048; break; |
133 #ifdef HAVE_CDDA | 139 #ifdef HAVE_CDDA |
134 case STREAMTYPE_CDDA: | 140 case STREAMTYPE_CDDA: |
135 newpos=(pos/VCD_SECTOR_SIZE)*VCD_SECTOR_SIZE;break; | 141 newpos=(pos/VCD_SECTOR_SIZE)*VCD_SECTOR_SIZE;break; |
164 case STREAMTYPE_VCD: | 170 case STREAMTYPE_VCD: |
165 s->pos=newpos; // real seek | 171 s->pos=newpos; // real seek |
166 vcd_set_msf(s->pos/VCD_SECTOR_DATA); | 172 vcd_set_msf(s->pos/VCD_SECTOR_DATA); |
167 break; | 173 break; |
168 #endif | 174 #endif |
175 case STREAMTYPE_VCDBINCUE: | |
176 s->pos=newpos; // real seek | |
177 cue_set_msf(s->pos/VCD_SECTOR_DATA); | |
178 break; | |
169 #ifdef HAVE_CDDA | 179 #ifdef HAVE_CDDA |
170 case STREAMTYPE_CDDA: { | 180 case STREAMTYPE_CDDA: { |
171 s->pos=newpos; | 181 s->pos=newpos; |
172 seek_cdda(s); | 182 seek_cdda(s); |
173 break; | 183 break; |