diff -urN libdvdread-20041028/dvdread/bswap.h libdvdread-20060107/dvdread/bswap.h --- libdvdread-20041028/dvdread/bswap.h Wed Jun 18 13:35:04 2003 +++ libdvdread-20060107/dvdread/bswap.h Sat Jan 7 20:53:26 2006 @@ -84,6 +84,18 @@ (((x) & 0x00ff0000) >> 8) | \ (((x) & 0x0000ff00) << 8) | \ (((x) & 0x000000ff) << 24)) + +#ifdef __GNUC__ +#define B2N_64(x) \ + x = ((((x) & 0xff00000000000000LL) >> 56) | \ + (((x) & 0x00ff000000000000LL) >> 40) | \ + (((x) & 0x0000ff0000000000LL) >> 24) | \ + (((x) & 0x000000ff00000000LL) >> 8) | \ + (((x) & 0x00000000ff000000LL) << 8) | \ + (((x) & 0x0000000000ff0000LL) << 24) | \ + (((x) & 0x000000000000ff00LL) << 40) | \ + (((x) & 0x00000000000000ffLL) << 56)) +#else #define B2N_64(x) \ x = ((((x) & 0xff00000000000000) >> 56) | \ (((x) & 0x00ff000000000000) >> 40) | \ @@ -93,6 +105,7 @@ (((x) & 0x0000000000ff0000) << 24) | \ (((x) & 0x000000000000ff00) << 40) | \ (((x) & 0x00000000000000ff) << 56)) +#endif #else diff -urN libdvdread-20041028/dvdread/cmd_print.c libdvdread-20060107/dvdread/cmd_print.c --- libdvdread-20041028/dvdread/cmd_print.c Wed Jun 18 13:00:44 2003 +++ libdvdread-20060107/dvdread/cmd_print.c Sat Jan 7 20:38:08 2006 @@ -19,6 +19,7 @@ #include "config.h" #include +#include #if defined(HAVE_INTTYPES_H) #include diff -urN libdvdread-20041028/dvdread/dvd_input.c libdvdread-20060107/dvdread/dvd_input.c --- libdvdread-20041028/dvdread/dvd_input.c Thu Oct 28 14:09:02 2004 +++ libdvdread-20060107/dvdread/dvd_input.c Sat Jan 7 20:41:16 2006 @@ -27,6 +27,11 @@ #include "dvd_reader.h" #include "dvd_input.h" +#ifndef HAVE_DVDCSS_DVDCSS_H + +/* dlopening libdvdcss */ +#include + /* The function pointers that is the exported interface of this file. */ dvd_input_t (*dvdinput_open) (const char *); int (*dvdinput_close) (dvd_input_t); @@ -35,18 +40,6 @@ int (*dvdinput_read) (dvd_input_t, void *, int, int); char * (*dvdinput_error) (dvd_input_t); -#ifdef HAVE_DVDCSS_DVDCSS_H -/* linking to libdvdcss */ -#include -#define DVDcss_open(a) dvdcss_open((char*)(a)) -#define DVDcss_close dvdcss_close -#define DVDcss_seek dvdcss_seek -#define DVDcss_title dvdcss_title -#define DVDcss_read dvdcss_read -#define DVDcss_error dvdcss_error -#else -/* dlopening libdvdcss */ -#include typedef struct dvdcss_s *dvdcss_handle; static dvdcss_handle (*DVDcss_open) (const char *); static int (*DVDcss_close) (dvdcss_handle); @@ -54,7 +47,6 @@ static int (*DVDcss_title) (dvdcss_handle, int); static int (*DVDcss_read) (dvdcss_handle, void *, int, int); static char * (*DVDcss_error) (dvdcss_handle); -#endif /* The DVDinput handle, add stuff here for new input methods. */ struct dvd_input_s { @@ -260,23 +252,22 @@ return 0; } - +#endif /** * Setup read functions with either libdvdcss or minimal DVD access. */ int dvdinput_setup(void) { - void *dvdcss_library = NULL; - char **dvdcss_version = NULL; - #ifdef HAVE_DVDCSS_DVDCSS_H /* linking to libdvdcss */ - dvdcss_library = &dvdcss_library; /* Give it some value != NULL */ - /* the DVDcss_* functions have been #defined at the top */ - dvdcss_version = &dvdcss_interface_2; - + fprintf(stderr, "libdvdread: Using libdvdcss version %s for DVD access\n", + dvdcss_interface_2); + return 1; #else + void *dvdcss_library = NULL; + char **dvdcss_version = NULL; + /* dlopening libdvdcss */ dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY); @@ -315,7 +306,6 @@ dlclose(dvdcss_library); } } -#endif /* HAVE_DVDCSS_DVDCSS_H */ if(dvdcss_library != NULL) { /* @@ -348,4 +338,5 @@ dvdinput_error = file_error; return 0; } +#endif /* HAVE_DVDCSS_DVDCSS_H */ } diff -urN libdvdread-20041028/dvdread/dvd_input.h libdvdread-20060107/dvdread/dvd_input.h --- libdvdread-20041028/dvdread/dvd_input.h Thu Feb 13 22:06:56 2003 +++ libdvdread-20060107/dvdread/dvd_input.h Sat Jan 7 20:27:42 2006 @@ -27,6 +27,21 @@ #define DVDINPUT_READ_DECRYPT (1 << 0) +#ifdef HAVE_DVDCSS_DVDCSS_H + +/* linking to libdvdcss */ +#include + +#define dvd_input_t dvdcss_t + +#define dvdinput_open(_a) dvdcss_open(_a) +#define dvdinput_close(_a) dvdcss_close(_a) +#define dvdinput_seek(_a, _b) dvdcss_seek(_a,_b,DVDINPUT_NOFLAGS) +#define dvdinput_title(_a, _b) dvdcss_title(_a,_b) +#define dvdinput_read(_a,_b,_c,_d) dvdcss_read(_a,_b,_c,_d) +#define dvdinput_error(_a) dvdcss_error(_a) + +#else typedef struct dvd_input_s *dvd_input_t; /** @@ -38,6 +53,7 @@ extern int (*dvdinput_title) (dvd_input_t, int); extern int (*dvdinput_read) (dvd_input_t, void *, int, int); extern char * (*dvdinput_error) (dvd_input_t); +#endif /** * Setup function accessed by dvd_reader.c. Returns 1 if there is CSS support. diff -urN libdvdread-20041028/dvdread/dvd_reader.c libdvdread-20060107/dvdread/dvd_reader.c --- libdvdread-20041028/dvdread/dvd_reader.c Tue Aug 5 12:44:12 2003 +++ libdvdread-20060107/dvdread/dvd_reader.c Sat Jan 7 20:45:36 2006 @@ -1031,7 +1031,7 @@ bytes_read = DVDReadBytes( dvd_file, buffer, file_size ); if( bytes_read != file_size ) { fprintf( stderr, "libdvdread: DVDDiscId read returned %d bytes" - ", wanted %d\n", bytes_read, file_size ); + ", wanted %d\n", (int)bytes_read, file_size ); DVDCloseFile( dvd_file ); return -1; }