1 diff -ru libdvdnav-0.1.10/configure.ac libdvdnav/configure.ac
2 --- libdvdnav-0.1.10/configure.ac 2004-06-10 23:13:02.000000000 +0200
3 +++ libdvdnav/configure.ac 2005-08-31 19:56:21.000000000 +0200
5 dnl --------------------------------------------------------------
6 dnl Require autoconf version 2.53
7 dnl --------------------------------------------------------------
11 dnl --------------------------------------------------------------
12 dnl Making releases: DVDNAV_SUB += 1; change LT_* accordingly
19 dnl --------------------------------------------------------------
20 dnl Checks for header files.
21 dnl --------------------------------------------------------------
23 THREAD_CFLAGS="-I/usr/local/include -D_THREAD_SAFE"
24 CFLAGS="$THREAD_CFLAGS $CFLAGS"
26 - *mingw32* | *cygwin*)
27 + *mingw32* | *cygwin* | *beos*)
30 AC_CHECK_LIB(pthread, pthread_create,
33 AC_SUBST(THREAD_CFLAGS)
37 dnl ---------------------------------------------
40 dnl ---------------------------------------------
43 - CFLAGS="-idirafter \$(top_srcdir)/msvc/include $CFLAGS"
44 - LDFLAGS="-no-undefined $LDFLAGS"
47 - LDFLAGS="-no-undefined $LDFLAGS"
50 - AC_CHECK_LIB(c, dlopen,
52 - AC_CHECK_LIB(dl, dlopen,
53 - DYNAMIC_LD_LIBS="-ldl",
54 - AC_MSG_ERROR(dynamic linker needed)))
55 - AC_SUBST(DYNAMIC_LD_LIBS)
58 +AC_ARG_WITH( [libdvdcss],
59 + [ --with-libdvdcss[=PATH] force linking against libdvdcss],
60 + [if test x"$withval" != xno; then
63 + if test x"$withval" != xyes; then
64 + dvdcss_path=$withval
67 +if test x"$link_dvdcss" != xyes; then
69 + AC_CHECK_FUNC( dlopen,
71 + AC_CHECK_LIB( dl, dlopen,
73 + AC_MSG_ERROR(You need libdl (dlopen))
77 +dnl link with libdvdcss
78 + if test -z "$dvdcss_path"; then
79 + AC_CHECK_LIB(dvdcss, dvdcss_interface_2,
80 + [ CSS_LIBS=-ldvdcss ],
81 + AC_MSG_ERROR(You need libdvdcss.so.2 or later)
83 + AC_CHECK_HEADERS(dvdcss/dvdcss.h,
85 + AC_MSG_ERROR(You need libdvdcss (dvdcss.h))
88 + saved_CFLAGS=$CFLAGS
89 + CFLAGS="$CFLAGS -L$dvdcss_path/lib"
90 + AC_CHECK_LIB(dvdcss, dvdcss_interface_2,
91 + [ CSS_LIBS="-L$dvdcss_path/lib -R$dvdcss_path/lib -ldvdcss"
92 + CSS_CFLAGS=-I$dvdcss_path/include ],
93 + AC_MSG_ERROR(You need libdvdcss.so.2 or later)
95 + CFLAGS=$saved_CFLAGS
96 + dnl -w added to shutup GCC3.1's cpp warning about -I/usr/local
97 + saved_CPPFLAGS=$CPPFLAGS
98 + CPPFLAGS="-w $CPPFLAGS -I$dvdcss_path/include"
99 + AC_CHECK_HEADERS(dvdcss/dvdcss.h,
101 + AC_MSG_ERROR(You need libdvdcss (dvdcss.h))
103 + CPPFLAGS=$saved_CPPFLAGS
109 +AC_SUBST(CSS_CFLAGS)
111 dnl ---------------------------------------------
113 diff -ru libdvdnav-0.1.10/examples/Makefile.am libdvdnav/examples/Makefile.am
114 --- libdvdnav-0.1.10/examples/Makefile.am 2004-01-11 22:43:12.000000000 +0100
115 +++ libdvdnav/examples/Makefile.am 2005-08-31 19:56:21.000000000 +0200
117 noinst_PROGRAMS = menus
119 menus_SOURCES = menus.c
120 -menus_LDFLAGS = -L$(top_srcdir)/src/
121 +menus_LDFLAGS = -L$(top_srcdir)/src/ $(CSS_LIBS)
122 menus_LDADD = $(DVDNAV_LIB)
125 diff -ru libdvdnav-0.1.10/src/dvdnav_internal.h libdvdnav/src/dvdnav_internal.h
126 --- libdvdnav-0.1.10/src/dvdnav_internal.h 2004-02-13 20:16:17.000000000 +0100
127 +++ libdvdnav/src/dvdnav_internal.h 2005-08-31 19:56:21.000000000 +0200
129 #include <io.h> /* read() */
130 #define lseek64 _lseeki64
132 +#elif defined(__BEOS__)
135 +typedef sem_id pthread_mutex_t;
136 +#define pthread_mutex_init(a, b) (*a) = create_sem( 1,"" )
137 +#define pthread_mutex_lock(a) acquire_sem( *a )
138 +#define pthread_mutex_unlock(a) release_sem( *a )
139 +#define pthread_mutex_destroy(a) delete_sem( *a )
144 diff -ru libdvdnav-0.1.10/src/dvdread/bswap.h libdvdnav/src/dvdread/bswap.h
145 --- libdvdnav-0.1.10/src/dvdread/bswap.h 2004-01-11 22:43:13.000000000 +0100
146 +++ libdvdnav/src/dvdread/bswap.h 2005-08-31 19:56:21.000000000 +0200
151 -#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__)
152 +#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__)
154 x = ((((x) & 0xff00) >> 8) | \
155 (((x) & 0x00ff) << 8))
156 diff -ru libdvdnav-0.1.10/src/dvdread/dvd_input.h libdvdnav/src/dvdread/dvd_input.h
157 --- libdvdnav-0.1.10/src/dvdread/dvd_input.h 2004-01-11 22:43:13.000000000 +0100
158 +++ libdvdnav/src/dvdread/dvd_input.h 2005-08-31 19:56:21.000000000 +0200
160 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
163 +#define dvdinput_setup dvdnav_dvdinput_setup
166 * Defines and flags. Make sure they fit the libdvdcss API!
168 diff -ru libdvdnav-0.1.10/src/dvdread/dvd_reader.c libdvdnav/src/dvdread/dvd_reader.c
169 --- libdvdnav-0.1.10/src/dvdread/dvd_reader.c 2004-03-03 17:48:36.000000000 +0100
170 +++ libdvdnav/src/dvdread/dvd_reader.c 2005-08-31 19:58:34.000000000 +0200
175 - ret = stat( path, &fileinfo );
178 + if( *path && (ret = stat( path, &fileinfo )) < 0 ) {
180 /* maybe "host:port" url? try opening it with acCeSS library */
181 if( strchr(path,':') ) {
185 /* First check if this is a block/char device or a file*/
186 - if( S_ISBLK( fileinfo.st_mode ) ||
187 + if( !*path || S_ISBLK( fileinfo.st_mode ) ||
188 S_ISCHR( fileinfo.st_mode ) ||
189 S_ISREG( fileinfo.st_mode ) ) {
191 @@ -403,14 +401,16 @@
193 /* Resolve any symlinks and get the absolut dir name. */
195 + char *current_path;
197 - int cdir = open( ".", O_RDONLY );
200 + current_path = getcwd( NULL, PATH_MAX );
201 + if( current_path ) {
203 new_path = getcwd( NULL, PATH_MAX );
206 + chdir( current_path );
207 + free( current_path );
211 path_copy = new_path;
212 @@ -585,10 +585,12 @@
213 sprintf( filename, "%s%s%s", path,
214 ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
225 diff -ru libdvdnav-0.1.10/src/dvdread/dvd_reader.h libdvdnav/src/dvdread/dvd_reader.h
226 --- libdvdnav-0.1.10/src/dvdread/dvd_reader.h 2004-02-01 18:55:19.000000000 +0100
227 +++ libdvdnav/src/dvdread/dvd_reader.h 2005-08-31 19:56:21.000000000 +0200
229 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
232 +#define UDFReadBlocksRaw dvdnav_UDFReadBlocksRaw
233 +#define DVDUDFCacheLevel dvdnav_DVDUDFCacheLevel
234 +#define DVDOpen dvdnav_DVDOpen
235 +#define DVDClose dvdnav_DVDClose
236 +#define DVDOpenFile dvdnav_DVDOpenFile
237 +#define DVDCloseFile dvdnav_DVDCloseFile
238 +#define DVDReadBlocks dvdnav_DVDReadBlocks
239 +#define DVDFileSeek dvdnav_DVDFileSeek
240 +#define DVDReadBytes dvdnav_DVDReadBytes
241 +#define DVDFileSize dvdnav_DVDFileSize
242 +#define DVDDiscID dvdnav_DVDDiscID
243 +#define DVDISOVolumeInfo dvdnav_DVDISOVolumeInfo
244 +#define DVDUDFVolumeInfo dvdnav_DVDUDFVolumeInfo
249 diff -ru libdvdnav-0.1.10/src/dvdread/dvd_udf.h libdvdnav/src/dvdread/dvd_udf.h
250 --- libdvdnav-0.1.10/src/dvdread/dvd_udf.h 2004-01-11 22:43:13.000000000 +0100
251 +++ libdvdnav/src/dvdread/dvd_udf.h 2005-08-31 19:56:21.000000000 +0200
253 * http://www.gnu.org/copyleft/gpl.html
256 +#define GetUDFCacheHandle dvdnav_GetUDFCacheHandle
257 +#define SetUDFCacheHandle dvdnav_SetUDFCacheHandle
258 +#define FreeUDFCache dvdnav_FreeUDFCache
259 +#define UDFFindFile dvdnav_UDFFindFile
260 +#define UDFGetVolumeIdentifier dvdnav_UDFGetVolumeIdentifier
261 +#define UDFGetVolumeSetIdentifier dvdnav_UDFGetVolumeSetIdentifier
263 #include <inttypes.h>
265 #include "dvd_reader.h"
266 diff -ru libdvdnav-0.1.10/src/dvdread/ifo_print.h libdvdnav/src/dvdread/ifo_print.h
267 --- libdvdnav-0.1.10/src/dvdread/ifo_print.h 2004-01-11 22:43:13.000000000 +0100
268 +++ libdvdnav/src/dvdread/ifo_print.h 2005-08-31 19:56:21.000000000 +0200
270 #ifndef IFO_PRINT_H_INCLUDED
271 #define IFO_PRINT_H_INCLUDED
273 +#define ifo_print_VMGI_MAT dvdnav_ifo_print_VMGI_MAT
274 +#define ifo_print_VTSI_MAT dvdnav_ifo_print_VTSI_MAT
275 +#define ifo_print_PGC dvdnav_ifo_print_PGC
276 +#define ifo_print_TT_SRPT dvdnav_ifo_print_TT_SRPT
277 +#define ifo_print_VTS_PTT_SRPT dvdnav_ifo_print_VTS_PTT_SRPT
278 +#define ifo_print_PTL_MAIT dvdnav_ifo_print_PTL_MAIT
279 +#define ifo_print_VTS_TMAPT dvdnav_ifo_print_VTS_TMAPT
280 +#define ifo_print_C_ADT dvdnav_ifo_print_C_ADT
281 +#define ifo_print_VOBU_ADMAP dvdnav_ifo_print_VOBU_ADMAP
282 +#define ifo_print_menu_name dvdnav_ifo_print_menu_name
283 +#define ifo_print_PGCIT dvdnav_ifo_print_PGCIT
284 +#define ifo_print_PGCI_UT dvdnav_ifo_print_PGCI_UT
285 +#define ifo_print_VTS_ATRT dvdnav_ifo_print_VTS_ATRT
286 +#define ifo_print dvdnav_ifo_print
288 #include <inttypes.h>
289 #ifdef DVDNAV_COMPILE
290 # include "ifo_types.h"
291 diff -ru libdvdnav-0.1.10/src/dvdread/ifo_read.h libdvdnav/src/dvdread/ifo_read.h
292 --- libdvdnav-0.1.10/src/dvdread/ifo_read.h 2004-01-11 22:43:13.000000000 +0100
293 +++ libdvdnav/src/dvdread/ifo_read.h 2005-08-31 19:56:21.000000000 +0200
295 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
298 +#define ifoOpen dvdnav_ifoOpen
299 +#define ifoOpenVMGI dvdnav_ifoOpenVMGI
300 +#define ifoOpenVTSI dvdnav_ifoOpenVTSI
301 +#define ifoClose dvdnav_ifoClose
302 +#define ifoRead_FP_PGC dvdnav_ifoRead_FP_PGC
303 +#define ifoFree_FP_PGC dvdnav_ifoFree_FP_PGC
304 +#define ifoRead_TT_SRPT dvdnav_ifoRead_TT_SRPT
305 +#define ifoFree_TT_SRPT dvdnav_ifoFree_TT_SRPT
306 +#define ifoRead_VTS_PTT_SRPT dvdnav_ifoRead_VTS_PTT_SRPT
307 +#define ifoFree_VTS_PTT_SRPT dvdnav_ifoFree_VTS_PTT_SRPT
308 +#define ifoRead_PTL_MAIT dvdnav_ifoRead_PTL_MAIT
309 +#define ifoFree_PTL_MAIT dvdnav_ifoFree_PTL_MAIT
310 +#define ifoRead_VTS_TMAPT dvdnav_ifoRead_VTS_TMAPT
311 +#define ifoFree_VTS_TMAPT dvdnav_ifoFree_VTS_TMAPT
312 +#define ifoRead_TITLE_C_ADT dvdnav_ifoRead_TITLE_C_ADT
313 +#define ifoRead_C_ADT dvdnav_ifoRead_C_ADT
314 +#define ifoFree_C_ADT dvdnav_ifoFree_C_ADT
315 +#define ifoFree_TITLE_C_ADT dvdnav_ifoFree_TITLE_C_ADT
316 +#define ifoRead_TITLE_VOBU_ADMAP dvdnav_ifoRead_TITLE_VOBU_ADMAP
317 +#define ifoRead_VOBU_ADMAP dvdnav_ifoRead_VOBU_ADMAP
318 +#define ifoFree_VOBU_ADMAP dvdnav_ifoFree_VOBU_ADMAP
319 +#define ifoFree_TITLE_VOBU_ADMAP dvdnav_ifoFree_TITLE_VOBU_ADMAP
320 +#define ifoRead_PGCIT dvdnav_ifoRead_PGCIT
321 +#define ifoFree_PGCIT dvdnav_ifoFree_PGCIT
322 +#define ifoRead_PGCI_UT dvdnav_ifoRead_PGCI_UT
323 +#define ifoFree_PGCI_UT dvdnav_ifoFree_PGCI_UT
324 +#define ifoRead_VTS_ATRT dvdnav_ifoRead_VTS_ATRT
325 +#define ifoFree_VTS_ATRT dvdnav_ifoFree_VTS_ATRT
326 +#define ifoRead_TXTDT_MGI dvdnav_ifoRead_TXTDT_MGI
327 +#define ifoFree_TXTDT_MGI dvdnav_ifoFree_TXTDT_MGI
329 #include "ifo_types.h"
330 #include "dvd_reader.h"
332 diff -ru libdvdnav-0.1.10/src/dvdread/md5.h libdvdnav/src/dvdread/md5.h
333 --- libdvdnav-0.1.10/src/dvdread/md5.h 2004-01-11 22:43:13.000000000 +0100
334 +++ libdvdnav/src/dvdread/md5.h 2005-08-31 19:56:21.000000000 +0200
339 +#define md5_init_ctx dvdnav_md5_init_ctx
340 +#define md5_read_ctx dvdnav_md5_read_ctx
341 +#define md5_finish_ctx dvdnav_md5_finish_ctx
342 +#define md5_stream dvdnav_md5_stream
343 +#define md5_buffer dvdnav_md5_buffer
344 +#define md5_process_block dvdnav_md5_process_block
345 +#define md5_process_bytes dvdnav_md5_process_bytes
349 #if defined HAVE_LIMITS_H || _LIBC