diff options
author | ijliao <ijliao@FreeBSD.org> | 2001-07-07 21:07:13 +0800 |
---|---|---|
committer | ijliao <ijliao@FreeBSD.org> | 2001-07-07 21:07:13 +0800 |
commit | 0fc84b1711af92cb0284021766603b3afdd21c47 (patch) | |
tree | 59947e6e8e2c2deba6d6f2109d3733094197b53b /multimedia/libdvdread | |
parent | cf7fae9761f49fdeaf5fb1113579f12ebd41a2e7 (diff) | |
download | freebsd-ports-gnome-0fc84b1711af92cb0284021766603b3afdd21c47.tar.gz freebsd-ports-gnome-0fc84b1711af92cb0284021766603b3afdd21c47.tar.zst freebsd-ports-gnome-0fc84b1711af92cb0284021766603b3afdd21c47.zip |
add libdvdread
DVD player that supports DVD menus
PR: 28410
Submitted by: Marc van Woerkom
Diffstat (limited to 'multimedia/libdvdread')
-rw-r--r-- | multimedia/libdvdread/Makefile | 28 | ||||
-rw-r--r-- | multimedia/libdvdread/distinfo | 1 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-configure.in | 11 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-dvdread-bswap.h | 31 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-dvdread-dvd_reader.c | 102 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-dvdread-dvd_reader.h | 14 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-dvdread-dvd_udf.c | 16 | ||||
-rw-r--r-- | multimedia/libdvdread/files/patch-src-Makefile.am | 15 | ||||
-rw-r--r-- | multimedia/libdvdread/pkg-comment | 1 | ||||
-rw-r--r-- | multimedia/libdvdread/pkg-descr | 14 | ||||
-rw-r--r-- | multimedia/libdvdread/pkg-plist | 12 |
11 files changed, 245 insertions, 0 deletions
diff --git a/multimedia/libdvdread/Makefile b/multimedia/libdvdread/Makefile new file mode 100644 index 000000000000..9805950f3b00 --- /dev/null +++ b/multimedia/libdvdread/Makefile @@ -0,0 +1,28 @@ +# New ports collection makefile for: libdvdread +# Date created: 24 Jun 2001 +# Whom: Marc van Woerkom <3d@freebsd.org> +# +# $FreeBSD$ +# + +PORTNAME= libdvdread +PORTVERSION= 0.8.0 +CATEGORIES= graphics +MASTER_SITES= http://www.dtek.chalmers.se/groups/dvd/ + +MAINTAINER= 3d@FreeBSD.org + +USE_GMAKE= yes +USE_AUTOMAKE= yes +AUTOMAKE_ARGS= --add-missing --copy +USE_LIBTOOL= yes +INSTALLS_SHLIB= yes + +USE_NEWGCC= yes + +# cf the excellent goat book: +# http://sources.redhat.com/autobook/autobook/autobook_43.html +post-patch: + @cd ${WRKSRC} && ./bootstrap + +.include <bsd.port.mk> diff --git a/multimedia/libdvdread/distinfo b/multimedia/libdvdread/distinfo new file mode 100644 index 000000000000..87718a2cad6f --- /dev/null +++ b/multimedia/libdvdread/distinfo @@ -0,0 +1 @@ +MD5 (libdvdread-0.8.0.tar.gz) = f74e3ecbad02a5c5fd679b539c341d8b diff --git a/multimedia/libdvdread/files/patch-configure.in b/multimedia/libdvdread/files/patch-configure.in new file mode 100644 index 000000000000..37604189242d --- /dev/null +++ b/multimedia/libdvdread/files/patch-configure.in @@ -0,0 +1,11 @@ +--- configure.in.orig Fri Jun 22 00:33:29 2001 ++++ configure.in Mon Jun 25 21:06:37 2001 +@@ -58,7 +58,7 @@ + fi + AC_SUBST(STATIC) + +-AC_CHECK_LIB(dl, dlopen, DL_LIBS=-ldl, AC_MSG_ERROR(You need libdl (dlopen))) ++DL_LIBS= + AC_SUBST(DL_LIBS) + + dnl AC_CHECK_GENERATE_INTTYPES(include) diff --git a/multimedia/libdvdread/files/patch-dvdread-bswap.h b/multimedia/libdvdread/files/patch-dvdread-bswap.h new file mode 100644 index 000000000000..1c63be4a7f86 --- /dev/null +++ b/multimedia/libdvdread/files/patch-dvdread-bswap.h @@ -0,0 +1,31 @@ +--- dvdread/bswap.h.orig Sat Apr 7 17:35:10 2001 ++++ dvdread/bswap.h Wed Jun 27 01:23:04 2001 +@@ -27,7 +27,28 @@ + #define B2N_32(x) (void)(x) + #define B2N_64(x) (void)(x) + #else ++#if defined(__FreeBSD__) ++/* how about assmbler versions? */ ++#define bswap_16(x) \ ++ ((((x) & 0xff00) >> 8) | \ ++ (((x) & 0x00ff) << 8)) ++#define bswap_32(x) \ ++ ((((x) & 0xff000000) >> 24) | \ ++ (((x) & 0x00ff0000) >> 8) | \ ++ (((x) & 0x0000ff00) << 8) | \ ++ (((x) & 0x000000ff) << 24)) ++#define bswap_64(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)) ++#else + #include <byteswap.h> ++#endif + #define B2N_16(x) x = bswap_16((x)) + #define B2N_32(x) x = bswap_32((x)) + #define B2N_64(x) x = bswap_64((x)) diff --git a/multimedia/libdvdread/files/patch-dvdread-dvd_reader.c b/multimedia/libdvdread/files/patch-dvdread-dvd_reader.c new file mode 100644 index 000000000000..0587d144ac25 --- /dev/null +++ b/multimedia/libdvdread/files/patch-dvdread-dvd_reader.c @@ -0,0 +1,102 @@ +--- dvdread/dvd_reader.c.orig Fri Jun 22 02:40:48 2001 ++++ dvdread/dvd_reader.c Mon Jun 25 22:57:38 2001 +@@ -30,6 +30,9 @@ + #if defined(__sun) + #include <sys/mnttab.h> + #define MNT_FILE MNTTAB ++#elif defined(__FreeBSD__) ++#undef MNT_FILE ++#include <fstab.h> + #else + #include <mntent.h> + #define MNT_FILE MOUNTED +@@ -183,7 +186,11 @@ + } else if( S_ISDIR( fileinfo.st_mode ) ) { + dvd_reader_t *auth_drive = 0; + char *path_copy = strdup( path ); ++#if defined(__FreeBSD__) ++ struct fstab* fe; ++#else + FILE *mntfile; ++#endif + + /** + * If we're being asked to open a directory, check if that directory is +@@ -204,6 +211,16 @@ + } + } + ++#if defined(__FreeBSD__) ++ if ((fe = getfsfile(path_copy))) { ++ fprintf(stderr, ++ "libdvdread: Attempting to use block " ++ "device %s on %s for CSS authentication.\n", ++ fe->fs_spec, ++ fe->fs_file); ++ auth_drive = DVDOpenImageFile(fe->fs_file); ++ } ++#else + mntfile = fopen( MNT_FILE, "r" ); + if( mntfile ) { + #if defined(__sun) +@@ -234,7 +251,7 @@ + #endif + fclose( mntfile ); + } +- ++#endif + free( path_copy ); + + /** +@@ -600,21 +617,39 @@ + + if( offset < dvd_file->title_sizes[ i ] ) { + if( ( offset + block_count ) <= dvd_file->title_sizes[ i ] ) { ++#if defined(__FreeBSD__) ++ lseek(dvd_file->title_fds[i], ++ offset * DVD_VIDEO_LB_LEN, ++ SEEK_SET); ++#else + lseek64( dvd_file->title_fds[ i ], offset + * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET ); ++#endif + ret = read( dvd_file->title_fds[ i ], data, + block_count * DVD_VIDEO_LB_LEN ); + break; + } else { + + /* Read part 1 */ ++#if defined(__FreeBSD__) ++ lseek(dvd_file->title_fds[i], ++ offset * DVD_VIDEO_LB_LEN, ++ SEEK_SET); ++#else + lseek64( dvd_file->title_fds[ i ], offset + * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET ); ++#endif + ret = read( dvd_file->title_fds[ i ], data, + dvd_file->title_sizes[ i ] - offset ); + + /* Read part 2 */ ++#if defined(__FreeBSD__) ++ lseek(dvd_file->title_fds[i + 1], ++ 0, ++ SEEK_SET); ++#else + lseek64( dvd_file->title_fds[ i + 1 ], 0, SEEK_SET ); ++#endif + ret += read( dvd_file->title_fds[ i + 1 ], + &(data[ ( dvd_file->title_sizes[ i ] - offset ) + * DVD_VIDEO_LB_LEN ]), +@@ -653,7 +688,11 @@ + dvd_file->seek_pos = offset; + return offset; + } else { ++#if defined(__FreeBSD__) ++ return lseek(dvd_file->title_fds[0], offset, SEEK_SET); ++#else + return lseek64( dvd_file->title_fds[ 0 ], offset, SEEK_SET ); ++#endif + } + } + diff --git a/multimedia/libdvdread/files/patch-dvdread-dvd_reader.h b/multimedia/libdvdread/files/patch-dvdread-dvd_reader.h new file mode 100644 index 000000000000..03e944f9f6f9 --- /dev/null +++ b/multimedia/libdvdread/files/patch-dvdread-dvd_reader.h @@ -0,0 +1,14 @@ +--- dvdread/dvd_reader.h.orig Mon Jun 18 05:29:13 2001 ++++ dvdread/dvd_reader.h Tue Jun 26 23:30:13 2001 +@@ -20,6 +20,11 @@ + #ifndef DVD_READER_H_INCLUDED + #define DVD_READER_H_INCLUDED + ++#if defined(__FreeBSD__) ++#include <unistd.h> ++typedef off_t off64_t; ++#endif ++ + #include <sys/types.h> + + #ifdef __cplusplus diff --git a/multimedia/libdvdread/files/patch-dvdread-dvd_udf.c b/multimedia/libdvdread/files/patch-dvdread-dvd_udf.c new file mode 100644 index 000000000000..72a8d0ccebd1 --- /dev/null +++ b/multimedia/libdvdread/files/patch-dvdread-dvd_udf.c @@ -0,0 +1,16 @@ +--- dvdread/dvd_udf.c.orig Fri May 25 08:31:22 2001 ++++ dvdread/dvd_udf.c Mon Jun 25 23:33:11 2001 +@@ -461,8 +461,12 @@ + if( fd < 0 ) + return 0; + ++#if defined(__FreeBSD__) ++ lseek(fd, lb_number * DVD_VIDEO_LB_LEN, SEEK_SET); ++#else + lseek64( fd, (int64_t) lb_number * (int64_t) DVD_VIDEO_LB_LEN, SEEK_SET ); +- ++#endif ++ + return read( fd, data, block_count * DVD_VIDEO_LB_LEN ); + } + diff --git a/multimedia/libdvdread/files/patch-src-Makefile.am b/multimedia/libdvdread/files/patch-src-Makefile.am new file mode 100644 index 000000000000..282abb3ad1e5 --- /dev/null +++ b/multimedia/libdvdread/files/patch-src-Makefile.am @@ -0,0 +1,15 @@ +--- src/Makefile.am.orig Fri May 18 06:20:08 2001 ++++ src/Makefile.am Tue Jun 26 00:28:10 2001 +@@ -2,9 +2,9 @@ + noinst_PROGRAMS = ifo_dump play_title title_info + + ifo_dump_SOURCES = ifo_dump.c +-ifo_dump_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl ++ifo_dump_LDADD = $(top_builddir)/dvdread/libdvdread.la + play_title_SOURCES = play_title.c +-play_title_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl ++play_title_LDADD = $(top_builddir)/dvdread/libdvdread.la + title_info_SOURCES = title_info.c +-title_info_LDADD = $(top_builddir)/dvdread/libdvdread.la -ldl ++title_info_LDADD = $(top_builddir)/dvdread/libdvdread.la + diff --git a/multimedia/libdvdread/pkg-comment b/multimedia/libdvdread/pkg-comment new file mode 100644 index 000000000000..c27e0d93fb77 --- /dev/null +++ b/multimedia/libdvdread/pkg-comment @@ -0,0 +1 @@ +DVD player that supports DVD menus diff --git a/multimedia/libdvdread/pkg-descr b/multimedia/libdvdread/pkg-descr new file mode 100644 index 000000000000..3755c48530eb --- /dev/null +++ b/multimedia/libdvdread/pkg-descr @@ -0,0 +1,14 @@ +DVD player that supports DVD menus + +Features : + - Supports DVD menus and navigation. + - Reads from mounted, unmounted DVDs and hard drive. + - Reads encrypted and unencrypted DVDs using libcss. + - A new MPEG2 decoder with both MMX and SUN Solaris mediaLib acceleration. + - Normal X11 and XFree86 Xvideo display support with subpicture overlay. + - Audio and subpicture selection. + - Handles advanced subpicture commands such as fade/scroll and wipe. + - Detects and uses correct aspect for movie and menus. + - Possible to play AC3 via S/PDIF with an external command. + +WWW: http://www.dtek.chalmers.se/groups/dvd/ diff --git a/multimedia/libdvdread/pkg-plist b/multimedia/libdvdread/pkg-plist new file mode 100644 index 000000000000..185c4bf7745b --- /dev/null +++ b/multimedia/libdvdread/pkg-plist @@ -0,0 +1,12 @@ +lib/libdvdread.a +lib/libdvdread.so +lib/libdvdread.so.1 +include/dvdread/dvd_reader.h +include/dvdread/dvd_udf.h +include/dvdread/ifo_types.h +include/dvdread/ifo_read.h +include/dvdread/ifo_print.h +include/dvdread/nav_types.h +include/dvdread/nav_read.h +include/dvdread/nav_print.h +@dirrm include/dvdread |