1
mirror of https://github.com/mpv-player/mpv synced 2024-08-04 14:59:58 +02:00

Streamline and simplify internal vs external libdvdread handling.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20651 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
diego 2006-11-03 22:03:58 +00:00
parent 630302ad63
commit 0384045e30
6 changed files with 61 additions and 98 deletions

View File

@ -114,7 +114,7 @@ endif
ifeq ($(FAME),yes)
PARTS += libfame
endif
ifeq ($(DVDKIT2),yes)
ifeq ($(DVDREAD_INTERNAL),yes)
PARTS += libdvdread
PARTS += libdvdcss
endif
@ -173,7 +173,7 @@ endif
ifeq ($(FAME),yes)
COMMON_DEPS += libfame/libfame.a
endif
ifeq ($(DVDKIT2),yes)
ifeq ($(DVDREAD_INTERNAL),yes)
COMMON_DEPS += libdvdread/libdvdread.a
COMMON_LIBS += libdvdread/libdvdread.a
COMMON_DEPS += libdvdcss/libdvdcss.a

137
configure vendored
View File

@ -241,7 +241,7 @@ Optional features:
--enable-live enable LIVE555 Streaming Media support [autodetect]
--disable-dvdnav disable libdvdnav support [autodetect]
--disable-dvdread Disable libdvdread support [autodetect]
--disable-mpdvdkit Disable mpdvdkit2 support [autodetect]
--disable-dvdread-internal Disable internal libdvdread support [autodetect]
--disable-cdparanoia Disable cdparanoia support [autodetect]
--disable-bitmap-font Disable bitmap font support [enable]
--disable-freetype Disable freetype2 font rendering support [autodetect]
@ -1641,11 +1641,10 @@ _faad_fixed=no
_faac=auto
_ladspa=auto
_xmms=no
_have_dvd=no
_dvdnav=auto
_dvdnavconfig=dvdnav-config
_dvdread=auto
_mpdvdkit=auto
_dvdread_internal=auto
_xanim=auto
_real=auto
_live=auto
@ -1878,8 +1877,8 @@ for ac_option do
--disable-xmms) _xmms=no ;;
--enable-dvdread) _dvdread=yes ;;
--disable-dvdread) _dvdread=no ;;
--enable-mpdvdkit) _mpdvdkit=yes ;;
--disable-mpdvdkit) _mpdvdkit=no ;;
--enable-dvdread-internal) _dvdread_internal=yes ;;
--disable-dvdread-internal) _dvdread_internal=no ;;
--enable-dvdnav) _dvdnav=yes ;;
--disable-dvdnav) _dvdnav=no ;;
--enable-xanim) _xanim=yes ;;
@ -5185,8 +5184,8 @@ if test "$_dvdnav" = yes ; then
_inc_extra="$_inc_extra `$_dvdnavconfig --cflags`"
_inputmodules="dvdnav $_inputmodules"
#disable mpdvdkit and dvdread checks: dvdread will be enabled using dvdnav's version of dvdread
_mpdvdkit=no
#disable dvdread checks: dvdread will be enabled using dvdnav's version of dvdread
_dvdread_internal=no
_dvdread=yes
else
_def_dvdnav='#undef USE_DVDNAV'
@ -5194,47 +5193,22 @@ else
fi
echores "$_dvdnav"
echocheck "DVD support (libmpdvdkit2)"
if test "$_mpdvdkit" = auto ; then
_mpdvdkit=no
if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
_mpdvdkit=yes
fi
fi
if test "$_mpdvdkit" = yes ; then
if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || win32 ; then
_inputmodules="mpdvdkit2 $_inputmodules"
_dvdread=libmpdvdkit2
else
_noinputmodules="mpdvdkit2 $_noinputmodules"
fi
_def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
_def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
_dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
_def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
if linux || netbsd || openbsd || bsdos ; then
_def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
if openbsd ; then
_dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
fi
else
if freebsd ; then
_def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
else
if darwin ; then
_def_dvd_darwin='#define DARWIN_DVD_IOCTL'
_macosx_frameworks="$_macosx_frameworks -framework IOKit"
fi
fi
fi
else
_noinputmodules="mpdvdkit2 $_noinputmodules"
fi
echores "$_mpdvdkit"
echocheck "DVD support (libdvdread)"
if test "$_dvdread" = auto ; then
cat > $TMPC << EOF
echocheck "dvdread"
if test "$_dvdread_internal" = auto ; then
_dvdread_internal=no
if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux && \
test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || \
test "$_hpux_scsi_h" = yes || darwin || win32 ; then
_dvdread_internal=yes
_dvdread=yes
_res_comment="internal"
fi
elif test "$_dvdread" = auto ; then
_dvdread=no
if test "$_dl" = yes; then
cat > $TMPC << EOF
#include <inttypes.h>
#include <dvdread/dvd_reader.h>
#include <dvdread/ifo_types.h>
@ -5242,45 +5216,36 @@ if test "$_dvdread" = auto ; then
#include <dvdread/nav_read.h>
int main(void) { return 0; }
EOF
_dvdread=no
if test "$_dl" = yes; then
cc_check \
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
_dvdread=yes
cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
-ldvdread $_ld_dl && _dvdread=yes && _res_comment="external"
fi
fi
_def_mpdvdkit="#undef USE_MPDVDKIT"
case "$_dvdread" in
yes)
_largefiles=yes
_def_dvdread='#define USE_DVDREAD 1'
if test "$_dvdnav" != yes ; then
_ld_dvdread='-ldvdread'
fi
_inputmodules="dvdread $_inputmodules"
_have_dvd=yes
;;
no)
_def_dvdread='#undef USE_DVDREAD'
_noinputmodules="dvdread $_noinputmodules"
;;
libmpdvdkit2)
_largefiles=yes
_def_dvdread='#define USE_DVDREAD 1'
_noinputmodules="dvdread $_noinputmodules"
_def_mpdvdkit="#define USE_MPDVDKIT 2"
_have_dvd=yes
_dvdread=no
_res_comment="disabled by libmpdvdkit2"
;;
esac
echores "$_dvdread"
if test "$_have_dvd" = yes ; then
_def_have_dvd='#define HAVE_DVD 1'
if test "$_dvdread_internal" = yes; then
_def_dvdread_internal="#define USE_DVDREAD_INTERNAL 1"
_def_dvdread='#define USE_DVDREAD 1'
_inputmodules="dvdread $_noinputmodules"
_largefiles=yes
if linux || netbsd || openbsd || bsdos ; then
_def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
openbsd && _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
elif freebsd ; then
_def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
elif darwin ; then
_def_dvd_darwin='#define DARWIN_DVD_IOCTL'
_macosx_frameworks="$_macosx_frameworks -framework IOKit"
fi
elif test "$_dvdread" = yes; then
_def_dvdread='#define USE_DVDREAD 1'
_inputmodules="dvdread $_inputmodules"
_largefiles=yes
test "$_dvdnav" != yes && _ld_dvdread='-ldvdread'
else
_def_have_dvd='#undef HAVE_DVD'
_def_dvdread_internal="#undef USE_DVDREAD_INTERNAL"
_def_dvdread='#undef USE_DVDREAD'
_noinputmodules="dvdread $_noinputmodules"
fi
echores "$_dvdread"
echocheck "cdparanoia"
@ -7523,9 +7488,8 @@ TV_V4L2 = $_tv_v4l2
TV_BSDBT848 = $_tv_bsdbt848
PVR = $_pvr
VCD = $_vcd
HAVE_DVD = $_have_dvd
DVDREAD = $_dvdread
DVDKIT2 = $_mpdvdkit
DVDREAD_INTERNAL = $_dvdread_internal
DVDNAV = $_dvdnav
WIN32DLL = $_win32
W32_DEP = $_dep_win32
@ -7687,10 +7651,10 @@ $_def_libcdio
/* Indicates that Ogle's libdvdread is available for DVD playback */
$_def_dvdread
/* Indicates that dvdread is from libmpdvdkit */
$_def_mpdvdkit
/* Indicates that dvdread is internal */
$_def_dvdread_internal
/* Additional options for libmpdvdkit*/
/* Additional options for libdvdread/libdvdcss */
$_def_dvd
$_def_cdrom
$_def_cdio
@ -7703,7 +7667,6 @@ $_def_dvd_darwin
$_def_sol_scsi_h
$_def_hpux_scsi_h
$_def_stddef
$_def_have_dvd
/* Common data directory (for fonts, etc) */
#define MPLAYER_DATADIR "$_datadir"

