mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-02 16:52:42 +00:00
faad: simplify configure check and require faad >= 2.7
Just check whether LATM is defined which is only available in 2.7 and later. Allows us to simplify the configure check a little and we can get rid of some hackish workarounds for problems with earlier version headers.
This commit is contained in:
parent
0770fa4ed5
commit
861ca5ab7b
4 changed files with 16 additions and 102 deletions
61
configure.ac
61
configure.ac
|
@ -2159,60 +2159,27 @@ AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
|
||||||
AC_SUBST(FAAC_LIBS)
|
AC_SUBST(FAAC_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl **** Free AAC Decoder (FAAD) ****
|
dnl **** Free AAC Decoder (FAAD2) ****
|
||||||
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
|
||||||
AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
|
AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
|
||||||
HAVE_FAAD="yes"
|
AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
|
||||||
faad_hdr=""
|
|
||||||
AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
|
|
||||||
FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
|
|
||||||
if test $HAVE_FAAD = "no"; then
|
|
||||||
AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
|
|
||||||
[ FAAD_LIBS="-lfaad $LIBM"
|
|
||||||
AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
|
|
||||||
faad_hdr="neaacdec.h"
|
|
||||||
], [
|
|
||||||
HAVE_FAAD="no"
|
|
||||||
],)
|
|
||||||
else
|
|
||||||
faad_hdr="faad.h"
|
|
||||||
fi
|
|
||||||
if test $HAVE_FAAD = "yes"; then
|
|
||||||
AC_MSG_CHECKING([Checking for FAAD >= 2.0])
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
|
||||||
#if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
|
#if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
|
||||||
#error Not faad2
|
#error Not faad2
|
||||||
#else
|
#elif !defined(LATM)
|
||||||
/* Release candidate of 2.0 is not good enough for us. This field
|
#error Not faad2 >= 2.7
|
||||||
* was added only in 2.0 final and does not exist in 2.0-RC3 */
|
#endif
|
||||||
faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
|
|
||||||
#endif
|
|
||||||
]])],[
|
]])],[
|
||||||
HAVE_FAAD="yes"
|
HAVE_FAAD="yes"
|
||||||
|
FAAD_LIBS="-lfaad"
|
||||||
AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
|
], [
|
||||||
for minor in 10 9 8 7 6 5 0; do
|
AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
|
||||||
if test x$faad2_minor_version = "x"; then
|
|
||||||
AC_EGREP_CPP([\"2\.$minor\"$], [
|
|
||||||
#include <$faad_hdr>
|
|
||||||
FAAD2_VERSION
|
|
||||||
], [
|
|
||||||
faad2_minor_version=$minor
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test x$faad2_minor_version = "x"; then
|
|
||||||
AC_MSG_RESULT([no idea])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([2.$faad2_minor_version])
|
|
||||||
AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
|
|
||||||
fi
|
|
||||||
],[
|
|
||||||
HAVE_FAAD="no"
|
HAVE_FAAD="no"
|
||||||
])
|
])
|
||||||
fi
|
], [
|
||||||
|
HAVE_FAAD="no"
|
||||||
|
])
|
||||||
AC_SUBST(FAAD_LIBS)
|
AC_SUBST(FAAD_LIBS)
|
||||||
AC_SUBST(FAAD_IS_NEAAC)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl *** fbdev ***
|
dnl *** fbdev ***
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
plugin_LTLIBRARIES = libgstfaad.la
|
plugin_LTLIBRARIES = libgstfaad.la
|
||||||
|
|
||||||
libgstfaad_la_SOURCES = gstfaad.c
|
libgstfaad_la_SOURCES = gstfaad.c
|
||||||
libgstfaad_la_CFLAGS = -DGST_USE_UNSTABLE_API \
|
libgstfaad_la_CFLAGS = \
|
||||||
$(GST_PLUGINS_BASE_CFLAGS) \
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
||||||
$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FAAD_CFLAGS)
|
$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FAAD_CFLAGS)
|
||||||
libgstfaad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ \
|
libgstfaad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ \
|
||||||
$(GST_BASE_LIBS) $(GST_LIBS) $(FAAD_LIBS)
|
$(GST_BASE_LIBS) $(GST_LIBS) $(FAAD_LIBS) $(LIBM)
|
||||||
libgstfaad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
libgstfaad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
||||||
libgstfaad_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
|
libgstfaad_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
|
||||||
|
|
||||||
|
|
|
@ -42,49 +42,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <gst/audio/audio.h>
|
#include <gst/audio/audio.h>
|
||||||
|
|
||||||
/* These are the correct types for these functions, as defined in the source,
|
|
||||||
* with types changed to match glib types, since those are defined for us.
|
|
||||||
* However, upstream FAAD is distributed with a broken header file that defined
|
|
||||||
* these wrongly (in a way which was broken on 64 bit systems).
|
|
||||||
*
|
|
||||||
* Upstream CVS still has the bug, but has also renamed all the public symbols
|
|
||||||
* for Better Corporate Branding (or whatever), so we need to take that
|
|
||||||
* (FAAD_IS_NEAAC) into account as well.
|
|
||||||
*
|
|
||||||
* We must call them using these definitions. Most distributions now have the
|
|
||||||
* corrected header file (they distribute a patch along with the source),
|
|
||||||
* but not all, hence this Truly Evil Hack.
|
|
||||||
*
|
|
||||||
* Note: The prototypes don't need to be defined conditionaly, as the cpp will
|
|
||||||
* do that for us.
|
|
||||||
*/
|
|
||||||
#if FAAD2_MINOR_VERSION < 7
|
|
||||||
#ifdef FAAD_IS_NEAAC
|
|
||||||
#define NeAACDecInit NeAACDecInit_no_definition
|
|
||||||
#define NeAACDecInit2 NeAACDecInit2_no_definition
|
|
||||||
#else
|
|
||||||
#define faacDecInit faacDecInit_no_definition
|
|
||||||
#define faacDecInit2 faacDecInit2_no_definition
|
|
||||||
#endif
|
|
||||||
#endif /* FAAD2_MINOR_VERSION < 7 */
|
|
||||||
|
|
||||||
#include "gstfaad.h"
|
#include "gstfaad.h"
|
||||||
|
|
||||||
#if FAAD2_MINOR_VERSION < 7
|
|
||||||
#ifdef FAAD_IS_NEAAC
|
|
||||||
#undef NeAACDecInit
|
|
||||||
#undef NeAACDecInit2
|
|
||||||
#else
|
|
||||||
#undef faacDecInit
|
|
||||||
#undef faacDecInit2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern long faacDecInit (faacDecHandle, guint8 *, guint32, guint32 *, guint8 *);
|
|
||||||
extern gint8 faacDecInit2 (faacDecHandle, guint8 *, guint32,
|
|
||||||
guint32 *, guint8 *);
|
|
||||||
|
|
||||||
#endif /* FAAD2_MINOR_VERSION < 7 */
|
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (faad_debug);
|
GST_DEBUG_CATEGORY_STATIC (faad_debug);
|
||||||
#define GST_CAT_DEFAULT faad_debug
|
#define GST_CAT_DEFAULT faad_debug
|
||||||
|
|
||||||
|
@ -277,11 +236,7 @@ gst_faad_set_format (GstAudioDecoder * dec, GstCaps * caps)
|
||||||
faad->packetised = FALSE;
|
faad->packetised = FALSE;
|
||||||
|
|
||||||
if ((value = gst_structure_get_value (str, "codec_data"))) {
|
if ((value = gst_structure_get_value (str, "codec_data"))) {
|
||||||
#if FAAD2_MINOR_VERSION >= 7
|
|
||||||
unsigned long samplerate;
|
unsigned long samplerate;
|
||||||
#else
|
|
||||||
guint32 samplerate;
|
|
||||||
#endif
|
|
||||||
guint8 channels;
|
guint8 channels;
|
||||||
|
|
||||||
/* We have codec data, means packetised stream */
|
/* We have codec data, means packetised stream */
|
||||||
|
@ -691,11 +646,7 @@ gst_faad_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
|
||||||
init:
|
init:
|
||||||
/* init if not already done during capsnego */
|
/* init if not already done during capsnego */
|
||||||
if (!faad->init) {
|
if (!faad->init) {
|
||||||
#if FAAD2_MINOR_VERSION >= 7
|
|
||||||
unsigned long rate;
|
unsigned long rate;
|
||||||
#else
|
|
||||||
guint32 rate;
|
|
||||||
#endif
|
|
||||||
guint8 ch;
|
guint8 ch;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (faad, "initialising ...");
|
GST_DEBUG_OBJECT (faad, "initialising ...");
|
||||||
|
|
|
@ -23,11 +23,7 @@
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <gst/audio/gstaudiodecoder.h>
|
#include <gst/audio/gstaudiodecoder.h>
|
||||||
|
|
||||||
#ifdef FAAD_IS_NEAAC
|
|
||||||
#include <neaacdec.h>
|
#include <neaacdec.h>
|
||||||
#else
|
|
||||||
#include <faad.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue