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;