summaryrefslogtreecommitdiffstats
path: root/libmpdemux/stream.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-04 20:11:06 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-04 20:11:06 +0000
commit43b7a734ff99915eecd1587378cecaef267a0e66 (patch)
tree692ddf2b81adde331c45cd89decf85f077ea0542 /libmpdemux/stream.c
parentb768679cb9d6e36ee57772b8b67e79a36a3d6dd9 (diff)
downloadmpv-43b7a734ff99915eecd1587378cecaef267a0e66.tar.bz2
mpv-43b7a734ff99915eecd1587378cecaef267a0e66.tar.xz
cdrwin-style bin/cue VCD image support (-vcd <track> -cuefile file.cue)
patch by Robert Penz <robert.penz@outertech.com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8783 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/stream.c')
-rw-r--r--libmpdemux/stream.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libmpdemux/stream.c b/libmpdemux/stream.c
index bc999b553f..481066c173 100644
--- a/libmpdemux/stream.c
+++ b/libmpdemux/stream.c
@@ -32,6 +32,8 @@ extern int verbose; // defined in mplayer.c
#endif
+#include "vcd_read_bincue.h"
+
#ifdef USE_DVDREAD
int dvd_read_sector(dvd_priv_t *d,unsigned char* data);
void dvd_seek(dvd_priv_t *d,int pos);
@@ -80,6 +82,8 @@ int stream_fill_buffer(stream_t *s){
case STREAMTYPE_VCD:
len=vcd_read(s->fd,s->buffer);break;
#endif
+ case STREAMTYPE_VCDBINCUE:
+ len=cue_vcd_read(s->buffer);break;
#ifdef USE_DVDNAV
case STREAMTYPE_DVDNAV: {
dvdnav_stream_read((dvdnav_priv_t*)s->priv,s->buffer,&len);
@@ -128,6 +132,8 @@ off_t newpos=0;
#endif
case STREAMTYPE_VCD:
newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break;
+ case STREAMTYPE_VCDBINCUE:
+ newpos=(pos/VCD_SECTOR_DATA)*VCD_SECTOR_DATA;break;
case STREAMTYPE_DVD:
newpos=pos/2048; newpos*=2048; break;
#ifdef HAVE_CDDA
@@ -166,6 +172,10 @@ if(newpos==0 || newpos!=s->pos){
vcd_set_msf(s->pos/VCD_SECTOR_DATA);
break;
#endif
+ case STREAMTYPE_VCDBINCUE:
+ s->pos=newpos; // real seek
+ cue_set_msf(s->pos/VCD_SECTOR_DATA);
+ break;
#ifdef HAVE_CDDA
case STREAMTYPE_CDDA: {
s->pos=newpos;