]> git.sesse.net Git - vlc/blobdiff - extras/contrib/src/Patches/libdvdnav.patch
Contribs: update libdvdnav patches
[vlc] / extras / contrib / src / Patches / libdvdnav.patch
index 9437c0aad02e2780dc16e2f470d6082b783b3425..621da1b59033bd6d97d8bfe38a94399fa63f173e 100644 (file)
-diff -r -u libdvdnav-4.1.1/configure.ac libdvdnav/configure.ac
---- libdvdnav-4.1.1/configure.ac       2007-05-01 11:11:52.000000000 +0100
-+++ libdvdnav/configure.ac     2007-11-12 11:40:20.406250000 +0000
-@@ -130,6 +130,11 @@
- AC_C_BIGENDIAN
- dnl ---------------------------------------------
-+dnl Check for basic *nix fonction that we may emulate on other OS
-+dnl ---------------------------------------------
-+AC_CHECK_FUNCS(gettimeofday)
-+
-+dnl ---------------------------------------------
- dnl threads
- dnl ---------------------------------------------
- case $host in
-@@ -150,25 +155,61 @@
- AC_SUBST(THREAD_CFLAGS)
- dnl ---------------------------------------------
--dnl dynamic linker
-+dnl dvdcss checking
- dnl ---------------------------------------------
--case $host in
--  *mingw32*)
--    CFLAGS="-idirafter \$(top_srcdir)/msvc/include $CFLAGS"
--    LDFLAGS="-no-undefined $LDFLAGS"
--    ;;
--  *cygwin*)
--    LDFLAGS="-no-undefined $LDFLAGS"
--    ;;
--  *)
--    AC_CHECK_LIB(c, dlopen,
--               DYNAMIC_LD_LIBS="",
--               AC_CHECK_LIB(dl, dlopen,
--                            DYNAMIC_LD_LIBS="-ldl",
--                            AC_MSG_ERROR(dynamic linker needed)))
--    AC_SUBST(DYNAMIC_LD_LIBS)
--    ;;
--esac
-+AC_ARG_WITH( [libdvdcss],
-+    [  --with-libdvdcss[=PATH]    force linking against libdvdcss],
-+    [if test x"$withval" != xno; then
-+       link_dvdcss=yes
-+     fi
-+     if test x"$withval" != xyes; then
-+       dvdcss_path=$withval
-+     fi])
-+
-+if test x"$link_dvdcss" != xyes; then
-+dnl dlopen libdvdcss
-+  AC_CHECK_FUNC( dlopen,
-+    [DL_LIBS="" ],
-+    AC_CHECK_LIB( dl, dlopen,
-+      [DL_LIBS=-ld ],
-+      AC_MSG_ERROR(You need libdl (dlopen))
-+    )
-+  )
-+else
-+dnl link with libdvdcss
-+  if test -z "$dvdcss_path"; then
-+    AC_CHECK_LIB(dvdcss, dvdcss_interface_2,
-+      [ CSS_LIBS=-ldvdcss ],
-+      AC_MSG_ERROR(You need libdvdcss.so.2 or later)
-+    )
-+    AC_CHECK_HEADERS(dvdcss/dvdcss.h,
-+      [ ],
-+      AC_MSG_ERROR(You need libdvdcss (dvdcss.h))
-+    )
-+  else
-+    saved_CFLAGS=$CFLAGS
-+    CFLAGS="$CFLAGS -L$dvdcss_path/lib"
-+    AC_CHECK_LIB(dvdcss, dvdcss_interface_2,
-+      [ CSS_LIBS="-L$dvdcss_path/lib -R$dvdcss_path/lib -ldvdcss"
-+        CSS_CFLAGS=-I$dvdcss_path/include ],
-+      AC_MSG_ERROR(You need libdvdcss.so.2 or later)
-+    )
-+    CFLAGS=$saved_CFLAGS
-+    dnl -w added to shutup GCC3.1's cpp warning about -I/usr/local
-+    saved_CPPFLAGS=$CPPFLAGS
-+    CPPFLAGS="-w $CPPFLAGS -I$dvdcss_path/include"
-+    AC_CHECK_HEADERS(dvdcss/dvdcss.h,
-+      [ ],
-+      AC_MSG_ERROR(You need libdvdcss (dvdcss.h))
-+    )
-+    CPPFLAGS=$saved_CPPFLAGS
-+  fi
-+fi
-+
-+AC_SUBST(DL_LIBS)
-+AC_SUBST(CSS_LIBS)
-+AC_SUBST(CSS_CFLAGS)
-+ 
- dnl ---------------------------------------------
- dnl cflags
-diff -r -u libdvdnav-4.1.1/src/dvdnav_internal.h libdvdnav/src/dvdnav_internal.h
---- libdvdnav-4.1.1/src/dvdnav_internal.h      2007-04-21 12:56:41.000000000 +0100
-+++ libdvdnav/src/dvdnav_internal.h    2007-11-12 11:42:26.046875000 +0000
-@@ -39,6 +39,7 @@
- #define pthread_mutex_unlock(a)  LeaveCriticalSection(a)
- #define pthread_mutex_destroy(a)
-+#ifndef HAVE_GETTIMEOFDAY
- /* replacement gettimeofday implementation */
- #include <sys/timeb.h>
- static inline int _private_gettimeofday( struct timeval *tv, void *tz )
-@@ -50,6 +51,8 @@
-   return 0;
- }
- #define gettimeofday(TV, TZ) _private_gettimeofday((TV), (TZ))
-+#endif
-+
- #include <io.h> /* read() */
- #define lseek64 _lseeki64
-diff -r -u libdvdnav-4.1.1/src/dvdread/dvd_input.c libdvdnav/src/dvdread/dvd_input.c
---- libdvdnav-4.1.1/src/dvdread/dvd_input.c    2007-04-19 16:45:30.000000000 +0100
-+++ libdvdnav/src/dvdread/dvd_input.c  2007-11-12 11:19:57.984375000 +0000
-@@ -27,6 +27,11 @@
- #include "dvd_reader.h"
- #include "dvd_input.h"
-+#ifdef WIN32
-+#   define lseek _lseeki64
-+#   undef off_t
-+#   define off_t int64_t
-+#endif
- /* The function pointers that is the exported interface of this file. */
- dvd_input_t (*dvdinput_open)  (const char *);
-diff -r -u libdvdnav-4.1.1/src/vm/vm.c libdvdnav/src/vm/vm.c
---- libdvdnav-4.1.1/src/vm/vm.c        2007-04-25 00:06:22.000000000 +0100
-+++ libdvdnav/src/vm/vm.c      2007-11-12 11:35:55.859375000 +0000
-@@ -135,24 +135,25 @@
- }
- #endif
-+#include <dvdread/dvd_input.h>
-+
- static void dvd_read_name(char *name, const char *device) {
-     /* Because we are compiling with _FILE_OFFSET_BITS=64
-      * all off_t are 64bit.
-      */
-     off_t off;
--    int fd, i;
-+    dvd_input_t fd; int i;
-     uint8_t data[DVD_VIDEO_LB_LEN];
-     /* Read DVD name */
--    fd = open(device, O_RDONLY);
-+    fd = dvdinput_open(device);
-     if (fd > 0) { 
--      off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
+Index: src/vm/vm.c
+===================================================================
+--- src/vm/vm.c        (revision 1136)
++++ src/vm/vm.c        (working copy)
+@@ -146,12 +146,11 @@
+     fd = open(device, O_RDONLY);
+     if (fd > 0) {
+       off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
 -      if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
--        off = read( fd, data, DVD_VIDEO_LB_LEN ); 
++      if (off == 16) {
+         off = read( fd, data, DVD_VIDEO_LB_LEN );
 -        close(fd);
--        if (off == ( (off_t) DVD_VIDEO_LB_LEN )) {
-+      off = dvdinput_seek( fd, 16 );
-+      if( off == 16 ) {
-+        off = dvdinput_read( fd, data, 1, DVDINPUT_NOFLAGS ); 
-+        if (off == 1 ) {
+         if (off == ( (off_t) DVD_VIDEO_LB_LEN )) {
            fprintf(MSG_OUT, "libdvdnav: DVD Title: ");
 -          for(i=25; i < 73; i++ ) {
 +          for(i=40; i < 73; i++ ) {
              if((data[i] == 0)) break;
              if((data[i] > 32) && (data[i] < 127)) {
                fprintf(MSG_OUT, "%c", data[i]);
-@@ -160,10 +161,12 @@
+@@ -159,10 +158,12 @@
                fprintf(MSG_OUT, " ");
              }
            }
--          strncpy(name, &data[25], 48);
+-          strncpy(name, (char*) &data[25], 48);
 -          name[48] = 0;
-+        strncpy(name, &data[40], 32);
-+        i=31;
-+        while( (i >= 0) && (name[i] <= ' ')) --i;
-+        name[i+1] = '\0';
++          strncpy(name, (char*) &data[40], 32);
++          i=31;
++          while( (i>=0) && (name[i] <= ' ')) --i;
++          name[i+1] = '\0';
            fprintf(MSG_OUT, "\nlibdvdnav: DVD Serial Number: ");
 -          for(i=73; i < 89; i++ ) {
 +          for(i=813; i < 829; i++ ) {
              if((data[i] == 0)) break;
              if((data[i] > 32) && (data[i] < 127)) {
                fprintf(MSG_OUT, "%c", data[i]);
-@@ -187,7 +190,7 @@
-       } else {
-         fprintf(MSG_OUT, "libdvdnav: Can't seek to block %u\n", 32 );
-       }
--      close(fd);
-+      dvdinput_close(fd);
-     } else {
-     fprintf(MSG_OUT, "NAME OPEN FAILED\n");
-   }
---- libdvdnav-4.1.1/examples/Makefile.am       2004-01-11 21:43:13.000000000 +0000
-+++ libdvdnav/examples/Makefile.am     2007-11-12 12:44:09.328125000 +0000
-@@ -8,7 +8,7 @@
+Index: Makefile.am
+===================================================================
+--- Makefile.am        (revision 1136)
++++ Makefile.am        (working copy)
+@@ -1,7 +1,7 @@
+ include $(top_srcdir)/misc/Makefile.common
  
- menus_SOURCES = menus.c
- menus_LDFLAGS = -L$(top_srcdir)/src/
--menus_LDADD   = $(DVDNAV_LIB)
-+menus_LDADD   = $(DVDNAV_LIB) $(CSS_LIBS)  
+-SUBDIRS = src examples doc misc m4
++SUBDIRS = src misc m4
  
- $(DVDNAV_LIB):
-       @cd $(top_builddir)/src/ && $(MAKE) libdvdnav.la
+ EXTRA_DIST = autogen.sh \
+            AUTHORS \