summaryrefslogtreecommitdiffstats
path: root/contrib/libdvdread
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libdvdread')
-rw-r--r--contrib/libdvdread/P02-mingw-ssize_t.patch26
-rw-r--r--contrib/libdvdread/P03-mingw-disable-dlopen.patch134
-rw-r--r--contrib/libdvdread/P04-mingw-endian-macros.patch29
-rw-r--r--contrib/libdvdread/P05-mingw-large-file.patch28
4 files changed, 217 insertions, 0 deletions
diff --git a/contrib/libdvdread/P02-mingw-ssize_t.patch b/contrib/libdvdread/P02-mingw-ssize_t.patch
new file mode 100644
index 000000000..a4dc5eda7
--- /dev/null
+++ b/contrib/libdvdread/P02-mingw-ssize_t.patch
@@ -0,0 +1,26 @@
+diff -Naur libdvdread.orig/configure libdvdread/configure
+--- libdvdread.orig/configure 2006-10-06 04:14:24.000000000 -0400
++++ libdvdread/configure 2009-03-10 17:45:06.000000000 -0400
+@@ -3550,9 +3550,6 @@
+ _ACEOF
+
+ ;;
+- x*mingw32* | x*cygwin*)
+- CFLAGS="${CFLAGS} -Dssize_t=long"
+- ;;
+ x*)
+ ;;
+ esac
+diff -Naur libdvdread.orig/configure.in libdvdread/configure.in
+--- libdvdread.orig/configure.in 2006-10-06 04:12:31.000000000 -0400
++++ libdvdread/configure.in 2009-03-10 17:45:06.000000000 -0400
+@@ -15,9 +15,6 @@
+ CFLAGS="${CFLAGS} -no-cpp-precomp"
+ AC_DEFINE(__DARWIN__, 1, Have a Mac OS X system)
+ ;;
+- x*mingw32* | x*cygwin*)
+- CFLAGS="${CFLAGS} -Dssize_t=long"
+- ;;
+ x*)
+ ;;
+ esac
diff --git a/contrib/libdvdread/P03-mingw-disable-dlopen.patch b/contrib/libdvdread/P03-mingw-disable-dlopen.patch
new file mode 100644
index 000000000..515526289
--- /dev/null
+++ b/contrib/libdvdread/P03-mingw-disable-dlopen.patch
@@ -0,0 +1,134 @@
+diff -Naur libdvdread.orig/configure libdvdread/configure
+--- libdvdread.orig/configure 2006-10-06 04:14:24.000000000 -0400
++++ libdvdread/configure 2009-03-10 17:48:56.000000000 -0400
+@@ -18889,11 +18889,6 @@
+ echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+ if test $ac_cv_lib_dl_dlopen = yes; then
+ DL_LIBS=-ldl
+-else
+- { { echo "$as_me:$LINENO: error: You need libdl (dlopen)" >&5
+-echo "$as_me: error: You need libdl (dlopen)" >&2;}
+- { (exit 1); exit 1; }; }
+-
+ fi
+
+
+diff -Naur libdvdread.orig/dvdread/dvd_input.c libdvdread/dvdread/dvd_input.c
+--- libdvdread.orig/dvdread/dvd_input.c 2005-09-19 09:43:08.000000000 -0400
++++ libdvdread/dvdread/dvd_input.c 2009-03-10 18:01:43.000000000 -0400
+@@ -44,18 +44,6 @@
+
+ char * (*dvdinput_error) (dvd_input_t);
+
+-#ifdef HAVE_DVDCSS_DVDCSS_H
+-/* linking to libdvdcss */
+-#include <dvdcss/dvdcss.h>
+-#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 <dlfcn.h>
+ typedef struct dvdcss_s *dvdcss_handle;
+ static dvdcss_handle (*DVDcss_open) (const char *);
+ static int (*DVDcss_close) (dvdcss_handle);
+@@ -63,7 +51,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 {
+@@ -290,17 +277,7 @@
+ */
+ void dvdinput_free(void)
+ {
+-#ifdef HAVE_DVDCSS_DVDCSS_H
+- /* linked statically, nothing to free */
+ return;
+-#else
+- if(dvdcss_library) {
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- }
+- dvdcss_library_init = 0;
+- return;
+-#endif
+ }
+
+
+@@ -324,58 +301,6 @@
+
+ verbose = get_verbose();
+
+-#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;
+-
+-#else
+-
+- dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
+-
+- if(dvdcss_library != NULL) {
+-#if defined(__OpenBSD__) && !defined(__ELF__)
+-#define U_S "_"
+-#else
+-#define U_S
+-#endif
+- DVDcss_open = (dvdcss_handle (*)(const char*))
+- dlsym(dvdcss_library, U_S "dvdcss_open");
+- DVDcss_close = (int (*)(dvdcss_handle))
+- dlsym(dvdcss_library, U_S "dvdcss_close");
+- DVDcss_title = (int (*)(dvdcss_handle, int))
+- dlsym(dvdcss_library, U_S "dvdcss_title");
+- DVDcss_seek = (int (*)(dvdcss_handle, int, int))
+- dlsym(dvdcss_library, U_S "dvdcss_seek");
+- DVDcss_read = (int (*)(dvdcss_handle, void*, int, int))
+- dlsym(dvdcss_library, U_S "dvdcss_read");
+- DVDcss_error = (char* (*)(dvdcss_handle))
+- dlsym(dvdcss_library, U_S "dvdcss_error");
+-
+- dvdcss_version = (char **)dlsym(dvdcss_library, U_S "dvdcss_interface_2");
+-
+- if(dlsym(dvdcss_library, U_S "dvdcss_crack")) {
+- if(verbose >= 0) {
+- fprintf(stderr,
+- "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n"
+- "libdvdread: You should get the latest version from "
+- "http://www.videolan.org/\n" );
+- }
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- } else if(!DVDcss_open || !DVDcss_close || !DVDcss_title || !DVDcss_seek
+- || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
+- if(verbose >= 0) {
+- fprintf(stderr, "libdvdread: Missing symbols in libdvdcss.so.2, "
+- "this shouldn't happen !\n");
+- }
+- dlclose(dvdcss_library);
+- dvdcss_library = NULL;
+- }
+- }
+-#endif /* HAVE_DVDCSS_DVDCSS_H */
+-
+ dvdcss_library_init = 1;
+
+ if(dvdcss_library) {
+diff -Naur libdvdread.orig/dvdread/dvd_reader.c libdvdread/dvdread/dvd_reader.c
+--- libdvdread.orig/dvdread/dvd_reader.c 2006-10-06 03:58:03.000000000 -0400
++++ libdvdread/dvdread/dvd_reader.c 2009-03-10 17:51:22.000000000 -0400
+@@ -183,7 +183,7 @@
+ dev->align = align;
+ }
+
+-#ifdef WIN32 /* replacement gettimeofday implementation */
++#if defined(WIN32) && !defined(__MINGW32__) /* replacement gettimeofday implementation */
+ #include <sys/timeb.h>
+ static int gettimeofday( struct timeval *tv, void *tz )
+ {
diff --git a/contrib/libdvdread/P04-mingw-endian-macros.patch b/contrib/libdvdread/P04-mingw-endian-macros.patch
new file mode 100644
index 000000000..872b8518d
--- /dev/null
+++ b/contrib/libdvdread/P04-mingw-endian-macros.patch
@@ -0,0 +1,29 @@
+diff -Naur libdvdread.orig/dvdread/bswap.h libdvdread/dvdread/bswap.h
+--- libdvdread.orig/dvdread/bswap.h 2006-06-06 16:03:37.000000000 -0400
++++ libdvdread/dvdread/bswap.h 2009-03-13 21:05:23.000000000 -0400
+@@ -83,6 +83,25 @@
+ #define B2N_32(x) x = OSSwapBigToHostConstInt32(x)
+ #define B2N_64(x) x = OSSwapBigToHostConstInt64(x)
+
++#elif defined(__MINGW32__)
++#define B2N_16(x) \
++ x = ((((x) & 0xff00) >> 8) | \
++ (((x) & 0x00ff) << 8))
++#define B2N_32(x) \
++ x = ((((x) & 0xff000000) >> 24) | \
++ (((x) & 0x00ff0000) >> 8) | \
++ (((x) & 0x0000ff00) << 8) | \
++ (((x) & 0x000000ff) << 24))
++#define B2N_64(x) \
++ x = ((((x) & 0xff00000000000000ULL) >> 56) | \
++ (((x) & 0x00ff000000000000ULL) >> 40) | \
++ (((x) & 0x0000ff0000000000ULL) >> 24) | \
++ (((x) & 0x000000ff00000000ULL) >> 8) | \
++ (((x) & 0x00000000ff000000ULL) << 8) | \
++ (((x) & 0x0000000000ff0000ULL) << 24) | \
++ (((x) & 0x000000000000ff00ULL) << 40) | \
++ (((x) & 0x00000000000000ffULL) << 56))
++
+ #else
+ #if defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX)
+ /* These systems don't have swap macros */
diff --git a/contrib/libdvdread/P05-mingw-large-file.patch b/contrib/libdvdread/P05-mingw-large-file.patch
new file mode 100644
index 000000000..7ed9b6540
--- /dev/null
+++ b/contrib/libdvdread/P05-mingw-large-file.patch
@@ -0,0 +1,28 @@
+--- libdvdread.orig/dvdread/dvd_input.h 2005-09-06 12:23:00.000000000 -0700
++++ libdvdread/dvdread/dvd_input.h 2009-03-25 15:01:39.000000000 -0700
+@@ -28,6 +28,24 @@
+
+ #define DVDINPUT_READ_DECRYPT (1 << 0)
+
++#if defined( __MINGW32__ )
++# undef lseek
++# define lseek _lseeki64
++# undef fseeko
++# define fseeko fseeko64
++# undef ftello
++# define ftello ftello64
++# define flockfile(...)
++# define funlockfile(...)
++# define getc_unlocked getc
++# undef off_t
++# define off_t off64_t
++# undef stat
++# define stat _stati64
++# define fstat _fstati64
++# define wstat _wstati64
++#endif
++
+ typedef struct dvd_input_s *dvd_input_t;
+
+ /**
+