# ***************************************************************************
.dvdread: .dvdnav
$(INSTALL_NAME)
- (install_name_tool -change $(PREFIX)/lib/libdvdread.0.dylib @executable_path/lib/vlc_libdvdread.dylib $(PREFIX)/vlc-lib/vlc_libdvdnav.dylib)
+ifdef HAVE_DARWIN_OS
+ install_name_tool -change $(PREFIX)/lib/libdvdread.4.dylib @executable_path/lib/vlc_libdvdread.dylib $(PREFIX)/vlc-lib/vlc_libdvdnav.dylib
+endif
touch $@
CLEAN_FILE += .dvdread
# libdvdnav
# ***************************************************************************
+ifdef SVN
+libdvdnav:
+ $(SVN) export $(LIBDVDNAV_SVN) libdvdnav
+ patch -p0 < Patches/libdvdnav.patch
+ (cd $@; ./autogen.sh noconfig)
+else
libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2:
$(WGET) $(LIBDVDNAV_URL)
libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
$(EXTRACT_BZ2)
- patch -p0 < Patches/dvdnav.patch
- patch -p0 < Patches/libdvdnav-mactel.patch
+ patch -p0 < Patches/libdvdnav.patch
(cd $@; ./autogen.sh noconfig)
+endif
.dvdnav: libdvdnav .dvdcss
ifdef HAVE_WIN32
+++ /dev/null
-Index: configure.ac
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/configure.ac,v
-retrieving revision 1.22
-diff -u -r1.22 configure.ac
---- configure.ac 3 Jan 2005 20:24:21 -0000 1.22
-+++ configure.ac 11 Feb 2005 11:08:09 -0000
-@@ -171,6 +171,12 @@
- esac
-
- dnl ---------------------------------------------
-+dnl enable builtin libdvdread
-+dnl ---------------------------------------------
-+AC_ARG_ENABLE(builtin-dvdread,
-+[ --disable-builtin-dvdread use external libdvdread (default builtin)])
-+
-+dnl ---------------------------------------------
- dnl cflags
- dnl ---------------------------------------------
- dnl Common cflags for all platforms
-@@ -218,13 +224,20 @@
- fi
- AC_SUBST(DEPCOMP)
-
-+if test "${enable_builtin_dvdread}" != "no"; then
-+ BUILTIN_DVDREAD=dvdread
-+ BUILTIN_DVDREAD_LIB='$(top_builddir)/src/dvdread/libdvdread.la'
-+ AC_SUBST(BUILTIN_DVDREAD)
-+ AC_SUBST(BUILTIN_DVDREAD_LIB)
-+ AC_OUTPUT([src/dvdread/Makefile])
-+fi
-+
- dnl ---------------------------------------------
- dnl Output configuration files
- dnl ---------------------------------------------
- AC_OUTPUT([
- Makefile
- src/Makefile
--src/dvdread/Makefile
- src/vm/Makefile
- misc/Makefile
- misc/dvdnav-config
-Index: src/Makefile.am
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/Makefile.am,v
-retrieving revision 1.28
-diff -u -r1.28 Makefile.am
---- src/Makefile.am 3 Jan 2005 20:24:21 -0000 1.28
-+++ src/Makefile.am 11 Feb 2005 11:08:09 -0000
-@@ -1,6 +1,6 @@
- include $(top_srcdir)/misc/Makefile.common
-
--SUBDIRS = dvdread vm
-+SUBDIRS = $(BUILTIN_DVDREAD) vm
-
- includedir = ${prefix}/include/dvdnav
-
-@@ -17,7 +17,7 @@
- dvdnav_internal.h read_cache.h remap.h
-
- libdvdnav_la_LIBADD = $(THREAD_LIBS) \
-- $(top_builddir)/src/dvdread/libdvdread.la \
-+ $(BUILTIN_DVDREAD_LIB) \
- $(top_builddir)/src/vm/libdvdvm.la
-
- libdvdnav_la_LDFLAGS = \
-Index: src/dvdnav.c
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/dvdnav.c,v
-retrieving revision 1.65
-diff -u -r1.65 dvdnav.c
---- src/dvdnav.c 15 Dec 2004 21:16:58 -0000 1.65
-+++ src/dvdnav.c 11 Feb 2005 11:08:09 -0000
-@@ -31,7 +31,6 @@
-
- #include "dvdnav_internal.h"
- #include "read_cache.h"
--#include "nav_read.h"
-
- #include <stdlib.h>
- #include <stdio.h>
-Index: src/dvdnav.h
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/dvdnav.h,v
-retrieving revision 1.31
-diff -u -r1.31 dvdnav.h
---- src/dvdnav.h 9 Jun 2003 15:17:44 -0000 1.31
-+++ src/dvdnav.h 11 Feb 2005 11:08:10 -0000
-@@ -33,16 +33,19 @@
- extern "C" {
- #endif
-
-+#include <inttypes.h>
-+
-+#include <dvdread/dvd_reader.h>
-+#include <dvdread/nav_types.h>
-+#include <dvdread/nav_read.h>
-+#include <dvdread/ifo_types.h> /* For vm_cmd_t */
-+
- #ifdef DVDNAV_COMPILE
- # include "dvdnav_events.h"
- # include "dvd_types.h"
--# include "dvd_reader.h"
--# include "ifo_types.h" /* For vm_cmd_t */
- #else
- # include <dvdnav/dvdnav_events.h>
- # include <dvdnav/dvd_types.h>
--# include <dvdnav/dvd_reader.h>
--# include <dvdnav/ifo_types.h> /* For vm_cmd_t */
- #endif
-
-
-Index: src/dvdnav_events.h
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/dvdnav_events.h,v
-retrieving revision 1.12
-diff -u -r1.12 dvdnav_events.h
---- src/dvdnav_events.h 27 Apr 2003 01:26:18 -0000 1.12
-+++ src/dvdnav_events.h 11 Feb 2005 11:08:10 -0000
-@@ -28,10 +28,6 @@
- #ifndef DVDNAV_EVENTS_H_INCLUDED
- #define DVDNAV_EVENTS_H_INCLUDED
-
--#include "ifo_types.h"
--#include "dvd_reader.h"
--#include "nav_types.h"
--
-
- /*
- * DVDNAV_BLOCK_OK
-Index: src/highlight.c
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/highlight.c,v
-retrieving revision 1.32
-diff -u -r1.32 highlight.c
---- src/highlight.c 20 Jan 2004 01:22:24 -0000 1.32
-+++ src/highlight.c 11 Feb 2005 11:08:10 -0000
-@@ -26,7 +26,6 @@
- #endif
-
- #include <assert.h>
--#include "nav_types.h"
- #include "dvdnav_internal.h"
-
- /*
-Index: src/remap.c
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/remap.c,v
-retrieving revision 1.4
-diff -u -r1.4 remap.c
---- src/remap.c 27 Aug 2003 13:54:19 -0000 1.4
-+++ src/remap.c 11 Feb 2005 11:08:10 -0000
-@@ -189,7 +189,11 @@
- remap_t *map;
-
- /* Build the map filename */
-- home = getenv("HOME"); assert(home);
-+ home = getenv("HOME");
-+ if (!home) {
-+ fprintf(MSG_OUT, "libdvdnav: Unable to find map for title '%s'\n", title);
-+ return NULL;
-+ }
- strncpy(fname, home, sizeof(fname));
- strncat(fname, "/.dvdnav/", sizeof(fname));
- strncat(fname, title, sizeof(fname));
-Index: src/vm/decoder.c
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/vm/decoder.c,v
-retrieving revision 1.2
-diff -u -r1.2 decoder.c
---- src/vm/decoder.c 3 Mar 2004 16:50:42 -0000 1.2
-+++ src/vm/decoder.c 11 Feb 2005 11:08:10 -0000
-@@ -31,7 +31,6 @@
- #include <stdlib.h>
- #include <inttypes.h>
- #include <string.h> /* For memset */
--#include "ifo_types.h" /* vm_cmd_t */
-
- #include "dvdnav_internal.h"
-
-Index: src/vm/decoder.h
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/vm/decoder.h,v
-retrieving revision 1.1
-diff -u -r1.1 decoder.h
---- src/vm/decoder.h 11 Jan 2004 21:43:13 -0000 1.1
-+++ src/vm/decoder.h 11 Feb 2005 11:08:10 -0000
-@@ -28,7 +28,7 @@
- #include <inttypes.h>
- #include <sys/time.h>
-
--#include "ifo_types.h" /* vm_cmd_t */
-+#include <dvdread/ifo_types.h> /* vm_cmd_t */
- #include "dvdnav_internal.h"
-
- /* link command types */
-Index: src/vm/vm.c
-===================================================================
-RCS file: /cvsroot/dvd/libdvdnav/src/vm/vm.c,v
-retrieving revision 1.11
-diff -u -r1.11 vm.c
---- src/vm/vm.c 16 Jan 2005 16:47:05 -0000 1.11
-+++ src/vm/vm.c 11 Feb 2005 11:08:11 -0000
-@@ -38,13 +38,17 @@
- #include <sys/stat.h>
- #include <fcntl.h>
-
--#include "ifo_types.h"
--#include "ifo_read.h"
-+/* from dvdread */
-+#include <dvdread/ifo_types.h>
-+#include <dvdread/ifo_read.h>
-
- #include "dvdnav_internal.h"
-
- #ifdef _MSC_VER
- #include <io.h> /* read() */
-+#elif defined(WIN32)
-+# define lseek _lseeki64
-+# define off_t int64_t
- #endif /* _MSC_VER */
-
- /*
-diff -Naur Makefile.am Makefile.am
---- Makefile.am 2004-10-26 19:26:07.000000000 +0200
-+++ Makefile.am 2005-09-02 15:05:20.000000000 +0200
-@@ -2,7 +2,7 @@
-
- AUTOMAKE_OPTIONS = 1.3
-
--SUBDIRS = src examples doc misc m4
-+SUBDIRS = src misc m4
-
- EXTRA_DIST = autogen.sh \
- AUTHORS \
-
---- misc/dvdnav-config.in 2003-04-27 03:26:17.000000000 +0200
-+++ misc/dvdnav-config.in 2005-09-21 20:27:06.000000000 +0200
-@@ -76,5 +76,5 @@
- fi
-
- if test "$echo_libs" = "yes"; then
-- echo -L@libdir@ -ldvdnav @THREAD_LIBS@
-+ echo -L@libdir@ -ldvdnav @THREAD_LIBS@ -ldvdread -ldvdcss
- fi
+++ /dev/null
-diff -puriN libdvdnav-orig/src/dvdread/bswap.h libdvdnav/src/dvdread/bswap.h
---- libdvdnav-orig/src/dvdread/bswap.h 2006-01-26 23:26:43.000000000 +0100
-+++ libdvdnav/src/dvdread/bswap.h 2006-01-26 23:27:57.000000000 +0100
-@@ -59,6 +59,12 @@
- #define B2N_32(x) x = be32toh(x)
- #define B2N_64(x) x = be64toh(x)
-
-+#elif defined(__APPLE__)
-+#include <libkern/OSByteOrder.h>
-+#define B2N_16(x) x = OSSwapBigToHostConstInt16(x)
-+#define B2N_32(x) x = OSSwapBigToHostConstInt32(x)
-+#define B2N_64(x) x = OSSwapBigToHostConstInt64(x)
-+
- /* This is a slow but portable implementation, it has multiple evaluation
- * problems so beware.
- * Old FreeBSD's and Solaris don't have <byteswap.h> or any other such
--- /dev/null
+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/bswap.h libdvdnav/src/dvdread/bswap.h
+--- libdvdnav-4.1.1/src/dvdread/bswap.h 2007-05-05 11:32:13.000000000 +0100
++++ libdvdnav/src/dvdread/bswap.h 2007-11-12 11:17:38.343750000 +0000
+@@ -81,14 +81,14 @@
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x000000ff) << 24))
+ #define B2N_64(x) \
+- x = ((((x) & 0xff00000000000000) >> 56) | \
+- (((x) & 0x00ff000000000000) >> 40) | \
+- (((x) & 0x0000ff0000000000) >> 24) | \
+- (((x) & 0x000000ff00000000) >> 8) | \
+- (((x) & 0x00000000ff000000) << 8) | \
+- (((x) & 0x0000000000ff0000) << 24) | \
+- (((x) & 0x000000000000ff00) << 40) | \
+- (((x) & 0x00000000000000ff) << 56))
++ 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
+
+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 );
+- if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
+- 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 ) {
+ 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 @@
+ fprintf(MSG_OUT, " ");
+ }
+ }
+- strncpy(name, &data[25], 48);
+- name[48] = 0;
++ strncpy(name, &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 @@
+
+ menus_SOURCES = menus.c
+ menus_LDFLAGS = -L$(top_srcdir)/src/
+-menus_LDADD = $(DVDNAV_LIB)
++menus_LDADD = $(DVDNAV_LIB) $(CSS_LIBS)
+
+ $(DVDNAV_LIB):
+ @cd $(top_builddir)/src/ && $(MAKE) libdvdnav.la
+++ /dev/null
-? winwx.sh
-Index: configure.in
-===================================================================
-RCS file: /cvsroot/ogle/libdvdread/configure.in,v
-retrieving revision 1.24
-diff -u -r1.24 configure.in
---- configure.in 5 Jul 2003 18:30:25 -0000 1.24
-+++ configure.in 2 Sep 2004 13:43:23 -0000
-@@ -77,6 +77,11 @@
- [ ],
- AC_MSG_ERROR(You need libdvdcss (dvdcss.h))
- )
-+ case "x${host}" in
-+ x*mingw32* | x*cygwin*)
-+ CSS_LIBS=-ldvdcss
-+ ;;
-+ x*)
- AC_MSG_CHECKING([for dvdcss_interface_2 in -ldvdcss])
- saved_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -ldvdcss"
-@@ -88,6 +93,8 @@
- ] )
- LDFLAGS=$saved_LDFLAGS
- AC_MSG_RESULT([yes])
-+ ;;
-+ esac
- else
- dnl -w added to shutup GCC3.1's cpp warning about -I/usr/local
- saved_CPPFLAGS=$CPPFLAGS
-@@ -99,6 +106,12 @@
- CPPFLAGS=$saved_CPPFLAGS
- saved_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -I$dvdcss_path/include -L$dvdcss_path/lib -ldvdcss"
-+ case "x${host}" in
-+ x*mingw32* | x*cygwin*)
-+ CSS_LIBS="-L$dvdcss_path/lib -R$dvdcss_path/lib -ldvdcss"
-+ CSS_CFLAGS=-I$dvdcss_path/include
-+ ;;
-+ x*)
- AC_MSG_CHECKING([for dvdcss_interface_2 in -ldvdcss])
- AC_TRY_LINK([#include <dvdcss/dvdcss.h>],
- [if(!dvdcss_interface_2) { return 1; }],
-@@ -109,6 +122,8 @@
- ] )
- CFLAGS=$saved_CFLAGS
- AC_MSG_RESULT([yes])
-+ ;;
-+ esac
- fi
- fi
-
-Index: dvdread/bswap.h
-===================================================================
-RCS file: /cvsroot/ogle/libdvdread/dvdread/bswap.h,v
-retrieving revision 1.10
-diff -u -r1.10 bswap.h
---- dvdread/bswap.h 18 Jun 2003 13:35:03 -0000 1.10
-+++ dvdread/bswap.h 2 Sep 2004 13:43:25 -0000
-@@ -85,14 +85,14 @@
- (((x) & 0x0000ff00) << 8) | \
- (((x) & 0x000000ff) << 24))
- #define B2N_64(x) \
-- x = ((((x) & 0xff00000000000000) >> 56) | \
-- (((x) & 0x00ff000000000000) >> 40) | \
-- (((x) & 0x0000ff0000000000) >> 24) | \
-- (((x) & 0x000000ff00000000) >> 8) | \
-- (((x) & 0x00000000ff000000) << 8) | \
-- (((x) & 0x0000000000ff0000) << 24) | \
-- (((x) & 0x000000000000ff00) << 40) | \
-- (((x) & 0x00000000000000ff) << 56))
-+ 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
-
-Index: dvdread/dvd_input.c
-===================================================================
-RCS file: /cvsroot/ogle/libdvdread/dvdread/dvd_input.c,v
-retrieving revision 1.8
-diff -u -r1.8 dvd_input.c
---- dvdread/dvd_input.c 4 Apr 2004 20:02:27 -0000 1.8
-+++ dvdread/dvd_input.c 2 Sep 2004 13:43:25 -0000
-@@ -21,11 +21,23 @@
-
- #include <stdio.h>
- #include <stdlib.h>
-+
-+#if defined(HAVE_INTTYPES_H)
-+#include <inttypes.h>
-+#elif defined(HAVE_STDINT_H)
-+#include <stdint.h>
-+#endif
-+
- #include <fcntl.h>
- #include <unistd.h>
-
- #include "dvd_reader.h"
- #include "dvd_input.h"
-+
-+#ifdef WIN32
-+# define lseek _lseeki64
-+# define off_t int64_t
-+#endif
-
- /* The function pointers that is the exported interface of this file. */
- dvd_input_t (*dvdinput_open) (const char *);
+++ /dev/null
-diff -ru libdvdread-0.9.4/dvdread/bswap.h libdvdread/dvdread/bswap.h
---- libdvdread-0.9.4/dvdread/bswap.h 2002-12-15 01:09:12.000000000 +0100
-+++ libdvdread/dvdread/bswap.h 2005-08-31 19:24:57.000000000 +0200
-@@ -65,7 +65,7 @@
- * functionality!
- */
-
--#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32)
-+#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined( __BEOS__ )
- #define B2N_16(x) \
- x = ((((x) & 0xff00) >> 8) | \
- (((x) & 0x00ff) << 8))
-diff -ru libdvdread-0.9.4/dvdread/dvd_reader.c libdvdread/dvdread/dvd_reader.c
---- libdvdread-0.9.4/dvdread/dvd_reader.c 2003-02-13 23:31:21.000000000 +0100
-+++ libdvdread/dvdread/dvd_reader.c 2005-08-31 19:24:57.000000000 +0200
-@@ -324,8 +324,7 @@
- else
- #endif
- {
-- ret = stat( path, &fileinfo );
-- if( ret < 0 ) {
-+ if( *path && (ret = stat( path, &fileinfo ) < 0) ) {
- /* If we can't stat the file, give up */
- fprintf( stderr, "libdvdread: Can't stat %s\n", path );
- perror("");
-@@ -315,7 +314,7 @@
- have_css = dvdinput_setup();
-
- /* First check if this is a block/char device or a file*/
-- if( S_ISBLK( fileinfo.st_mode ) ||
-+ if( !*path || S_ISBLK( fileinfo.st_mode ) ||
- S_ISCHR( fileinfo.st_mode ) ||
- S_ISREG( fileinfo.st_mode ) ) {
-
-@@ -344,14 +343,16 @@
-
- /* Resolve any symlinks and get the absolut dir name. */
- {
-+ char *current_path;
- char *new_path;
-- int cdir = open( ".", O_RDONLY );
--
-- if( cdir >= 0 ) {
-+
-+ current_path = getcwd( NULL, PATH_MAX );
-+ if( current_path ) {
- chdir( path_copy );
- new_path = getcwd( NULL, PATH_MAX );
-- fchdir( cdir );
-- close( cdir );
-+ chdir( current_path );
-+ free( current_path );
-+
- if( new_path ) {
- free( path_copy );
- path_copy = new_path;
-@@ -504,10 +505,12 @@
- sprintf( filename, "%s%s%s", path,
- ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
- ent->d_name );
-+ closedir( dir );
- return 0;
- }
- }
-
-+ closedir( dir );
- return -1;
- }
-
FFMPEG_SVN=svn://svn.mplayerhq.hu/ffmpeg/trunk
LIBDVDCSS_VERSION=1.2.9
LIBDVDCSS_URL=$(VIDEOLAN)/libdvdcss/$(LIBDVDCSS_VERSION)/libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
-LIBDVDNAV_VERSION=20050211
-LIBDVDNAV_URL=$(VIDEOLAN)/testing/contrib/libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
+LIBDVDNAV_VERSION=4.1.1
+LIBDVDNAV_URL=http://www1.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
+LIBDVDNAV_SVN=svn://svn.mplayerhq.hu/dvdnav/trunk/libdvdnav
LIBDVBPSI_VERSION=0.1.6
LIBDVBPSI_URL=$(VIDEOLAN)/libdvbpsi/$(LIBDVBPSI_VERSION)/libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
LIVEDOTCOM_VERSION=latest