View File

@ -25,7 +25,7 @@ SRCS += stream.c \
stream_mf.c \
stream_null.c \
ifeq ($(HAVE_DVD),yes)
ifeq ($(DVDREAD),yes)
SRCS += stream_dvd.c
endif
ifeq ($(DVDNAV),yes)

View File

@ -84,7 +84,7 @@ extern stream_info_t stream_info_cue;
extern stream_info_t stream_info_null;
extern stream_info_t stream_info_mf;
extern stream_info_t stream_info_file;
#ifdef HAVE_DVD
#ifdef USE_DVDREAD
extern stream_info_t stream_info_dvd;
#endif
@ -131,7 +131,7 @@ stream_info_t* auto_open_streams[] = {
&stream_info_smb,
#endif
&stream_info_cue,
#ifdef HAVE_DVD
#ifdef USE_DVDREAD
&stream_info_dvd,
#endif
#ifdef USE_DVDNAV

View File

@ -742,7 +742,7 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
if(vts_file->vts_pgcit) {
int i;
for(i=0;i<8;i++)
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].present) {
#else
if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i] & 0x8000) {
@ -759,7 +759,7 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
}
d->audio_streams[d->nr_of_channels].language=language;
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
d->audio_streams[d->nr_of_channels].id=vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].s_audio;
#else
d->audio_streams[d->nr_of_channels].id=vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i] >> 8 & 7;
@ -810,7 +810,7 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
d->nr_of_subtitles=0;
for(i=0;i<32;i++)
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].present) {
#else
if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] & 0x80000000) {
@ -830,13 +830,13 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
d->subtitles[ d->nr_of_subtitles ].language=language;
d->subtitles[ d->nr_of_subtitles ].id=d->nr_of_subtitles;
if(video->display_aspect_ratio == 0) /* 4:3 */
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_4p3;
#else
d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] >> 24 & 31;
#endif
else if(video->display_aspect_ratio == 3) /* 16:9 */
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_lbox;
#else
d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] >> 8 & 31;

View File

@ -1,7 +1,7 @@
#ifdef USE_DVDREAD
#ifdef USE_MPDVDKIT
#ifdef USE_DVDREAD_INTERNAL
#include "libdvdread/dvd_reader.h"
#include "libdvdread/ifo_types.h"
#include "libdvdread/ifo_read.h"