diff options
author | Michael Roitzsch <mroi@users.sourceforge.net> | 2002-11-27 21:19:07 +0000 |
---|---|---|
committer | Michael Roitzsch <mroi@users.sourceforge.net> | 2002-11-27 21:19:07 +0000 |
commit | a0a7c3a8389dd1a21f286befa638d94a90463684 (patch) | |
tree | 7104c6fe93acf9045b78305e918e9ace3eeede75 /src/input/libdvdread/dvd_input.c | |
parent | 4ab0fb4227cbba67eba08cc455ee38756d5e3f6b (diff) | |
download | xine-lib-a0a7c3a8389dd1a21f286befa638d94a90463684.tar.gz xine-lib-a0a7c3a8389dd1a21f286befa638d94a90463684.tar.bz2 |
sync to libdvdread cvs should fix segfault when playing DVDs copied to HD
thanks to Markus Plail for reporting this bug and the fix as well
CVS patchset: 3381
CVS date: 2002/11/27 21:19:07
Diffstat (limited to 'src/input/libdvdread/dvd_input.c')
-rw-r--r-- | src/input/libdvdread/dvd_input.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/input/libdvdread/dvd_input.c b/src/input/libdvdread/dvd_input.c index ccd57dd5a..d1782500f 100644 --- a/src/input/libdvdread/dvd_input.c +++ b/src/input/libdvdread/dvd_input.c @@ -26,6 +26,14 @@ #include "dvd_reader.h" #include "dvd_input.h" +/* The function pointers that is the exported interface of this file. */ +dvd_input_t (*DVDinput_open) (const char *); +int (*DVDinput_close) (dvd_input_t); +int (*DVDinput_seek) (dvd_input_t, int); +int (*DVDinput_title) (dvd_input_t, int); +int (*DVDinput_read) (dvd_input_t, void *, int, int); +char * (*DVDinput_error) (dvd_input_t); + /* For libdvdcss */ typedef struct dvdcss_s *dvdcss_handle; @@ -53,7 +61,7 @@ struct dvd_input_s { static dvd_input_t css_open(const char *target) { dvd_input_t dev; - + /* Allocate the handle structure */ dev = (dvd_input_t) malloc(sizeof(*dev)); if(dev == NULL) { @@ -83,9 +91,10 @@ static char *css_error(dvd_input_t dev) /** * seek into the device. */ -static int css_seek(dvd_input_t dev, int blocks, int flags) +static int css_seek(dvd_input_t dev, int blocks) { - return DVDcss_seek(dev->dvdcss, blocks, flags); + /* DVDINPUT_NOFLAGS should match the DVDCSS_NOFLAGS value. */ + return DVDcss_seek(dev->dvdcss, blocks, DVDINPUT_NOFLAGS); } /** @@ -157,13 +166,13 @@ static dvd_input_t file_open(const char *target) static char *file_error(dvd_input_t dev) { /* use strerror(errno)? */ - return "unknown error"; + return (char *)"unknown error"; } /** * seek into the device. */ -static int file_seek(dvd_input_t dev, int blocks, int flags) +static int file_seek(dvd_input_t dev, int blocks) { off_t pos; |