summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2007-11-03 23:29:48 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2007-11-03 23:29:48 +0000
commit7626abc51a753ce512843e624d3bb4653ff514ce (patch)
tree3a13d4758a9bea86c5677e936ca88c01f0f39720
parent4eb04918173bb229623e500b376caf391442ac0b (diff)
downloadxine-lib-7626abc51a753ce512843e624d3bb4653ff514ce.tar.gz
xine-lib-7626abc51a753ce512843e624d3bb4653ff514ce.tar.bz2
Allow external libfaad.
-rw-r--r--contrib/libfaad/Makefile.am2
-rwxr-xr-xdebian/rules1
-rw-r--r--m4/decoders.m429
-rw-r--r--src/libxineadec/Makefile.am5
-rw-r--r--src/libxineadec/xine_faad_decoder.c4
5 files changed, 38 insertions, 3 deletions
diff --git a/contrib/libfaad/Makefile.am b/contrib/libfaad/Makefile.am
index 5dc9da0a3..78a39c7c8 100644
--- a/contrib/libfaad/Makefile.am
+++ b/contrib/libfaad/Makefile.am
@@ -4,8 +4,10 @@ AM_CFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
AM_LDFLAGS = $(xineplug_ldflags)
if ENABLE_FAAD
+if !WITH_EXTERNAL_FAAD
noinst_LTLIBRARIES = libfaad.la
endif
+endif
libfaad_la_SOURCES = \
bits.c \
diff --git a/debian/rules b/debian/rules
index c6e8cbd8f..0f38fb778 100755
--- a/debian/rules
+++ b/debian/rules
@@ -68,6 +68,7 @@ CONFIGURE_FLAGS := --prefix=/usr \
--with-external-libmad \
--with-external-a52dec \
--with-external-libdts \
+ --with-external-faad \
--with-freetype \
--with-wavpack \
$(DEB_BUILD_CONFIG_OPTIONS) \
diff --git a/m4/decoders.m4 b/m4/decoders.m4
index fa24359d0..fa008bc10 100644
--- a/m4/decoders.m4
+++ b/m4/decoders.m4
@@ -57,8 +57,35 @@ AC_DEFUN([XINE_DECODER_PLUGINS], [
AC_ARG_ENABLE([faad],
[AS_HELP_STRING([--enable-faad], [Enable support for FAAD decoder (default: enabled)])],
[test x"$enableval" != x"no" && enable_faad="yes"])
+ AC_ARG_WITH([external-faad],
+ [AS_HELP_STRING([--with-external-faad], [Use external FAAD decoeder])],
+ [test x"$withval" != x"no" && with_external_faad="yes"], [with_external_faad="no"])
+ if test x"$enable_faad" != x"no"; then
+ if test x"$with_external_faad" != x"no"; then
+ AC_CHECK_LIB([faad], [NeAACDecInit],
+ [AC_CHECK_HEADERS([neaacdec.h], [have_external_faad=yes], [have_external_faad=no],
+ [#include <neaacdec.h>])], [have_external_faad=no], [-lm])
+ if test x"$have_external_faad" = x"no"; then
+ AC_MSG_RESULT([*** no usable version of libfaad found, using internal copy ***])
+ fi
+ else
+ AC_MSG_RESULT([Using included libfaad support])
+ fi
+ if test x"$have_external_faad" = x"yes"; then
+ FAAD_CFLAGS=''
+ FAAD_LIBS='-lfaad'
+ FAAD_DEPS=''
+ else
+ FAAD_CFLAGS='-I$(top_srcdir)/contrib/libfaad'
+ FAAD_LIBS='$(top_builddir)/contrib/libfaad/libfaad.la'
+ FAAD_DEPS='$(top_builddir)/contrib/libfaad/libfaad.la'
+ fi
+ AC_SUBST(FAAD_CFLAGS)
+ AC_SUBST(FAAD_DEPS)
+ AC_SUBST(FAAD_LIBS)
+ fi
AM_CONDITIONAL([ENABLE_FAAD], [test x"$enable_faad" != x"no"])
-
+ AM_CONDITIONAL([WITH_EXTERNAL_FAAD], [test x"$have_external_faad" = x"yes"])
dnl ffmpeg (required; external version allowed)
AC_ARG_WITH([external-ffmpeg],
diff --git a/src/libxineadec/Makefile.am b/src/libxineadec/Makefile.am
index 0680f8196..a85497bbf 100644
--- a/src/libxineadec/Makefile.am
+++ b/src/libxineadec/Makefile.am
@@ -80,5 +80,6 @@ xineplug_decode_a52_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(A52DEC_LIBS) -lm
xineplug_decode_a52_la_CFLAGS = $(AM_CFLAGS) $(A52DEC_CFLAGS)
xineplug_decode_faad_la_SOURCES = xine_faad_decoder.c
-xineplug_decode_faad_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(top_builddir)/contrib/libfaad/libfaad.la -lm
-xineplug_decode_faad_la_CPPFLAGS = -I$(top_srcdir)/contrib/libfaad
+xineplug_decode_faad_la_DEPENDENCIES = $(FAAD_DEPS)
+xineplug_decode_faad_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(FAAD_LIBS) -lm
+xineplug_decode_faad_la_CFLAGS = $(FAAD_CFLAGS)
diff --git a/src/libxineadec/xine_faad_decoder.c b/src/libxineadec/xine_faad_decoder.c
index de2e96177..2892dbe75 100644
--- a/src/libxineadec/xine_faad_decoder.c
+++ b/src/libxineadec/xine_faad_decoder.c
@@ -38,10 +38,14 @@
#include "audio_out.h"
#include "buffer.h"
#include "xineutils.h"
+#ifdef HAVE_NEAACDEC_H
+#include <neaacdec.h>
+#else
#include "common.h"
#include "structs.h"
#include "decoder.h"
#include "syntax.h"
+#endif
#define FAAD_MIN_STREAMSIZE 768 /* 6144 bits/channel */