summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-29 00:47:48 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-05-29 00:47:48 +0000
commit6960cf68d485d61bf2383d7029ab232eb6313606 (patch)
tree1723017ff6ceac6b1bf078407389516422ee419c
parentdd396b2d74bcfc23dd4b0c4869afe2d8bb7f926e (diff)
downloadxine-lib-6960cf68d485d61bf2383d7029ab232eb6313606.tar.gz
xine-lib-6960cf68d485d61bf2383d7029ab232eb6313606.tar.bz2
added --with-external-a52dec and --with-external-libmad switches
thanks Diego 'Flameeyes' Petten CVS patchset: 7589 CVS date: 2005/05/29 00:47:48
-rw-r--r--AUTHORS3
-rw-r--r--ChangeLog1
-rw-r--r--configure.ac66
-rw-r--r--src/liba52/Makefile.am20
-rw-r--r--src/liba52/xine_decoder.c19
-rw-r--r--src/libmad/Makefile.am18
-rw-r--r--src/libmad/xine_decoder.c7
7 files changed, 122 insertions, 12 deletions
diff --git a/AUTHORS b/AUTHORS
index 0588b7ea4..7eba3282a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -547,5 +547,8 @@ Keenan Pepper <keenanpepper@gmail.com>
Dams Nadé <anvil@livna.org>
gcc4 patches
+
+Diego 'Flameeyes' Pettenò <flameeyes@gentoo.org>
+ build system improvements, LE_64/BE_64 macro fixes
(let us know if we've forgotten anyone)
diff --git a/ChangeLog b/ChangeLog
index a077482d7..e09ce1d6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@ xine-lib (1.1)
* new quality deinterlacer from dscaler: GreedyH (Greedy High Motion)
* new quality deinterlacer from dscaler: TomsMoComp (Tom's Motion Compensated)
* added help for most deinterlace methods
+ * added --with-external-a52dec and --with-external-libmad switches
xine-lib (1.0.2)
* fixed xxmc / xvmc mocomp / IDCT rendering errors caused by the big update.
diff --git a/configure.ac b/configure.ac
index 9dc4ae2c7..e895d292e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1036,6 +1036,65 @@ AM_PATH_LIBFLAC([],
AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
+dnl ---------------------------------------------
+dnl External version of a52dec
+dnl ---------------------------------------------
+
+AC_ARG_WITH(external-a52dec, AC_HELP_STRING([--with-external-a52dec], [use external a52dec library (not recommended)]),
+ [external_a52dec="$withval"], [external_a52dec="no"])
+
+have_a52="no"
+
+if test x"$external_a52dec" = "xyes"; then
+ have_a52="yes"
+ AC_CHECK_HEADERS([a52dec/a52.h a52dec/a52_internal.h],, have_a52="no",
+[
+ #ifdef HAVE_SYS_TYPES_H
+ # include <sys/types.h>
+ #endif
+ #ifdef HAVE_INTTYPES_H
+ # include <inttypes.h>
+ #endif
+ #ifdef HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+
+ #include <a52dec/a52.h>
+])
+ SAVE_LIBS="$LIBS"
+ AC_CHECK_LIB([a52], [a52_init],, have_a52="no", [-lm])
+ LIBS="$SAVE_LIBS"
+
+ if test "x$have_a52" = "xno"; then
+ AC_MSG_RESULT([*** no usable version of a52dec found, using internal copy ***])
+ fi
+else
+ AC_MSG_RESULT([Use included a52dec support])
+fi
+
+AM_CONDITIONAL(EXTERNAL_A52DEC, test x"$have_a52" = "xyes")
+
+dnl ---------------------------------------------
+dnl External version of libmad
+dnl ---------------------------------------------
+
+AC_ARG_WITH(external-libmad, AC_HELP_STRING([--with-external-libmad], [use external libmad library (not recommended)]),
+ [external_libmad="$withval"], [external_libmad="no"])
+
+have_mad="no"
+if test x"$external_libmad" = "xyes"; then
+ PKG_CHECK_MODULES(LIBMAD, [mad], have_mad=yes, have_mad=no)
+ AC_CHECK_HEADERS([mad.h])
+ AC_SUBST(LIBMAD_LIBS)
+ AC_SUBST(LIBMAD_CFLAGS)
+ if test "x$have_mad" = "xno"; then
+ AC_MSG_RESULT([*** no usable version of libmad found, using internal copy ***])
+ fi
+else
+ AC_MSG_RESULT([Use included libmad support])
+fi
+
+AM_CONDITIONAL(EXTERNAL_LIBMAD, test x"$have_mad" = "xyes")
dnl ---------------------------------------------
dnl MNG libs.
@@ -2416,7 +2475,7 @@ echo " - interplay mve - psx str"
echo " - ws aud - pva"
echo " - vox - nsf"
echo " - nsv - 4xm"
-echo " - ac3 - aac"
+echo " - aac"
echo " - iff - matroska"
echo " - vmd - flv"
if test x"$enable_asf" = "xyes"; then
@@ -2431,6 +2490,11 @@ fi
if test x"$have_modplug" = x"yes"; then
echo " - mod"
fi
+if test x"$have_a52" = x"yes"; then
+ echo " - ac3 (external library)"
+else
+ echo " - ac3 (internal library)"
+fi
echo ""
dnl video decoders
diff --git a/src/liba52/Makefile.am b/src/liba52/Makefile.am
index 6857bcea3..d786ab250 100644
--- a/src/liba52/Makefile.am
+++ b/src/liba52/Makefile.am
@@ -4,16 +4,28 @@ libdir = $(XINE_PLUGINDIR)
lib_LTLIBRARIES = xineplug_decode_a52.la
-xineplug_decode_a52_la_SOURCES = \
+if EXTERNAL_A52DEC
+internal_sources =
+else
+internal_sources = \
bitstream.c \
bit_allocate.c \
- crc.c \
downmix.c \
imdct.c \
- parse.c \
- xine_decoder.c
+ parse.c
+endif
+
+xineplug_decode_a52_la_SOURCES = \
+ crc.c \
+ xine_decoder.c \
+ $(internal_sources)
+if EXTERNAL_A52DEC
+xineplug_decode_a52_la_LIBADD = $(XINE_LIB) -la52 -lm
+else
xineplug_decode_a52_la_LIBADD = $(XINE_LIB)
+endif
+
xineplug_decode_a52_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@
noinst_HEADERS = \
diff --git a/src/liba52/xine_decoder.c b/src/liba52/xine_decoder.c
index 74998e50e..3b5018268 100644
--- a/src/liba52/xine_decoder.c
+++ b/src/liba52/xine_decoder.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_decoder.c,v 1.75 2005/05/28 11:24:35 jstembridge Exp $
+ * $Id: xine_decoder.c,v 1.76 2005/05/29 00:47:48 miguelfreitas Exp $
*
* stuff needed to turn liba52 into a xine decoder plugin
*/
@@ -29,6 +29,8 @@
/* avoid compiler warnings */
#define _BSD_SOURCE 1
+#include <config.h>
+
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
@@ -46,8 +48,19 @@
#include "xine_internal.h"
#include "audio_out.h"
-#include "a52.h"
-#include "a52_internal.h"
+
+#ifdef HAVE_A52DEC_A52_H
+# include <a52dec/a52.h>
+#else
+# include "a52.h"
+#endif
+
+#ifdef HAVE_A52DEC_A52_INTERNAL_H
+# include <a52dec/a52_internal.h>
+#else
+# include "a52_internal.h"
+#endif
+
#include "buffer.h"
#include "xineutils.h"
diff --git a/src/libmad/Makefile.am b/src/libmad/Makefile.am
index 4d4d4a3d7..cf34f36f5 100644
--- a/src/libmad/Makefile.am
+++ b/src/libmad/Makefile.am
@@ -8,7 +8,10 @@ libdir = $(XINE_PLUGINDIR)
lib_LTLIBRARIES = xineplug_decode_mad.la
-xineplug_decode_mad_la_SOURCES = \
+if EXTERNAL_LIBMAD
+internal_sources =
+else
+internal_sources = \
bit.c \
fixed.c \
frame.c \
@@ -18,10 +21,19 @@ xineplug_decode_mad_la_SOURCES = \
stream.c \
synth.c \
timer.c \
- version.c \
- xine_decoder.c
+ version.c
+endif
+
+xineplug_decode_mad_la_SOURCES = \
+ xine_decoder.c \
+ $(internal_sources)
+if EXTERNAL_LIBMAD
+xineplug_decode_mad_la_LIBADD = $(XINE_LIB) $(LIBMAD_LIBS)
+xineplug_decode_mad_la_CFLAGS = $(LIBMAD_CFLAGS)
+else
xineplug_decode_mad_la_LIBADD = $(XINE_LIB)
+endif
xineplug_decode_mad_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@
noinst_HEADERS = \
diff --git a/src/libmad/xine_decoder.c b/src/libmad/xine_decoder.c
index 415a4dd74..4b1cdd11c 100644
--- a/src/libmad/xine_decoder.c
+++ b/src/libmad/xine_decoder.c
@@ -17,13 +17,18 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_decoder.c,v 1.53 2004/12/16 13:59:11 mroi Exp $
+ * $Id: xine_decoder.c,v 1.54 2005/05/29 00:47:48 miguelfreitas Exp $
*
* stuff needed to turn libmad into a xine decoder plugin
*/
#include <stdlib.h>
#include <string.h>
+#include <config.h>
+
+#ifdef HAVE_MAD_H
+#include <mad.h>
+#endif
#define LOG_MODULE "mad_decoder"
#define LOG_VERBOSE