mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 04:00:37 +00:00
e28b123608
The dc1394src is a PushSrc element for IIDC cameras based on libdc1394. The implementation from the 0.x series is deffective: caps negotiation does not work, and some video formats provided by the camera are not supported. Refactor the code to port it to 1.X and enhance the support for the full set of video options of IIDC cameras: - The IIDC specification includes a set of camera video modes (video format, frame size, and frame rates). They do not map perfectly to Gstreamer formats, but those that do not match are very rare (if used at all by any camera). In addition, although the specification includes a raw format, some cameras use mono video formats to capture in Bayer format. Map corresponding video modes to Gstreamer formats in capabilities, allowing both gray raw and Bayer video formats for mono video modes. - The specification includes scalable video modes (Format7), where the frame size and rate can be set to arbitrary values (within the limits of the camera and the bus transport). Allow the use of such mode, using the frame size and rate from the negotiatied caps, and set the camera frame rate adjusting the packet size as in: <http://damien.douxchamps.net/ieee1394/libdc1394/faq/#How_do_I_set_the_frame_rate> The scalable modes also allow for a custom ROI offset. Support for it can be easily added later using properties. - Camera operation using libdc1394 is as follows: 1. Enumerate cameras on the system and open the camera identified the enumeration index or by a GUID (64bit hex code). 2. Query the video formats supported by the camera. 3. Configure the camera for the desired video format. 4. Setup the capture resources for the configured video format and start the camera transmission. 5. Capture frames from the camera and release them when not used. 6. Stop the camera transmission and clear the capture resources. 7. Close the camera freeing its resources. Do steps 2 and 3 when getting and setting the caps respectively. Ideally 4 and 6 would be done when going from PAUSED to PLAYING and viceversa, but since caps might not be set yet, the video mode is not properly configured leaving the camera in a broken state. Hence, setup capture and start transmission in the set caps method, and consequently clear the capture and stop the transmission when going from PAUSED to READY (instead of PLAYING to PAUSED). Symmetrycally, open the camera when going from READY to PAUSED, allowing to probe the camera caps in the negotiation stage. Implement that using the `start` and `stop` methods of `GstBaseSrc`, instead of the `change-state` method of `GstElement`. Stop the camera before setting new caps and restarting it again to handle caps reconfiguration while in PLAYING (it has no effect if the camera is not started). - Create buffers copying the bytes of the captured frames. Alternatively, the buffers could just wrap the bytes of the frames, releasing the frame in the buffer's destroy notify function, if all buffers were destroyed before going from PLAYING to PAUSED. - No timestamp nor offset is set when creating buffers. Timestamping is delegated to the parent class BaseSrc, setting `gst_base_src_set_live` TRUE, `gst_base_src_set_format` with GST_FORMAT_TIME and `gst_base_src_set_do_timestamp`. Captured frames have a timestamp field with the system time at the completion of the transmission of the frame, but it is not sure that this comes from a monotonic clock, and it seems to be left NULL in Windows. - Use GUID and unit properties to select the camera to operate on. The camera number used in version 0.X does not uniquely identify the device (it depends on the set of cameras currently detected). Since the GUID is 64bit identifier (same as MAC address), handle it with a string property with its hexadecimal representation. For practicality, operate on the first camera available if the GUID is null (default) and match any camera unit number if unit is -1. Alternatively, the GUID could be handed with an unsigned 64 bit integer type property, using `0xffffffffffffffff` as default value to select the first camera available (it is not a valid GUID value). - Keep name `GstDc1394` and prefix `gst_dc1394` as in version 0.X, although `GstDC1394Src` and `gst_dc1394_src` are more descriptive. - Adjust build files to reenable the compilation of the plugin. Remove dc1394 from the list of unported plugins in configure.ac. Add the missing flags and libraries to Makefile. Use `$()` for variable substitution, as many plugins do, although other plugins use `@@` instead. https://bugzilla.gnome.org/show_bug.cgi?id=763026
3819 lines
115 KiB
Text
3819 lines
115 KiB
Text
AC_PREREQ([2.69])
|
|
|
|
dnl initialize autoconf
|
|
dnl when going to/from release please set the nano (fourth number) right !
|
|
dnl releases only do Wall, git and prerelease does Werror too
|
|
AC_INIT([GStreamer Bad Plug-ins],[1.9.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
|
|
|
|
AG_GST_INIT
|
|
|
|
dnl initialize automake
|
|
AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
|
|
|
|
dnl define PACKAGE_VERSION_* variables
|
|
AS_VERSION
|
|
|
|
dnl check if this is a release version
|
|
AS_NANO(GST_GIT="no", GST_GIT="yes")
|
|
|
|
dnl can autoconf find the source ?
|
|
AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
|
|
|
|
dnl define the output header for config
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
|
|
AM_MAINTAINER_MODE([enable])
|
|
|
|
dnl sets host_* variables
|
|
AC_CANONICAL_HOST
|
|
|
|
dnl use pretty build output with automake >= 1.11
|
|
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
|
|
[AM_DEFAULT_VERBOSITY=1
|
|
AC_SUBST(AM_DEFAULT_VERBOSITY)])
|
|
|
|
dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
|
|
m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
|
|
|
|
dnl our libraries and install dirs use GST_API_VERSION in the filename
|
|
dnl to allow side-by-side installation of different API versions
|
|
GST_API_VERSION=1.0
|
|
AC_SUBST(GST_API_VERSION)
|
|
AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
|
|
[GStreamer API Version])
|
|
|
|
AG_GST_LIBTOOL_PREPARE
|
|
|
|
dnl CURRENT, REVISION, AGE
|
|
dnl - library source changed -> increment REVISION
|
|
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
|
|
dnl - interfaces added -> increment AGE
|
|
dnl - interfaces removed -> AGE = 0
|
|
dnl sets GST_LT_LDFLAGS
|
|
AS_LIBTOOL(GST, 900, 0, 900)
|
|
|
|
dnl *** required versions of GStreamer stuff ***
|
|
GST_REQ=1.9.0.1
|
|
GSTPB_REQ=1.9.0.1
|
|
|
|
dnl *** autotools stuff ****
|
|
|
|
dnl allow for different autotools
|
|
AS_AUTOTOOLS_ALTERNATE
|
|
|
|
dnl Add parameters for aclocal
|
|
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
|
|
|
|
dnl set up gettext
|
|
dnl the version check needs to stay here because autopoint greps for it
|
|
AM_GNU_GETTEXT_VERSION([0.17])
|
|
AM_GNU_GETTEXT([external])
|
|
AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
|
|
|
|
dnl *** check for arguments to configure ***
|
|
|
|
AG_GST_ARG_DISABLE_FATAL_WARNINGS
|
|
AG_GST_ARG_ENABLE_EXTRA_CHECKS
|
|
|
|
AG_GST_ARG_DEBUG
|
|
AG_GST_ARG_PROFILING
|
|
AG_GST_ARG_VALGRIND
|
|
AG_GST_ARG_GCOV
|
|
|
|
AG_GST_ARG_EXAMPLES
|
|
|
|
AG_GST_ARG_WITH_PKG_CONFIG_PATH
|
|
AG_GST_ARG_WITH_PACKAGE_NAME
|
|
AG_GST_ARG_WITH_PACKAGE_ORIGIN
|
|
|
|
AG_GST_ARG_WITH_PLUGINS
|
|
|
|
AG_GST_ARG_ENABLE_EXTERNAL
|
|
|
|
AG_GST_ARG_ENABLE_EXPERIMENTAL
|
|
|
|
AG_GST_PKG_CONFIG_PATH
|
|
|
|
dnl *** checks for platform ***
|
|
AG_GST_PLATFORM
|
|
|
|
dnl * hardware/architecture *
|
|
|
|
dnl common/m4/gst-arch.m4
|
|
dnl check CPU type
|
|
AG_GST_ARCH
|
|
|
|
dnl Determine endianness
|
|
AC_C_BIGENDIAN
|
|
|
|
dnl *** checks for programs ***
|
|
|
|
dnl find a compiler
|
|
AC_PROG_CC
|
|
AC_PROG_CC_STDC
|
|
|
|
dnl determine c++ compiler
|
|
AC_PROG_CXX
|
|
dnl determine if c++ is available on this system
|
|
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
|
|
|
|
AC_PROG_OBJC
|
|
|
|
dnl check if the compiler supports '-c' and '-o' options
|
|
AM_PROG_CC_C_O
|
|
|
|
dnl check if the compiler supports do while(0) macros
|
|
AG_GST_CHECK_DOWHILE_MACROS
|
|
|
|
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
|
|
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
|
|
|
|
dnl check for gobject-introspection
|
|
GOBJECT_INTROSPECTION_CHECK([1.31.1])
|
|
|
|
dnl check for documentation tools
|
|
GTK_DOC_CHECK([1.12])
|
|
AG_GST_PLUGIN_DOCS([1.12])
|
|
|
|
dnl *** checks for libraries ***
|
|
|
|
dnl check for libm, for sin() etc.
|
|
LT_LIB_M
|
|
AC_SUBST(LIBM)
|
|
|
|
AC_FUNC_MMAP
|
|
|
|
dnl check for pthreads
|
|
AX_PTHREAD
|
|
|
|
dnl *** checks for header files ***
|
|
|
|
AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
|
|
AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
|
|
|
|
if test "x$HAVE_UNISTD_H" != "xyes"; then
|
|
GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
|
|
fi
|
|
|
|
AC_CHECK_HEADERS([sys/time.h])
|
|
|
|
dnl used by ext/dts
|
|
AX_CREATE_STDINT_H
|
|
|
|
AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
|
|
AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
|
|
|
|
if test "x$HAVE_PTHREAD_H" != "xyes"; then
|
|
GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
|
|
fi
|
|
|
|
dnl *** checks for types/defines ***
|
|
|
|
dnl Check for FIONREAD ioctl declaration
|
|
dnl used in gst/dccp
|
|
GST_CHECK_FIONREAD
|
|
|
|
dnl *** checks for structures ***
|
|
|
|
dnl *** checks for compiler characteristics ***
|
|
|
|
dnl *** checks for library functions ***
|
|
AC_CHECK_FUNCS([gmtime_r])
|
|
|
|
dnl *** checks for headers ***
|
|
AC_CHECK_HEADERS([sys/utsname.h])
|
|
|
|
dnl *** checks for dependency libraries ***
|
|
|
|
dnl *** checks for socket and nsl libraries ***
|
|
AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
|
|
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
|
|
|
|
dnl GLib is required
|
|
GLIB_REQ=2.40.0
|
|
AG_GST_GLIB_CHECK([$GLIB_REQ])
|
|
|
|
dnl checks for gstreamer
|
|
dnl uninstalled is selected preferentially -- see pkg-config(1)
|
|
AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
|
|
AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
|
|
AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
|
|
AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
|
|
AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
|
|
AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
|
|
|
|
AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
|
|
|
|
dnl check for uninstalled plugin directories for unit tests
|
|
AG_GST_CHECK_UNINSTALLED_SETUP([
|
|
AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
|
|
AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
|
|
AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
|
|
])
|
|
|
|
dnl Check for documentation xrefs
|
|
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
|
|
GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
|
|
GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
|
|
AC_SUBST(GLIB_PREFIX)
|
|
AC_SUBST(GST_PREFIX)
|
|
AC_SUBST(GSTPB_PREFIX)
|
|
|
|
dnl GTK is optional and used in examples
|
|
HAVE_GTK=NO
|
|
GTK2_REQ=2.14.0
|
|
GTK3_REQ=2.91.3
|
|
if test "x$BUILD_EXAMPLES" = "xyes"; then
|
|
AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
|
|
AC_ARG_WITH([gtk],
|
|
AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
|
|
[case "$with_gtk" in
|
|
2.0) GTK_REQ=$GTK2_REQ ;;
|
|
3.0) GTK_REQ=$GTK3_REQ ;;
|
|
*) AC_MSG_ERROR([invalid gtk+ version specified]);;
|
|
esac],
|
|
[with_gtk=2.0
|
|
GTK_REQ=$GTK2_REQ])
|
|
AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
|
|
PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
|
|
AC_SUBST(GTK_LIBS)
|
|
AC_SUBST(GTK_CFLAGS)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
|
|
|
|
dnl Check for -Bsymbolic-functions linker flag used to avoid
|
|
dnl intra-library PLT jumps, if available.
|
|
AC_ARG_ENABLE(Bsymbolic,
|
|
[AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
|
|
[SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
|
|
AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
|
|
LDFLAGS=-Wl,-Bsymbolic-functions
|
|
LIBS=
|
|
AC_TRY_LINK([], [return 0],
|
|
AC_MSG_RESULT(yes)
|
|
enable_Bsymbolic=yes,
|
|
AC_MSG_RESULT(no)
|
|
enable_Bsymbolic=no)
|
|
LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
|
|
|
|
dnl *** set variables based on configure arguments ***
|
|
|
|
dnl GTK is optional and used in examples
|
|
HAVE_GTK3=NO
|
|
if test "x$BUILD_EXAMPLES" = "xyes"; then
|
|
PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
|
|
if test "x$HAVE_GTK3" = "xyes"; then
|
|
HAVE_GTK=yes
|
|
GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
|
|
AC_SUBST(GTK_VERSION)
|
|
GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
|
|
AC_SUBST(GTK_BASE_DIR)
|
|
fi
|
|
fi
|
|
AC_SUBST(GTK3_LIBS)
|
|
AC_SUBST(GTK3_CFLAGS)
|
|
AC_SUBST(HAVE_GTK3)
|
|
AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
|
|
|
|
dnl clutter is optional and used in examples
|
|
HAVE_CLUTTER=no
|
|
HAVE_CLUTTER_X11=no
|
|
HAVE_CLUTTER_GLX=no
|
|
if test "x$BUILD_EXAMPLES" = "xyes"; then
|
|
PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
|
|
AC_SUBST(CLUTTER_LIBS)
|
|
AC_SUBST(CLUTTER_CFLAGS)
|
|
AC_SUBST(HAVE_CLUTTER)
|
|
|
|
PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
|
|
AC_SUBST(CLUTTER_GLX_LIBS)
|
|
AC_SUBST(CLUTTER_GLX_CFLAGS)
|
|
AC_SUBST(HAVE_CLUTTER_GLX)
|
|
|
|
PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
|
|
AC_SUBST(CLUTTER_X11_LIBS)
|
|
AC_SUBST(CLUTTER_X11_CFLAGS)
|
|
AC_SUBST(HAVE_CLUTTER_X11)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
|
|
AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
|
|
AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
|
|
|
|
dnl used in the gl/clutteractor example
|
|
if test "x$BUILD_EXAMPLES" = "xyes"; then
|
|
PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
|
|
AC_SUBST(XCOMPOSITE_CFLAGS)
|
|
AC_SUBST(XCOMPOSITE_LIBS)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
|
|
|
|
dnl graphene-1.0 is optional and used in gltransformation
|
|
HAVE_GRAPHENE=NO
|
|
PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
|
|
if test "x$HAVE_GRAPHENE" = "xyes"; then
|
|
AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
|
|
fi
|
|
AC_SUBST(HAVE_GRAPHENE)
|
|
AC_SUBST(GRAPHENE_LIBS)
|
|
AC_SUBST(GRAPHENE_CFLAGS)
|
|
AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
|
|
|
|
|
|
dnl sdl is optional and used in examples
|
|
HAVE_SDL=NO
|
|
if test "x$BUILD_EXAMPLES" = "xyes"; then
|
|
PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
|
|
AC_SUBST(SDL_LIBS)
|
|
AC_SUBST(SDL_CFLAGS)
|
|
AC_SUBST(SDL_CLUTTER)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
|
|
|
|
|
|
dnl Needed for GtkBuilder to autoconnect signals
|
|
PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
|
|
|
|
dnl Needed by plugins that use g_module_*() API
|
|
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
|
|
|
|
dnl x11 is optional for librfb
|
|
HAVE_X11=NO
|
|
PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
|
|
AC_SUBST(X11_LIBS)
|
|
AC_SUBST(X11_CFLAGS)
|
|
AC_SUBST(HAVE_X11)
|
|
AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
|
|
if test "x$HAVE_X11" = "xyes"; then
|
|
AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
|
|
fi
|
|
|
|
dnl exif (used on jifmux tests) ****
|
|
PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
|
|
AC_SUBST(EXIF_LIBS)
|
|
AC_SUBST(EXIF_CFLAGS)
|
|
AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
|
|
|
|
dnl Orc
|
|
ORC_CHECK([0.4.17])
|
|
|
|
dnl set license and copyright notice
|
|
GST_LICENSE="LGPL"
|
|
AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
|
|
AC_SUBST(GST_LICENSE)
|
|
|
|
dnl define LIBDIR so we can inform people where we live
|
|
AS_AC_EXPAND(LIBDIR, $libdir)
|
|
AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
|
|
|
|
dnl set location of plugin directory
|
|
AG_GST_SET_PLUGINDIR
|
|
|
|
dnl set release date/time
|
|
AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
|
|
["${srcdir}/gst-plugins-bad.doap"],
|
|
[$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
|
|
|
|
dnl build static plugins or not
|
|
AC_MSG_CHECKING([whether to build static plugins or not])
|
|
AC_ARG_ENABLE(
|
|
static-plugins,
|
|
AC_HELP_STRING(
|
|
[--enable-static-plugins],
|
|
[build static plugins @<:@default=no@:>@]),
|
|
[AS_CASE(
|
|
[$enableval], [no], [], [yes], [],
|
|
[AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
|
|
[enable_static_plugins=no])
|
|
AC_MSG_RESULT([$enable_static_plugins])
|
|
if test "x$enable_static_plugins" = xyes; then
|
|
AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
|
|
[Define if static plugins should be built])
|
|
GST_PLUGIN_LIBTOOLFLAGS=""
|
|
else
|
|
GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
|
|
fi
|
|
AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
|
|
AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
|
|
|
|
AC_ARG_WITH([player-tests],
|
|
AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
|
|
if test x$with_player_tests = xyes; then
|
|
AC_PATH_PROG([WGET], [wget], no)
|
|
if test x$WGET = xno; then
|
|
AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
|
|
with_player_tests=no
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
|
|
|
|
# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
|
|
dnl make sure it doesn't complain about unused variables if debugging is disabled
|
|
NO_WARNINGS=""
|
|
AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
|
|
|
|
dnl define an ERROR_CFLAGS Makefile variable
|
|
dnl -Waggregate-return - libexif returns aggregates
|
|
dnl -Wundef - Windows headers check _MSC_VER unconditionally
|
|
AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
|
|
-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
|
|
-Wwrite-strings -Wformat-security -Wold-style-definition
|
|
-Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
|
|
-Wnested-externs $NO_WARNINGS])
|
|
|
|
dnl define an ERROR_CXXFLAGS Makefile variable
|
|
AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
|
|
-Wmissing-declarations -Wredundant-decls
|
|
-Wwrite-strings -Wformat-nonliteral -Wformat-security
|
|
-Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
|
|
|
|
dnl define an ERROR_OBJCFLAGS Makefile variable
|
|
AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
|
|
-Wmissing-declarations -Wredundant-decls
|
|
-Wwrite-strings -Wformat-nonliteral -Wformat-security
|
|
-Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
|
|
|
|
dnl define correct level for debugging messages
|
|
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
|
|
|
|
dnl used in examples
|
|
AG_GST_DEFAULT_ELEMENTS
|
|
|
|
dnl *** plug-ins to include ***
|
|
dnl Non ported plugins (non-dependant, then dependant)
|
|
dnl Make sure you have a space before and after all plugins
|
|
GST_PLUGINS_NONPORTED=" cdxaparse \
|
|
dccp faceoverlay \
|
|
hdvparse \
|
|
mve nuvdemux \
|
|
patchdetect \
|
|
sdi tta \
|
|
videomeasure \
|
|
linsys \
|
|
apexsink \
|
|
musepack nas sdl timidity \
|
|
wininet \
|
|
xvid sndio libvisual"
|
|
|
|
AC_SUBST(GST_PLUGINS_NONPORTED)
|
|
|
|
dnl these are all the gst plug-ins, compilable without additional libs
|
|
AG_GST_CHECK_PLUGIN(accurip)
|
|
AG_GST_CHECK_PLUGIN(adpcmdec)
|
|
AG_GST_CHECK_PLUGIN(adpcmenc)
|
|
AG_GST_CHECK_PLUGIN(aiff)
|
|
AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
|
|
AG_GST_CHECK_PLUGIN(asfmux)
|
|
AG_GST_CHECK_PLUGIN(audiofxbad)
|
|
AG_GST_CHECK_PLUGIN(audiomixer)
|
|
AG_GST_CHECK_PLUGIN(compositor)
|
|
AG_GST_CHECK_PLUGIN(audiovisualizers)
|
|
AG_GST_CHECK_PLUGIN(autoconvert)
|
|
AG_GST_CHECK_PLUGIN(bayer)
|
|
AG_GST_CHECK_PLUGIN(camerabin2)
|
|
AG_GST_CHECK_PLUGIN(cdxaparse)
|
|
AG_GST_CHECK_PLUGIN(coloreffects)
|
|
AG_GST_CHECK_PLUGIN(dataurisrc)
|
|
AG_GST_CHECK_PLUGIN(dccp)
|
|
AG_GST_CHECK_PLUGIN(debugutils)
|
|
AG_GST_CHECK_PLUGIN(dvbsuboverlay)
|
|
AG_GST_CHECK_PLUGIN(dvdspu)
|
|
AG_GST_CHECK_PLUGIN(faceoverlay)
|
|
AG_GST_CHECK_PLUGIN(festival)
|
|
AG_GST_CHECK_PLUGIN(fieldanalysis)
|
|
AG_GST_CHECK_PLUGIN(freeverb)
|
|
AG_GST_CHECK_PLUGIN(frei0r)
|
|
AG_GST_CHECK_PLUGIN(gaudieffects)
|
|
AG_GST_CHECK_PLUGIN(geometrictransform)
|
|
AG_GST_CHECK_PLUGIN(gdp)
|
|
AG_GST_CHECK_PLUGIN(hdvparse)
|
|
AG_GST_CHECK_PLUGIN(id3tag)
|
|
AG_GST_CHECK_PLUGIN(inter)
|
|
AG_GST_CHECK_PLUGIN(interlace)
|
|
AG_GST_CHECK_PLUGIN(ivfparse)
|
|
AG_GST_CHECK_PLUGIN(ivtc)
|
|
AG_GST_CHECK_PLUGIN(jp2kdecimator)
|
|
AG_GST_CHECK_PLUGIN(jpegformat)
|
|
AG_GST_CHECK_PLUGIN(librfb)
|
|
AG_GST_CHECK_PLUGIN(midi)
|
|
AG_GST_CHECK_PLUGIN(mpegdemux)
|
|
AG_GST_CHECK_PLUGIN(mpegtsdemux)
|
|
AG_GST_CHECK_PLUGIN(mpegtsmux)
|
|
AG_GST_CHECK_PLUGIN(mpegpsmux)
|
|
AG_GST_CHECK_PLUGIN(mve)
|
|
AG_GST_CHECK_PLUGIN(mxf)
|
|
AG_GST_CHECK_PLUGIN(netsim)
|
|
AG_GST_CHECK_PLUGIN(nuvdemux)
|
|
AG_GST_CHECK_PLUGIN(onvif)
|
|
AG_GST_CHECK_PLUGIN(patchdetect)
|
|
AG_GST_CHECK_PLUGIN(pcapparse)
|
|
AG_GST_CHECK_PLUGIN(pnm)
|
|
AG_GST_CHECK_PLUGIN(rawparse)
|
|
AG_GST_CHECK_PLUGIN(removesilence)
|
|
AG_GST_CHECK_PLUGIN(sdi)
|
|
AG_GST_CHECK_PLUGIN(sdp)
|
|
AG_GST_CHECK_PLUGIN(segmentclip)
|
|
AG_GST_CHECK_PLUGIN(siren)
|
|
AG_GST_CHECK_PLUGIN(smooth)
|
|
AG_GST_CHECK_PLUGIN(speed)
|
|
AG_GST_CHECK_PLUGIN(subenc)
|
|
AG_GST_CHECK_PLUGIN(stereo)
|
|
AG_GST_CHECK_PLUGIN(tta)
|
|
AG_GST_CHECK_PLUGIN(videofilters)
|
|
AG_GST_CHECK_PLUGIN(videomeasure)
|
|
AG_GST_CHECK_PLUGIN(videoparsers)
|
|
AG_GST_CHECK_PLUGIN(videosignal)
|
|
AG_GST_CHECK_PLUGIN(vmnc)
|
|
AG_GST_CHECK_PLUGIN(y4m)
|
|
AG_GST_CHECK_PLUGIN(yadif)
|
|
|
|
dnl *** plug-ins to exclude ***
|
|
|
|
AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
|
|
AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
|
|
AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
|
|
|
|
if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
|
|
old_LIBS=$LIBS
|
|
LIBS="$LIBS -framework VideoToolbox"
|
|
AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
|
|
AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
|
|
], [
|
|
])
|
|
LIBS=$old_LIBS
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
|
|
if test "x$HAVE_AVFOUNDATION" = "xyes"; then
|
|
AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
|
|
if test "x$HAVE_IOS" = "xyes"; then
|
|
AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
|
|
if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
|
|
AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
|
|
fi
|
|
|
|
dnl disable gst plugins we might not be able to build on this
|
|
dnl platform: (ugly but minimally invasive)
|
|
dnl FIXME: maybe move to sys, or make work with winsock2
|
|
AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
|
|
AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
|
|
|
|
if test "x$HAVE_WINSOCK2_H" = "xyes"; then
|
|
WINSOCK2_LIBS="-lws2_32"
|
|
AC_SUBST(WINSOCK2_LIBS)
|
|
fi
|
|
|
|
if test "x$HAVE_PTHREAD_H" = "xyes"; then
|
|
DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
|
|
AC_SUBST(DCCP_LIBS)
|
|
else
|
|
AG_GST_DISABLE_PLUGIN(dccp)
|
|
fi
|
|
|
|
dnl *** opengl ***
|
|
AC_ARG_ENABLE([opengl],
|
|
[ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_GL=yes ;;
|
|
no) NEED_GL=no ;;
|
|
auto) NEED_GL=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
|
|
esac],[NEED_GL=auto])
|
|
|
|
AC_ARG_WITH([opengl-module-name],
|
|
AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
|
|
if test x$with_opengl_module_name != x; then
|
|
AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
|
|
fi
|
|
|
|
AC_ARG_ENABLE([gles2],
|
|
[ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_GLES2=yes ;;
|
|
no) NEED_GLES2=no ;;
|
|
auto) NEED_GLES2=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
|
|
esac],[NEED_GLES2=auto])
|
|
|
|
AC_ARG_WITH([gles2-module-name],
|
|
AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
|
|
if test x$with_gles2_module_name != x; then
|
|
AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
|
|
fi
|
|
|
|
AC_ARG_ENABLE([egl],
|
|
[ --enable-egl Enable EGL support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_EGL=yes ;;
|
|
no) NEED_EGL=no ;;
|
|
auto) NEED_EGL=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
|
|
esac],[NEED_EGL=auto])
|
|
|
|
AC_ARG_WITH([egl-module-name],
|
|
AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
|
|
if test x$with_egl_module_name != x; then
|
|
AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
|
|
fi
|
|
|
|
AC_ARG_ENABLE([wgl],
|
|
[ --enable-wgl Enable WGL support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_WGL=yes ;;
|
|
no) NEED_WGL=no ;;
|
|
auto) NEED_WGL=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
|
|
esac],[NEED_WGL=auto])
|
|
|
|
AC_ARG_ENABLE([glx],
|
|
[ --enable-glx Enable GLX support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_GLX=yes ;;
|
|
no) NEED_GLX=no ;;
|
|
auto) NEED_GLX=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
|
|
esac],[NEED_GLX=auto])
|
|
|
|
AC_ARG_ENABLE([cocoa],
|
|
[ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_COCOA=yes ;;
|
|
no) NEED_COCOA=no ;;
|
|
auto) NEED_COCOA=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
|
|
esac],[NEED_COCOA=auto])
|
|
|
|
AC_ARG_ENABLE([x11],
|
|
[ --enable-x11 Enable x11 support @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_X11=yes ;;
|
|
no) NEED_X11=no ;;
|
|
auto) NEED_X11=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
|
|
esac],[NEED_X11=auto])
|
|
|
|
AC_ARG_ENABLE([wayland],
|
|
[ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_WAYLAND_EGL=yes ;;
|
|
no) NEED_WAYLAND_EGL=no ;;
|
|
auto) NEED_WAYLAND_EGL=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
|
|
esac],[NEED_WAYLAND_EGL=auto])
|
|
|
|
AC_ARG_ENABLE([dispmanx],
|
|
[ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
|
|
[case "${enableval}" in
|
|
yes) NEED_DISPMANX=yes ;;
|
|
no) NEED_DISPMANX=no ;;
|
|
auto) NEED_DISPMANX=auto ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
|
|
esac],[NEED_DISPMANX=auto])
|
|
|
|
AG_GST_PKG_CHECK_MODULES(X, x11)
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
save_LIBS="$LIBS"
|
|
|
|
HAVE_GL=no
|
|
HAVE_GLES2=no
|
|
HAVE_GLES3_H=no
|
|
HAVE_WAYLAND_EGL=no
|
|
|
|
HAVE_EGL_RPI=no
|
|
|
|
case $host in
|
|
*-mingw32* )
|
|
LIBS="$LIBS -lgdi32"
|
|
AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
|
|
AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
|
|
if test "x$HAVE_WGLEXT" = "xyes"; then
|
|
HAVE_WGL=yes
|
|
HAVE_GL=yes
|
|
fi
|
|
;;
|
|
*)
|
|
if test "x$NEED_GL" != "xno"; then
|
|
AG_GST_PKG_CHECK_MODULES(GL, gl)
|
|
if test "x$HAVE_GL" != "xyes"; then
|
|
AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
|
|
fi
|
|
fi
|
|
if test "x$NEED_GLES2" != "xno"; then
|
|
AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
|
|
if test "x$HAVE_GLES2" != "xyes"; then
|
|
AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
|
|
fi
|
|
AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
|
|
fi
|
|
if test "x$NEED_EGL" != "xno"; then
|
|
AG_GST_PKG_CHECK_MODULES(EGL, egl)
|
|
if test "x$HAVE_EGL" != "xyes"; then
|
|
AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
|
|
fi
|
|
fi
|
|
|
|
old_LIBS=$LIBS
|
|
old_CFLAGS=$CFLAGS
|
|
|
|
dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
|
|
AC_CHECK_HEADER([EGL/fbdev_window.h],
|
|
[
|
|
LIBS="$LIBS -lUMP"
|
|
AC_CHECK_LIB([Mali], [mali_image_create],
|
|
[
|
|
LIBS="$LIBS -lMali"
|
|
AC_CHECK_LIB([GLESv2], [glEnable],
|
|
[
|
|
AC_CHECK_HEADER([GLES2/gl2.h],
|
|
[
|
|
AC_CHECK_LIB([EGL], [eglGetProcAddress],
|
|
[
|
|
AC_CHECK_HEADER([EGL/egl.h],
|
|
[
|
|
HAVE_EGL=yes
|
|
HAVE_GLES2=yes
|
|
EGL_LIBS="-lMali -lUMP"
|
|
EGL_CFLAGS=""
|
|
AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
|
|
dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
|
|
dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
|
|
LIBS="$LIBS -lvcos -lvchiq_arm"
|
|
AC_CHECK_LIB([bcm_host], [bcm_host_init],
|
|
[
|
|
LIBS="$LIBS -lbcm_host"
|
|
AC_CHECK_HEADER(bcm_host.h,
|
|
[
|
|
LIBS="$LIBS -lGLESv2"
|
|
AC_CHECK_LIB([EGL], [eglGetProcAddress],
|
|
[
|
|
LIBS="$LIBS -lEGL"
|
|
AC_CHECK_HEADER([EGL/egl.h],
|
|
[
|
|
AC_CHECK_LIB([GLESv2], [glEnable],
|
|
[
|
|
AC_CHECK_HEADER([GLES2/gl2.h],
|
|
[
|
|
HAVE_EGL=yes
|
|
HAVE_GLES2=yes
|
|
HAVE_EGL_RPI=yes
|
|
EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
|
|
EGL_CFLAGS=""
|
|
AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
])
|
|
|
|
LIBS=$old_LIBS
|
|
CFLAGS=$old_CFLAGS
|
|
|
|
PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
|
|
;;
|
|
esac
|
|
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
LIBS="$save_LIBS"
|
|
|
|
USE_OPENGL=no
|
|
USE_GLES2=no
|
|
USE_GLX=no
|
|
USE_COCOA=no
|
|
USE_WGL=no
|
|
USE_X11=no
|
|
USE_EAGL=no
|
|
GL_LIBS=
|
|
GL_CFLAGS=
|
|
GL_OBJCFLAGS=
|
|
|
|
dnl Check for what the user asked for and what we could find
|
|
if test "x$HAVE_EGL" = "xno"; then
|
|
if test "x$NEED_EGL" = "xyes"; then
|
|
AC_MSG_ERROR([Could not find the required EGL libraries])
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_GL" = "xno"; then
|
|
if test "x$NEED_GL" = "xyes"; then
|
|
AC_MSG_ERROR([Could not find the required OpenGL libraries])
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_GLES2" = "xno"; then
|
|
if test "x$NEED_GLES2" = "xyes"; then
|
|
AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
|
|
fi
|
|
fi
|
|
|
|
dnl X, GLX and OpenGL
|
|
if test "x$HAVE_X" = "xno"; then
|
|
if test "x$NEED_GLX" = "xyes"; then
|
|
AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
|
|
fi
|
|
if test "x$NEED_X11" = "xyes"; then
|
|
AC_MSG_ERROR([Could not find X11 development libraries])
|
|
fi
|
|
else
|
|
if test "x$NEED_GL" != "xno"; then
|
|
if test "x$HAVE_GL" = "xno"; then
|
|
if test "x$NEED_GLX" = "xyes"; then
|
|
AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
|
|
fi
|
|
else dnl HAVE_GL=yes
|
|
USE_OPENGL=yes
|
|
if test "x$NEED_GLX" != "xno"; then
|
|
USE_GLX=yes
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl check for DMABUF support
|
|
HAVE_DRM_FOURCC_HEADER=no
|
|
AC_CHECK_HEADER(libdrm/drm_fourcc.h,
|
|
HAVE_DRM_FOURCC_HEADER=yes, )
|
|
|
|
HAVE_GST_ALLOCATORS=no
|
|
PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
|
|
HAVE_GST_ALLOCATORS=yes, )
|
|
|
|
GST_GL_HAVE_DMABUF=0
|
|
if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
|
|
"x$HAVE_GST_ALLOCATORS" = "xyes" -a \
|
|
"x$HAVE_EGL" = "xyes"; then
|
|
GST_GL_HAVE_DMABUF=1
|
|
fi
|
|
|
|
dnl check if we can include both GL and GLES2 at the same time
|
|
if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
|
|
GLES3_H_DEFINE=0
|
|
if test "x$HAVE_GLES3_H" == "xyes"; then
|
|
GLES3_H_DEFINE=1
|
|
fi
|
|
GL_INCLUDES="
|
|
#ifdef __GNUC__
|
|
# pragma GCC diagnostic push
|
|
# pragma GCC diagnostic ignored \"-Wredundant-decls\"
|
|
#endif
|
|
#ifndef GL_GLEXT_PROTOTYPES
|
|
#define GL_GLEXT_PROTOTYPES 1
|
|
#endif
|
|
# ifdef HAVE_IOS
|
|
# include <OpenGLES/ES2/gl.h>
|
|
# include <OpenGLES/ES2/glext.h>
|
|
# else
|
|
# if $GLES3_H_DEFINE
|
|
# include <GLES3/gl3.h>
|
|
# include <GLES3/gl3ext.h>
|
|
# else
|
|
# include <GLES2/gl2.h>
|
|
# include <GLES2/gl2ext.h>
|
|
# endif
|
|
# endif
|
|
# ifdef __APPLE__
|
|
# include <OpenGL/OpenGL.h>
|
|
# include <OpenGL/gl.h>
|
|
# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
|
|
# define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
|
|
# include <OpenGL/gl3.h>
|
|
# endif
|
|
# else
|
|
# include <GL/gl.h>
|
|
# if __WIN32__ || _WIN32
|
|
# include <GL/glext.h>
|
|
# endif
|
|
# endif
|
|
int main (int argc, char **argv) { return 0; }
|
|
"
|
|
AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
|
|
#if !defined(GL_FALSE)
|
|
#error Failed to include GL headers
|
|
#endif
|
|
]])],[ AC_MSG_RESULT(yes)
|
|
],[AC_MSG_RESULT(no)
|
|
if test "x$NEED_GLES2" = "xyes"; then
|
|
if test "x$NEED_GL" = "xyes"; then
|
|
AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
|
|
fi
|
|
AC_MSG_WARN([Disabling Desktop GL support])
|
|
HAVE_GL=no
|
|
USE_OPENGL=no
|
|
else
|
|
AC_MSG_WARN([Disabling GL|ES 2.0 support])
|
|
HAVE_GLES2=no
|
|
HAVE_GLES3_H=no
|
|
fi
|
|
])
|
|
CFLAGS="$save_CFLAGS"
|
|
fi
|
|
|
|
#dnl Check for OpenGL
|
|
echo host is $host
|
|
case $host in
|
|
*-android*)
|
|
if test "x$NEED_WGL" = "xyes"; then
|
|
AC_MSG_ERROR([WGL is not available on Android])
|
|
fi
|
|
if test "x$NEED_GLX" = "xyes"; then
|
|
AC_MSG_ERROR([GLX is not available on Android])
|
|
fi
|
|
if test "x$NEED_GL" = "xyes"; then
|
|
AC_MSG_ERROR([GL is not available on Android])
|
|
fi
|
|
if test "x$NEED_X11" = "xyes"; then
|
|
AC_MSG_ERROR([X11 is not available on Android])
|
|
fi
|
|
if test "x$NEED_COCOA" = "xyes"; then
|
|
AC_MSG_ERROR([Cocoa is not available on Android])
|
|
fi
|
|
|
|
dnl OpenGL|ES 2.0
|
|
if test "x$HAVE_GLES2" = "xyes"; then
|
|
if test "x$NEED_GLES2" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lGLESv2"
|
|
USE_GLES2=yes
|
|
fi
|
|
fi
|
|
|
|
dnl EGL
|
|
if test "x$HAVE_EGL" = "xyes"; then
|
|
if test "x$NEED_EGL" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lEGL"
|
|
USE_EGL=yes
|
|
fi
|
|
fi
|
|
|
|
if test "x$USE_EGL" != "xyes"; then
|
|
AC_MSG_ERROR([Need EGL on Android])
|
|
fi
|
|
|
|
if test "x$USE_GLES2" != "xyes"; then
|
|
AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
|
|
fi
|
|
|
|
HAVE_WINDOW_ANDROID=yes
|
|
;;
|
|
*-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
|
|
if test "x$NEED_WGL" = "xyes"; then
|
|
AC_MSG_ERROR([WGL is not available on unix])
|
|
fi
|
|
|
|
if test "x$HAVE_X" = "xno"; then
|
|
if test "x$HAVE_WAYLAND_EGL" = "xno"; then
|
|
AC_MSG_WARN([X or Wayland is required for OpenGL support])
|
|
fi
|
|
fi
|
|
|
|
dnl check Desktop OpenGL
|
|
if test "x$HAVE_GL" = "xyes"; then
|
|
if test "x$NEED_GL" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lGL"
|
|
fi
|
|
fi
|
|
|
|
dnl OpenGL|ES 2.0
|
|
if test "x$HAVE_GLES2" = "xyes"; then
|
|
if test "x$NEED_GLES2" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lGLESv2"
|
|
USE_GLES2=yes
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
|
|
if test "x$NEED_X11" != "xno"; then
|
|
GL_LIBS="$GL_LIBS $X_LIBS"
|
|
GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
|
|
HAVE_WINDOW_X11=yes
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
|
|
if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
|
|
AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
|
|
else
|
|
if test "x$NEED_WAYLAND_EGL" != "xno"; then
|
|
HAVE_WINDOW_WAYLAND=yes
|
|
GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
|
|
GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_EGL_RPI" = "xyes"; then
|
|
if test "x$NEED_DISPMANX" != "xno"; then
|
|
HAVE_WINDOW_DISPMANX=yes
|
|
USE_EGL=yes
|
|
fi
|
|
fi
|
|
|
|
dnl EGL
|
|
if test "x$HAVE_EGL" = "xno"; then
|
|
if test "x$HAVE_GL" = "xno"; then
|
|
AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
|
|
fi
|
|
else
|
|
if test "x$NEED_EGL" != "xno"; then
|
|
if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
|
|
GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
|
|
GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
|
|
USE_EGL=yes
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
*-darwin*)
|
|
if test "x$HAVE_IOS" = "xyes"; then
|
|
if test "x$NEED_WGL" = "xyes"; then
|
|
AC_MSG_ERROR([WGL is not available on iOS])
|
|
fi
|
|
if test "x$NEED_GLX" = "xyes"; then
|
|
AC_MSG_ERROR([GLX is not available on iOS])
|
|
fi
|
|
if test "x$NEED_GL" = "xyes"; then
|
|
AC_MSG_ERROR([GL is not available on iOS])
|
|
fi
|
|
if test "x$NEED_X11" = "xyes"; then
|
|
AC_MSG_ERROR([X11 is not available on iOS])
|
|
fi
|
|
if test "x$NEED_COCOA" = "xyes"; then
|
|
AC_MSG_ERROR([Cocoa is not available on iOS])
|
|
fi
|
|
if test "x$NEED_EGL" = "xyes"; then
|
|
AC_MSG_ERROR([EGL is not available on iOS])
|
|
fi
|
|
|
|
GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
|
|
GL_CFLAGS="$GL_CFLAGS"
|
|
USE_GLES2=yes
|
|
USE_EAGL=yes
|
|
HAVE_WINDOW_EAGL=yes
|
|
|
|
ac_cv_type_GLsizeiptr=yes
|
|
ac_cv_type_GLintptr=yes
|
|
ac_cv_type_GLchar=yes
|
|
else
|
|
dnl Only osx supports cocoa.
|
|
if test "x$NEED_WGL" = "xyes"; then
|
|
AC_MSG_ERROR([WGL is not available on Mac OS X])
|
|
fi
|
|
|
|
if test "x$NEED_COCOA" != "xno"; then
|
|
GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
|
|
GL_CFLAGS="$GL_CFLAGS"
|
|
USE_COCOA=yes
|
|
HAVE_WINDOW_COCOA=yes
|
|
USE_OPENGL=yes
|
|
fi
|
|
|
|
if test "x$USE_GLX" = "xyes"; then
|
|
if test "x$HAVE_X" = "xyes"; then
|
|
if test "x$NEED_X11" != "xno"; then
|
|
GL_LIBS="$GL_LIBS $X_LIBS"
|
|
GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
|
|
HAVE_WINDOW_X11=yes
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_GL" = "xyes"; then
|
|
if test "x$NEED_GL" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lGL"
|
|
fi
|
|
USE_OPENGL=yes
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_EGL" = "xyes"; then
|
|
if test "x$NEED_EGL" != "xno"; then
|
|
if test "x$HAVE_WINDOW_X11" = "xyes"; then
|
|
GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
|
|
GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
|
|
USE_EGL=yes
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl OpenGL|ES 2.0
|
|
if test "x$HAVE_GLES2" = "xyes"; then
|
|
if test "x$NEED_GLES2" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lGLESv2"
|
|
USE_GLES2=yes
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
*-mingw32*)
|
|
if test "x$NEED_GLX" = "xyes"; then
|
|
AC_MSG_ERROR([GLX is not available on Windows])
|
|
fi
|
|
if test "x$NEED_GLES2" = "xyes"; then
|
|
AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
|
|
fi
|
|
|
|
if test "x$HAVE_GL" = "xyes"; then
|
|
if test "x$NEED_GL" != "xno"; then
|
|
if test "x$HAVE_WGL" = "xyes"; then
|
|
if test "$NEED_WGL" != "xno"; then
|
|
GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
|
|
HAVE_WINDOW_WIN32=yes
|
|
USE_OPENGL=yes
|
|
USE_WGL=yes
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
*)
|
|
AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
|
|
;;
|
|
esac
|
|
|
|
GL_PLATFORMS=
|
|
GL_WINDOWS=
|
|
GL_APIS=
|
|
GL_CONFIG_DEFINES=
|
|
|
|
dnl APIs
|
|
|
|
GST_GL_HAVE_OPENGL=0
|
|
GST_GL_HAVE_GLES2=0
|
|
GST_GL_HAVE_GLES3=0
|
|
|
|
if test "x$USE_OPENGL" = "xyes"; then
|
|
GL_APIS="gl $GL_APIS"
|
|
GST_GL_HAVE_OPENGL=1
|
|
fi
|
|
if test "x$USE_GLES2" = "xyes"; then
|
|
GL_APIS="gles2 $GL_APIS"
|
|
GST_GL_HAVE_GLES2=1
|
|
if test "x$HAVE_GLES3_H" = "xyes"; then
|
|
GST_GL_HAVE_GLES3=1
|
|
fi
|
|
fi
|
|
|
|
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
|
|
#define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
|
|
#define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
|
|
#define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
|
|
"
|
|
|
|
dnl WINDOW's
|
|
|
|
GST_GL_HAVE_WINDOW_X11=0
|
|
GST_GL_HAVE_WINDOW_COCOA=0
|
|
GST_GL_HAVE_WINDOW_WIN32=0
|
|
GST_GL_HAVE_WINDOW_WAYLAND=0
|
|
GST_GL_HAVE_WINDOW_ANDROID=0
|
|
GST_GL_HAVE_WINDOW_DISPMANX=0
|
|
GST_GL_HAVE_WINDOW_EAGL=0
|
|
|
|
if test "x$HAVE_WINDOW_X11" = "xyes"; then
|
|
GL_WINDOWS="x11 $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_X11=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
|
|
GL_WINDOWS="cocoa $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_COCOA=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
|
|
GL_WINDOWS="win32 $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_WIN32=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
|
|
GL_WINDOWS="wayland $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_WAYLAND=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
|
|
GL_WINDOWS="android $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_ANDROID=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
|
|
GL_WINDOWS="dispmanx $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_DISPMANX=1
|
|
fi
|
|
if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
|
|
GL_WINDOWS="eagl $GL_WINDOWS"
|
|
GST_GL_HAVE_WINDOW_EAGL=1
|
|
fi
|
|
|
|
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
|
|
#define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
|
|
#define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
|
|
#define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
|
|
#define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
|
|
#define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
|
|
#define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
|
|
#define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
|
|
"
|
|
|
|
dnl PLATFORM's
|
|
|
|
GST_GL_HAVE_PLATFORM_EGL=0
|
|
GST_GL_HAVE_PLATFORM_GLX=0
|
|
GST_GL_HAVE_PLATFORM_WGL=0
|
|
GST_GL_HAVE_PLATFORM_CGL=0
|
|
GST_GL_HAVE_PLATFORM_EAGL=0
|
|
|
|
if test "x$USE_EGL" = "xyes"; then
|
|
GL_PLATFORMS="egl $GL_PLATFORMS"
|
|
GST_GL_HAVE_PLATFORM_EGL=1
|
|
fi
|
|
if test "x$USE_GLX" = "xyes"; then
|
|
GL_PLATFORMS="glx $GL_PLATFORMS"
|
|
GST_GL_HAVE_PLATFORM_GLX=1
|
|
fi
|
|
if test "x$USE_WGL" = "xyes"; then
|
|
GL_PLATFORMS="wgl $GL_PLATFORMS"
|
|
GST_GL_HAVE_PLATFORM_WGL=1
|
|
fi
|
|
if test "x$USE_COCOA" = "xyes"; then
|
|
GL_PLATFORMS="cgl $GL_PLATFORMS"
|
|
GST_GL_HAVE_PLATFORM_CGL=1
|
|
fi
|
|
if test "x$USE_EAGL" = "xyes"; then
|
|
GL_PLATFORMS="eagl $GL_PLATFORMS"
|
|
GST_GL_HAVE_PLATFORM_EAGL=1
|
|
fi
|
|
|
|
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
|
|
#define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
|
|
#define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
|
|
#define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
|
|
#define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
|
|
#define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
|
|
"
|
|
|
|
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
|
|
#define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
|
|
"
|
|
|
|
dnl Check for no platforms/window systems
|
|
if test "x$GL_APIS" = "x"; then
|
|
AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
|
|
fi
|
|
if test "x$GL_PLATFORMS" = "x"; then
|
|
AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
|
|
fi
|
|
if test "x$GL_WINDOWS" = "x"; then
|
|
AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
|
|
fi
|
|
|
|
if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
|
|
GL_LIBS=
|
|
GL_CFLAGS=
|
|
GL_OBJCFLAGS=
|
|
USE_OPENGL=no
|
|
USE_GLES2=no
|
|
USE_GLX=no
|
|
USE_EGL=no
|
|
USE_WGL=no
|
|
USE_COCOA=no
|
|
USE_EGL_MALI=no
|
|
USE_EGL_RPI=no
|
|
USE_EAGL=no
|
|
|
|
HAVE_WINDOW_X11=no
|
|
HAVE_WINDOW_WIN32=no
|
|
HAVE_WINDOW_DISPMANX=no
|
|
HAVE_WINDOW_WAYLAND=no
|
|
HAVE_WINDOW_ANDROID=no
|
|
HAVE_WINDOW_COCOA=no
|
|
HAVE_WINDOW_EAGL=no
|
|
fi
|
|
|
|
AC_SUBST(GL_LIBS)
|
|
AC_SUBST(GL_CFLAGS)
|
|
AC_SUBST(GL_OBJCFLAGS)
|
|
AC_SUBST(USE_OPENGL)
|
|
AC_SUBST(USE_GLES2)
|
|
|
|
AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
|
|
AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
|
|
|
|
AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
|
|
AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
|
|
AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
|
|
AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
|
|
AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
|
|
AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
|
|
AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
|
|
AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
|
|
AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
|
|
|
|
AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
|
|
|
|
dnl Check for some types that are not always present
|
|
GL_INCLUDES=""
|
|
if test "x$USE_GLES2" = "xyes"; then
|
|
GL_INCLUDES="$GL_INCLUDES
|
|
#ifndef GL_GLEXT_PROTOTYPES
|
|
#define GL_GLEXT_PROTOTYPES 1
|
|
#endif
|
|
# ifdef HAVE_IOS
|
|
# include <OpenGLES/ES2/gl.h>
|
|
# include <OpenGLES/ES2/glext.h>
|
|
# else
|
|
# if $GST_GL_HAVE_GLES3
|
|
# include <GLES3/gl3.h>
|
|
# include <GLES3/gl3ext.h>
|
|
# else
|
|
# include <GLES2/gl2.h>
|
|
# include <GLES2/gl2ext.h>
|
|
# endif
|
|
# endif
|
|
"
|
|
fi
|
|
|
|
if test "x$USE_OPENGL" = "xyes"; then
|
|
GL_INCLUDES="$GL_INCLUDES
|
|
# ifdef __APPLE__
|
|
# include <OpenGL/OpenGL.h>
|
|
# include <OpenGL/gl.h>
|
|
# else
|
|
# include <GL/gl.h>
|
|
# if __WIN32__ || _WIN32
|
|
# include <GL/glext.h>
|
|
# endif
|
|
# endif
|
|
"
|
|
fi
|
|
|
|
GST_GL_HAVE_GLEGLIMAGEOES=0
|
|
GST_GL_HAVE_GLCHAR=0
|
|
GST_GL_HAVE_GLSIZEIPTR=0
|
|
GST_GL_HAVE_GLINTPTR=0
|
|
GST_GL_HAVE_GLSYNC=0
|
|
GST_GL_HAVE_GLUINT64=0
|
|
GST_GL_HAVE_GLINT64=0
|
|
|
|
old_CFLAGS=$CFLAGS
|
|
CFLAGS="$GL_CFLAGS $CFLAGS"
|
|
|
|
AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
|
|
GST_GL_HAVE_GLEGLIMAGEOES=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLchar" = "xyes"; then
|
|
GST_GL_HAVE_GLCHAR=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
|
|
GST_GL_HAVE_GLSIZEIPTR=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLintptr" = "xyes"; then
|
|
GST_GL_HAVE_GLINTPTR=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLsync" = "xyes"; then
|
|
GST_GL_HAVE_GLSYNC=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLuint64" = "xyes"; then
|
|
GST_GL_HAVE_GLUINT64=1
|
|
fi
|
|
|
|
AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
|
|
if test "x$ac_cv_type_GLint64" = "xyes"; then
|
|
GST_GL_HAVE_GLINT64=1
|
|
fi
|
|
|
|
CFLAGS=$old_CFLAGS
|
|
|
|
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
|
|
#define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
|
|
#define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
|
|
#define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
|
|
#define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
|
|
#define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
|
|
#define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
|
|
#define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
|
|
"
|
|
|
|
AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
|
|
outfile=gstglconfig.h-tmp
|
|
cat > $outfile <<\_______EOF
|
|
/* gstglconfig.h
|
|
*
|
|
* This is a generated file. Please modify `configure.ac'
|
|
*/
|
|
|
|
#ifndef __GST_GL_CONFIG_H__
|
|
#define __GST_GL_CONFIG_H__
|
|
|
|
#include <gst/gst.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
_______EOF
|
|
|
|
cat >>$outfile <<_______EOF
|
|
$gl_config_defines
|
|
_______EOF
|
|
|
|
cat >>$outfile <<_______EOF
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GST_GL_CONFIG_H__ */
|
|
_______EOF
|
|
|
|
|
|
if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
|
|
AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
|
|
rm -f $outfile
|
|
else
|
|
mv $outfile gst-libs/gst/gl/gstglconfig.h
|
|
fi
|
|
],[
|
|
gl_config_defines='$GL_CONFIG_DEFINES'
|
|
])
|
|
|
|
dnl libpng is optional
|
|
PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
|
|
if test "x$HAVE_PNG" = "xyes"; then
|
|
AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
|
|
fi
|
|
AC_SUBST(HAVE_PNG)
|
|
AC_SUBST(LIBPNG_LIBS)
|
|
AC_SUBST(LIBPNG_CFLAGS)
|
|
AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
|
|
|
|
dnl libjpeg is optional
|
|
AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
|
|
OLD_LIBS="$LIBS"
|
|
if test x$with_jpeg_mmx != x; then
|
|
LIBS="$LIBS -L$with_jpeg_mmx"
|
|
fi
|
|
AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
|
|
JPEG_LIBS="$LIBS -ljpeg-mmx"
|
|
LIBS="$OLD_LIBS"
|
|
if test x$HAVE_JPEG != xyes; then
|
|
JPEG_LIBS="-ljpeg"
|
|
AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
|
|
fi
|
|
|
|
if test x$HAVE_JPEG = xyes; then
|
|
AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
|
|
else
|
|
AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
|
|
JPEG_LIBS=
|
|
fi
|
|
AC_SUBST(JPEG_LIBS)
|
|
AC_SUBST(HAVE_JPEG)
|
|
AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
|
|
|
|
dnl Vulkan
|
|
PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
|
|
AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
|
|
|
|
PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
|
|
AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
|
|
VULKAN_CONFIG_DEFINES="
|
|
#define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
|
|
#define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
|
|
|
|
AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
|
|
outfile=vkconfig.h-tmp
|
|
cat > $outfile <<\_______EOF
|
|
/* vkconfig.h
|
|
*
|
|
* This is a generated file. Please modify `configure.ac'
|
|
*/
|
|
|
|
#ifndef __GST_VULKAN_CONFIG_H__
|
|
#define __GST_VULKAN_CONFIG_H__
|
|
|
|
#include <gst/gst.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
_______EOF
|
|
|
|
cat >>$outfile <<_______EOF
|
|
$vulkan_config_defines
|
|
_______EOF
|
|
|
|
cat >>$outfile <<_______EOF
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GST_VULKAN_CONFIG_H__ */
|
|
_______EOF
|
|
|
|
|
|
if cmp -s $outfile ext/vulkan/vkconfig.h; then
|
|
AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
|
|
rm -f $outfile
|
|
else
|
|
mv $outfile ext/vulkan/vkconfig.h
|
|
fi
|
|
],[
|
|
vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
|
|
])
|
|
|
|
dnl *** sys plug-ins ***
|
|
|
|
dnl DirectSound
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
|
|
AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
|
|
HAVE_DIRECTSOUND="no"
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
|
|
LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
|
|
AC_MSG_CHECKING(for DirectSound LDFLAGS)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <windows.h>
|
|
#include <dxerr9.h>
|
|
#include <dsound.h>
|
|
#include <mmsystem.h>
|
|
]], [[
|
|
DXGetErrorString9 (0);
|
|
DirectSoundCreate(NULL, NULL, NULL);
|
|
]])],
|
|
[HAVE_DIRECTSOUND="yes"],
|
|
[HAVE_DIRECTSOUND="no"])
|
|
AC_MSG_RESULT($HAVE_DIRECTSOUND)
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
LIBS=$save_LIBS
|
|
|
|
if test "x$HAVE_DIRECTSOUND" = "xyes"; then
|
|
dnl this is much more than we want
|
|
DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
|
|
AC_SUBST(DIRECTX_CFLAGS)
|
|
AC_SUBST(DIRECTX_LDFLAGS)
|
|
AC_SUBST(DIRECTSOUND_LIBS)
|
|
fi
|
|
AC_SUBST(HAVE_DIRECTSOUND)
|
|
])
|
|
|
|
dnl WASAPI
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
|
|
AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
|
|
HAVE_WASAPI="no"
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
|
|
LIBS="$LIBS -lole32 -lwinmm -lksuser"
|
|
AC_MSG_CHECKING(for WASAPI LDFLAGS)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <windows.h>
|
|
#include <stdio.h>
|
|
#include <mmsystem.h>
|
|
#include <mmdeviceapi.h>
|
|
]], [[
|
|
int main ()
|
|
{
|
|
HRESULT hr = S_OK;
|
|
|
|
hr = CoInitialize(NULL);
|
|
if (FAILED(hr)) {
|
|
printf("CoInitialize failed: hr = 0x%08x", hr);
|
|
return __LINE__;
|
|
}
|
|
|
|
int result = 0;
|
|
// result = do_everything(argc, argv);
|
|
|
|
CoUninitialize();
|
|
return result;
|
|
}
|
|
]])],
|
|
[HAVE_WASAPI="yes"],
|
|
[HAVE_WASAPI="no"])
|
|
AC_MSG_RESULT($HAVE_WASAPI)
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
LIBS=$save_LIBS
|
|
|
|
if test "x$HAVE_WASAPI" = "xyes"; then
|
|
WASAPI_LIBS="-lole32 -lwinmm -lksuser"
|
|
AC_SUBST(WASAPI_LIBS)
|
|
fi
|
|
AC_SUBST(HAVE_WASAPI)
|
|
])
|
|
|
|
dnl Direct3D
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
|
|
AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
|
|
HAVE_DIRECT3D="no"
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
|
|
LIBS="$LIBS -ld3d9 -lgdi32"
|
|
AC_MSG_CHECKING(for Direct3D LDFLAGS)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <windows.h>
|
|
#include <d3d9.h>
|
|
]], [[
|
|
Direct3DCreate9(D3D_SDK_VERSION);
|
|
]])],
|
|
[HAVE_DIRECT3D="yes"],
|
|
[HAVE_DIRECT3D="no"])
|
|
AC_MSG_RESULT($HAVE_DIRECT3D)
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
LIBS=$save_LIBS
|
|
|
|
if test "x$HAVE_DIRECT3D" = "xyes"; then
|
|
DIRECT3D_LIBS="-ld3d9 -lgdi32"
|
|
AC_SUBST(DIRECT3D_LIBS)
|
|
fi
|
|
AC_SUBST(HAVE_DIRECT3D)
|
|
])
|
|
|
|
dnl winscreencap
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
|
|
AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
|
|
HAVE_WINSCREENCAP="no"
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
|
|
LIBS="$LIBS -ld3d9 -lgdi32"
|
|
AC_MSG_CHECKING(for Direct3D LDFLAGS)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <windows.h>
|
|
#include <d3d9.h>
|
|
]], [[
|
|
Direct3DCreate9(D3D_SDK_VERSION);
|
|
]])],
|
|
[HAVE_WINSCREENCAP="yes"],
|
|
[HAVE_WINSCREENCAP="no"])
|
|
AC_MSG_RESULT($HAVE_WINSCREENCAP)
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
LIBS=$save_LIBS
|
|
|
|
if test "x$HAVE_WINSCREENCAP" = "xyes"; then
|
|
WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
|
|
AC_SUBST(WINSCREENCAP_LIBS)
|
|
fi
|
|
AC_SUBST(HAVE_WINSCREENCAP)
|
|
])
|
|
|
|
dnl winks
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
|
|
AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
|
|
HAVE_WINKS="no"
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LDFLAGS="$LDFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
|
|
LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
|
|
LIBS="$LIBS -lole32 -luuid -lstrmiids"
|
|
AC_MSG_CHECKING(for Winks LDFLAGS)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <windows.h>
|
|
#include <strmif.h>
|
|
#include <uuids.h>
|
|
]], [[
|
|
int main () {
|
|
IGraphBuilder *pGraph = NULL;
|
|
HRESULT hr = CoInitialize(NULL);
|
|
hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
|
|
&IID_IGraphBuilder, (void **)&pGraph);
|
|
|
|
return 0;
|
|
}
|
|
]])],
|
|
[HAVE_WINKS="yes"],
|
|
[HAVE_WINKS="no"])
|
|
AC_MSG_RESULT($HAVE_WINKS)
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
LIBS=$save_LIBS
|
|
|
|
if test "x$HAVE_WINKS" = "xyes"; then
|
|
dnl this is much more than we want
|
|
WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
|
|
AC_SUBST(DIRECTX_CFLAGS)
|
|
AC_SUBST(DIRECTX_LDFLAGS)
|
|
AC_SUBST(WINKS_LIBS)
|
|
fi
|
|
AC_SUBST(HAVE_WINKS)
|
|
])
|
|
|
|
dnl *** Android Media ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
|
|
HAVE_ANDROID_MEDIA="no"
|
|
AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
|
|
case "$host" in
|
|
*android*)
|
|
AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
|
|
;;
|
|
*)
|
|
HAVE_ANDROID_MEDIA="no"
|
|
;;
|
|
esac
|
|
])
|
|
|
|
dnl *** AppleMedia (OS X and iOS) ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
|
|
HAVE_APPLE_MEDIA="no"
|
|
dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
|
|
AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
|
|
AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
|
|
dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
|
|
if test "x$HAVE_IOS" = "xno"; then
|
|
AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
|
|
fi
|
|
])
|
|
|
|
dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
|
|
case "$host" in
|
|
*-*darwin*)
|
|
;;
|
|
*)
|
|
HAVE_APPLE_MEDIA="no"
|
|
;;
|
|
esac
|
|
|
|
dnl *** bluez ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
|
|
AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
|
|
PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
|
|
PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
|
|
AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
|
|
HAVE_BLUEZ=yes
|
|
AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
|
|
], [
|
|
HAVE_BLUEZ=no
|
|
])
|
|
], [
|
|
HAVE_BLUEZ=no
|
|
])
|
|
])
|
|
|
|
dnl *** OS/X AVCVideoServices ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
|
|
HAVE_AVC="no"
|
|
AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
|
|
AC_LANG_PUSH([C++])
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
|
|
save_LIBS="$LIBS"
|
|
LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
|
|
LIBS=$save_LIBS
|
|
CPPFLAGS=$save_CPPFLAGS
|
|
AC_LANG_POP([C++])
|
|
])
|
|
dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
|
|
case "$host" in
|
|
*-*darwin*)
|
|
;;
|
|
*)
|
|
HAVE_AVC="no"
|
|
;;
|
|
esac
|
|
|
|
dnl check for shm_open (for shm plugin)
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
|
|
AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
|
|
if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
|
|
case $host in
|
|
*-darwin* | *-macos10*)
|
|
AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
|
|
HAVE_SHM=yes
|
|
;;
|
|
*-*-OpenBSD*)
|
|
HAVE_SHM=yes
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB([rt], [shm_open],
|
|
AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
|
|
#include <sys/socket.h>
|
|
]),
|
|
HAVE_SHM=no)
|
|
AC_SUBST(SHM_LIBS, "-lrt")
|
|
;;
|
|
esac
|
|
else
|
|
HAVE_SHM=no
|
|
fi
|
|
])
|
|
|
|
dnl check for Video CD
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
|
|
AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
|
|
AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
|
|
])
|
|
|
|
dnl check for OpenSL ES
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
|
|
AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
|
|
AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
|
|
])
|
|
|
|
dnl *** UVC H264 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
|
|
AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
|
|
AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
|
|
PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
|
|
AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
|
|
HAVE_GUDEV="yes" ],
|
|
[HAVE_GUDEV="no"])
|
|
PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
|
|
AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
|
|
HAVE_LIBUSB="yes" ],
|
|
[HAVE_LIBUSB="no"])
|
|
if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
|
|
test "x$HAVE_GUDEV" = "xyes" && \
|
|
test "x$HAVE_LIBUSB" = "xyes"; then
|
|
HAVE_UVCH264=yes
|
|
else
|
|
HAVE_UVCH264=no
|
|
fi
|
|
])
|
|
AC_SUBST(LIBUDEV_CFLAGS)
|
|
AC_SUBST(LIBUDEV_LIBS)
|
|
AC_SUBST(LIBUSB_CFLAGS)
|
|
AC_SUBST(LIBUSB_LIBS)
|
|
|
|
dnl *** NVENC ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
|
|
AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
|
|
AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
|
|
AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
|
|
AC_ARG_WITH([cuda-prefix],
|
|
AS_HELP_STRING([--with-cuda-prefix],
|
|
[Use the provided prefix for detecting the cuda installation]),
|
|
[AS_IF([test "x$with_cuda_prefix" != "x"],
|
|
[CUDA_PREFIX="$with_cuda_prefix"])],
|
|
[CUDA_PREFIX=""])
|
|
|
|
HAVE_CUDA="yes"
|
|
if test "x$CUDA_PREFIX" != "x"; then
|
|
dnl only override if not already set
|
|
if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
|
|
dnl this is an educated guess, user can always override these
|
|
CUDA_CFLAGS="-I$CUDA_PREFIX/include"
|
|
CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
|
|
fi
|
|
else
|
|
PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
|
|
PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
|
|
PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
|
|
AC_MSG_WARN([Could not find cuda headers/libraries])])])])
|
|
fi
|
|
|
|
HAVE_CUDA_H=no
|
|
HAVE_CUDART_H=no
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
|
|
AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
|
|
AC_MSG_WARN([Could not find cuda.h]))
|
|
AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
|
|
AC_MSG_WARN([Could not find cuda_runtime_api.h]))
|
|
CPPFLAGS=$save_CPPFLAGS
|
|
|
|
dnl libcuda and libcudart libraries
|
|
save_LIBS="$LIBS"
|
|
LIBS="$CUDA_LIBS $save_LIBS"
|
|
HAVE_CUDART_LIB="no"
|
|
AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
|
|
AC_MSG_WARN([Could not find cudart library])])
|
|
HAVE_CUDA_LIB="no"
|
|
AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
|
|
AC_MSG_WARN([Could not find cuda library])])
|
|
LIBS="$save_LIBS"
|
|
|
|
dnl nvEncodeAPI.h header
|
|
HAVE_NVENCODEAPI_H=no
|
|
AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
|
|
AC_CHECK_HEADER([nvEncodeAPI.h], [
|
|
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
|
|
#if NVENCAPI_MAJOR_VERSION < 5
|
|
#error "Need nvEncodeAPI.h >= 5.0"
|
|
#endif
|
|
]])], [
|
|
HAVE_NVENCODEAPI_H=yes
|
|
], [
|
|
AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
|
|
])
|
|
],
|
|
AC_MSG_WARN([Could not find nvEncodeAPI.h]))
|
|
AC_SUBST(NVENCODE_CFLAGS)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
dnl libnvnidia-encode library
|
|
HAVE_NVENCODE_LIB=no
|
|
AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
|
|
saved_LIBS="$LIBS"
|
|
LIBS="$NVENCODE_LIBS $saved_LIBS"
|
|
AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
|
|
AC_MSG_WARN([Could not find library nvidia-encode]))
|
|
NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
|
|
AC_SUBST(NVENCODE_LIBS)
|
|
LIBS="$saved_LIBS"
|
|
|
|
USE_NVENC_GST_GL=no
|
|
if test "x$HAVE_CUDA_H" = "xyes" \
|
|
-a "x$HAVE_CUDART_H" = "xyes" \
|
|
-a "x$HAVE_CUDA_LIB" = "xyes" \
|
|
-a "x$HAVE_CUDART_LIB" = "xyes" \
|
|
-a "x$HAVE_NVENCODEAPI_H" = "xyes" \
|
|
-a "x$HAVE_NVENCODE_LIB" = "xyes"; then
|
|
HAVE_NVENC="yes"
|
|
if test x"$USE_OPENGL" = x"yes"; then
|
|
dnl cuda-gl interop header
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
|
|
AC_CHECK_HEADER([cuda_gl_interop.h], [
|
|
USE_NVENC_GST_GL="yes"
|
|
AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
|
|
])
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
else
|
|
HAVE_NVENC="no"
|
|
fi
|
|
])
|
|
AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
|
|
|
|
dnl check for tinyalsa
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
|
|
AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
|
|
AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
|
|
])
|
|
|
|
dnl *** ext plug-ins ***
|
|
dnl keep this list sorted alphabetically !
|
|
|
|
if test "x$BUILD_EXTERNAL" = "xyes"; then
|
|
|
|
dnl *** assrender ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
|
|
AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
|
|
PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
|
|
HAVE_ASSRENDER="yes" ], [
|
|
HAVE_ASSRENDER="no"
|
|
])
|
|
])
|
|
AC_SUBST(ASSRENDER_CFLAGS)
|
|
AC_SUBST(ASSRENDER_LIBS)
|
|
|
|
dnl *** vo-amrwbenc ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
|
|
AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
|
|
AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
|
|
])
|
|
|
|
dnl *** vo-aacenc ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
|
|
AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
|
|
AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
|
|
])
|
|
|
|
dnl *** apexsink ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
|
|
AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
|
|
PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
|
|
HAVE_APEXSINK="yes"
|
|
saved_LIBS="$LIBS"
|
|
LIBS=""
|
|
AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
|
|
AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
|
|
APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
|
|
LIBS="$saved_LIBS"
|
|
AC_SUBST(APEXSINK_CFLAGS)
|
|
AC_SUBST(APEXSINK_LIBS)
|
|
], [
|
|
APEXSINK="no"
|
|
])
|
|
])
|
|
|
|
dnl *** bs2b ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
|
|
AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
|
|
PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
|
|
HAVE_BS2B="no"
|
|
])
|
|
AC_SUBST(BS2B_CFLAGS)
|
|
AC_SUBST(BS2B_LIBS)
|
|
])
|
|
|
|
dnl *** BZ2 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
|
|
AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
|
|
save_LIBS=$LIBS
|
|
LIBS="$LIBS -lbz2"
|
|
AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
|
|
AC_MSG_RESULT($HAVE_BZ2)
|
|
LIBS=$save_LIBS
|
|
if test "x$HAVE_BZ2" = "xyes"; then
|
|
BZ2_LIBS="-lbz2"
|
|
fi
|
|
AC_SUBST(BZ2_LIBS)
|
|
|
|
])
|
|
|
|
#dnl *** cairo ***
|
|
#translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
|
|
#AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
|
|
# PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
|
|
# HAVE_CAIRO=no
|
|
# ])
|
|
# AC_SUBST(CAIRO_CFLAGS)
|
|
# AC_SUBST(CAIRO_LIBS)
|
|
#])
|
|
|
|
dnl *** chromaprint ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
|
|
AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
|
|
PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
|
|
HAVE_CHROMAPRINT="no"
|
|
])
|
|
AC_SUBST(CHROMAPRINT_CFLAGS)
|
|
AC_SUBST(CHROMAPRINT_LIBS)
|
|
])
|
|
|
|
dnl *** Curl ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
|
|
AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
|
|
PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
|
|
HAVE_CURL="yes"
|
|
AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
|
|
AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
|
|
])
|
|
AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
|
|
[[#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_NETINET_IN_H
|
|
# include <netinet/in.h>
|
|
#endif
|
|
]])
|
|
AC_MSG_CHECKING([for socket support needed by curlsink])
|
|
AC_MSG_RESULT($HAVE_CURL)
|
|
], [
|
|
HAVE_CURL="no"
|
|
])
|
|
AC_SUBST(CURL_CFLAGS)
|
|
AC_SUBST(CURL_LIBS)
|
|
PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
|
|
HAVE_SSH2="yes"
|
|
AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
|
|
], [
|
|
HAVE_SSH2="no"
|
|
])
|
|
AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
|
|
AC_SUBST(SSH2_CFLAGS)
|
|
AC_SUBST(SSH2_LIBS)
|
|
],,,[AM_CONDITIONAL(USE_SSH2, false)])
|
|
|
|
dnl **** DASH ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
|
|
AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
|
|
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
|
|
HAVE_DASH="yes"], [HAVE_LIBXML2="no"
|
|
HAVE_DASH="no"])
|
|
AC_SUBST(LIBXML2_CFLAGS)
|
|
AC_SUBST(LIBXML2_LIBS)
|
|
])
|
|
|
|
dnl *** dc1394 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
|
|
AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
|
|
PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
|
|
if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
|
|
HAVE_DC1394="yes"
|
|
else
|
|
HAVE_DC1394="no"
|
|
fi
|
|
], [
|
|
HAVE_DC1394="no"
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
AC_SUBST(LIBDC1394_CFLAGS)
|
|
AC_SUBST(LIBDC1394_LIBS)
|
|
])
|
|
|
|
dnl *** decklink ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
|
|
AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
|
|
HAVE_DECKLINK=no
|
|
case "$host" in
|
|
*android*)
|
|
HAVE_DECKLINK=no
|
|
;;
|
|
*-*linux*)
|
|
if test "x$HAVE_PTHREAD_H" = "xyes"; then
|
|
AC_CHECK_LIB(dl, dlopen,
|
|
[
|
|
HAVE_DECKLINK=yes
|
|
DECKLINK_CXXFLAGS=
|
|
DECKLINK_LIBS="-lpthread -ldl"
|
|
])
|
|
fi
|
|
;;
|
|
*-*darwin*)
|
|
if test "x$HAVE_PTHREAD_H" = "xyes"; then
|
|
AC_CHECK_LIB(dl, dlopen,
|
|
[
|
|
HAVE_DECKLINK=yes
|
|
DECKLINK_CXXFLAGS=
|
|
DECKLINK_LIBS="-lpthread -ldl"
|
|
HAVE_DECKLINK_OSX=yes
|
|
])
|
|
fi
|
|
;;
|
|
*)
|
|
HAVE_DECKLINK=no
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(DECKLINK_CXXFLAGS)
|
|
AC_SUBST(DECKLINK_LIBS)
|
|
])
|
|
AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
|
|
|
|
dnl **** DirectFB ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
|
|
AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
|
|
PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
|
|
HAVE_DIRECTFB="no"
|
|
])
|
|
])
|
|
|
|
dnl **** Wayland ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
|
|
AC_PATH_PROG([wayland_scanner], [wayland-scanner])
|
|
AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
|
|
PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
|
|
if test "x$wayland_scanner" != "x"; then
|
|
HAVE_WAYLAND="yes"
|
|
else
|
|
AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
|
|
HAVE_WAYLAND="no"
|
|
fi
|
|
],
|
|
[ HAVE_WAYLAND="no"
|
|
])
|
|
])
|
|
|
|
dnl **** WebP ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
|
|
AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
|
|
PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
|
|
HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
|
|
])
|
|
AC_SUBST(WEBP_CFLAGS)
|
|
AC_SUBST(WEBP_LIBS)
|
|
])
|
|
|
|
dnl *** Daala ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
|
|
AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
|
|
if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
|
|
PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
|
|
HAVE_DAALA="yes"
|
|
], [
|
|
HAVE_DAALA="no"
|
|
])
|
|
AC_SUBST(DAALA_CFLAGS)
|
|
AC_SUBST(DAALA_LIBS)
|
|
fi
|
|
])
|
|
|
|
dnl *** DTS ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
|
|
AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
|
|
HAVE_DTS="yes"
|
|
AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
|
|
DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
|
|
if test $HAVE_DTS = "no"; then
|
|
AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
|
|
[ DTS_LIBS="-ldts_pic $LIBM"
|
|
AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
|
|
])
|
|
fi
|
|
AC_SUBST(DTS_LIBS)
|
|
])
|
|
|
|
dnl *** resindvd ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
|
|
AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
|
|
PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
|
|
HAVE_RESINDVD="no"
|
|
])
|
|
])
|
|
|
|
dnl **** Free AAC Encoder (FAAC) ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
|
|
AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
|
|
AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
|
|
FAAC_LIBS="-lfaac $LIBM")
|
|
AC_SUBST(FAAC_LIBS)
|
|
])
|
|
|
|
dnl **** Free AAC Decoder (FAAD2) ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
|
|
AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
|
|
AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
|
|
#if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
|
|
#error Not faad2
|
|
#elif !defined(LATM)
|
|
#error Not faad2 >= 2.7
|
|
#endif
|
|
]])],[
|
|
HAVE_FAAD="yes"
|
|
FAAD_LIBS="-lfaad"
|
|
], [
|
|
AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
|
|
HAVE_FAAD="no"
|
|
])
|
|
], [
|
|
HAVE_FAAD="no"
|
|
])
|
|
AC_SUBST(FAAD_LIBS)
|
|
])
|
|
|
|
dnl *** fbdev ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
|
|
AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
|
|
if test "x$HAVE_FBDEV" != "xyes"; then
|
|
AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
|
|
fi
|
|
])
|
|
|
|
dnl *** flite ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
|
|
AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
|
|
AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
|
|
FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
|
|
|
|
AC_SUBST(FLITE_CFLAGS)
|
|
AC_SUBST(FLITE_LIBS)
|
|
])
|
|
|
|
dnl *** gsm ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
|
|
AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
|
|
AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
|
|
if test $HAVE_GSM != "yes"; then
|
|
AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
|
|
if test $HAVE_GSM = "yes"; then
|
|
AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
|
|
fi
|
|
fi
|
|
AC_SUBST(GSM_LIBS)
|
|
])
|
|
|
|
dnl *** fluidSynth ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
|
|
AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
|
|
PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
|
|
HAVE_FLUIDSYNTH="no"
|
|
])
|
|
])
|
|
|
|
dnl *** kate ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
|
|
AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
|
|
PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
|
|
HAVE_KATE="no"
|
|
])
|
|
AC_SUBST(KATE_CFLAGS)
|
|
AC_SUBST(KATE_LIBS)
|
|
PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
|
|
[
|
|
HAVE_TIGER="yes"
|
|
AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
|
|
],
|
|
[
|
|
HAVE_TIGER="no"
|
|
]
|
|
)
|
|
AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
|
|
AC_SUBST(TIGER_CFLAGS)
|
|
AC_SUBST(TIGER_LIBS)
|
|
],,,[AM_CONDITIONAL(USE_TIGER, false)])
|
|
|
|
dnl *** kms ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
|
|
AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
|
|
AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
|
|
AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
|
|
PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
|
|
])
|
|
|
|
dnl *** ladspa ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
|
|
AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
|
|
AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
|
|
|
|
PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
|
|
if test $HAVE_LRDF = "yes"; then
|
|
AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
|
|
fi
|
|
AC_SUBST(LRDF_LIBS)
|
|
AC_SUBST(LRDF_CFLAGS)
|
|
])
|
|
|
|
dnl *** LV2 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
|
|
AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
|
|
PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
|
|
AC_SUBST(LILV_CFLAGS)
|
|
AC_SUBST(LILV_LIBS)
|
|
])
|
|
|
|
dnl *** libde265 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
|
|
AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
|
|
PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
|
|
AC_SUBST(LIBDE265_CFLAGS)
|
|
AC_SUBST(LIBDE265_LIBS)
|
|
])
|
|
|
|
dnl *** libmms ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
|
|
AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
|
|
dnl check with pkg-config first
|
|
PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
|
|
HAVE_LIBMMS="no"
|
|
])
|
|
])
|
|
AC_SUBST(LIBMMS_LIBS)
|
|
|
|
|
|
dnl *** libsrtp ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
|
|
AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
|
|
PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
|
|
AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
|
|
)
|
|
AC_SUBST(SRTP_LIBS)
|
|
AC_SUBST(SRTP_CFLAGS)
|
|
])
|
|
|
|
dnl *** dtls ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
|
|
AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
|
|
PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
|
|
HAVE_DTLS="yes"
|
|
AC_SUBST(DTLS_CFLAGS)
|
|
AC_SUBST(DTLS_LIBS)
|
|
], [
|
|
HAVE_DTLS="no"
|
|
])
|
|
])
|
|
|
|
dnl *** linsys ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
|
|
AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
|
|
case "$host" in
|
|
*-*linux*)
|
|
HAVE_LINSYS=yes
|
|
;;
|
|
*)
|
|
HAVE_LINSYS=no
|
|
;;
|
|
esac
|
|
])
|
|
|
|
dnl *** modplug ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
|
|
AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
|
|
if test "x$HAVE_CXX" != "xyes"; then
|
|
AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
|
|
HAVE_MODPLUG="no"
|
|
else
|
|
PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
|
|
fi
|
|
AC_SUBST(MODPLUG_CFLAGS)
|
|
AC_SUBST(MODPLUG_LIBS)
|
|
])
|
|
|
|
dnl *** mimic ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
|
|
AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
|
|
MIMIC_REQUIRED=1.0
|
|
PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
|
|
HAVE_MIMIC=yes, HAVE_MIMIC=no)
|
|
AC_SUBST(MIMIC_CFLAGS)
|
|
AC_SUBST(MIMIC_LIBS)
|
|
])
|
|
|
|
dnl *** mjpegtools version info ***
|
|
dnl some may prefer older version (given quirks above)
|
|
dnl hm, no version info seems available within mjpegtools headers
|
|
dnl and API really moves along
|
|
echo
|
|
PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
|
|
mjpegtools_api=10601
|
|
], [
|
|
PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
|
|
mjpegtools_api=10800
|
|
], [
|
|
PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
|
|
mjpegtools_api=20000
|
|
], [
|
|
PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
|
|
dnl logging API changed in release candidates
|
|
OLD_CFLAGS="$CFLAGS"
|
|
OLD_LIBS="$LIBS"
|
|
CFLAGS="$MJPEG_CFLAGS"
|
|
LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
|
|
AC_CHECK_FUNC(mjpeg_loglev_t, [
|
|
mjpegtools_api=10903
|
|
], [
|
|
mjpegtools_api=10900
|
|
])
|
|
CFLAGS="$OLD_CFLAGS"
|
|
LIBS="$OLD_LIBS"
|
|
], [
|
|
mjpegtools_api=0
|
|
])
|
|
])
|
|
])
|
|
])
|
|
AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
|
|
[mjpegtools API evolution])
|
|
|
|
dnl *** mpeg2enc ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
|
|
AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
|
|
HAVE_MPEG2ENC="no"
|
|
dnl we require a c++ compiler for this one
|
|
if [ test x$HAVE_CXX = xyes ]; then
|
|
dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
|
|
dnl since many distros include mjpegtools specifically without mplex
|
|
dnl and mpeg2enc, we check for mpeg2enc on its own, too.
|
|
PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
|
|
dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
|
|
touch config.h
|
|
dnl switch over to c++ to test things
|
|
AC_LANG([C++])
|
|
OLD_CPPFLAGS="$CPPFLAGS"
|
|
dnl HACK as above
|
|
CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
|
|
CPPFLAGS="$CPPFLAGS_GOOD -I."
|
|
dnl check headers
|
|
mpeg2enc_headers_ok=no
|
|
AC_CHECK_HEADER([mpeg2encoder.hh], [
|
|
MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
|
|
OLD_LIBS="$LIBS"
|
|
LIBS="$LIBS $MPEG2ENC_LIBS"
|
|
AC_MSG_CHECKING([for valid mpeg2enc objects])
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <mpeg2encoder.hh>
|
|
#include <mpeg2encoptions.hh>
|
|
|
|
int
|
|
main (int argc,
|
|
char *argv[])
|
|
{
|
|
MPEG2EncOptions *options = new MPEG2EncOptions ();
|
|
MPEG2Encoder *encoder = new MPEG2Encoder (*options);
|
|
return 0;
|
|
}
|
|
]])],[
|
|
AC_MSG_RESULT(yes)
|
|
dnl so far so good, let's check more things:
|
|
dnl mjpegtools-1.8.0 does not install the required
|
|
dnl mpeg2syntaxcodes.h header by default, and a new release
|
|
dnl is not in sight, so check for this oversight in case
|
|
dnl distros or folks have fixed this themselves
|
|
if test "$mjpegtools_api" -ge "10800"; then
|
|
AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
|
|
mpeg2enc_headers_ok=yes
|
|
], [
|
|
mpeg2enc_headers_ok=no
|
|
])
|
|
else
|
|
mpeg2enc_headers_ok=yes
|
|
fi
|
|
if test "x$mpeg2enc_headers_ok" = "xyes"; then
|
|
HAVE_MPEG2ENC="yes"
|
|
fi
|
|
CPPFLAGS="$CPPFLAGS_GOOD"
|
|
AC_SUBST(MPEG2ENC_CFLAGS)
|
|
AC_SUBST(MPEG2ENC_LIBS)
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
],[])
|
|
LIBS="$OLD_LIBS"
|
|
])
|
|
|
|
CPPFLAGS="$OLD_CPPFLAGS"
|
|
AC_LANG([C])
|
|
], [
|
|
HAVE_MPEG2ENC="no"
|
|
])
|
|
fi
|
|
])
|
|
|
|
dnl *** mplex ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
|
|
AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
|
|
HAVE_MPLEX="no"
|
|
dnl we require a c++ compiler for this one
|
|
if [ test x$HAVE_CXX = xyes ]; then
|
|
dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
|
|
dnl since many distros include mjpegtools specifically without mplex
|
|
dnl and mpeg2enc, we check for mplex on its own, too.
|
|
dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
|
|
PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
|
|
dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
|
|
touch config.h
|
|
dnl switch over to c++ to test things
|
|
AC_LANG([C++])
|
|
OLD_CPPFLAGS="$CPPFLAGS"
|
|
dnl HACK as above
|
|
CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
|
|
CPPFLAGS="$CPPFLAGS_GOOD -I."
|
|
AC_CHECK_HEADER(interact.hpp, [
|
|
MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
|
|
OLD_LIBS="$LIBS"
|
|
LIBS="$LIBS $MPLEX_LIBS"
|
|
OLD_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
|
|
dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
|
|
dnl don't want this here
|
|
AC_MSG_CHECKING([for valid mplex objects])
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
|
|
#include <interact.hpp>
|
|
#include <outputstrm.hpp>
|
|
#include <multiplexor.hpp>
|
|
int
|
|
main (int argc,
|
|
char *argv[])
|
|
{
|
|
class TestOutputStream : public OutputStream {
|
|
public:
|
|
TestOutputStream () : OutputStream () { }
|
|
void Write (uint8_t *a, unsigned int b) { }
|
|
void NextSegment () { }
|
|
uint64_t SegmentSize () { }
|
|
void Close () { }
|
|
int Open () { }
|
|
};
|
|
MultiplexJob *job = new MultiplexJob ();
|
|
vector<IBitStream *> inputs;
|
|
job->SetupInputStreams (inputs);
|
|
TestOutputStream *out = new TestOutputStream ();
|
|
Multiplexor *mux = new Multiplexor(*job, *out, NULL);
|
|
return 0;
|
|
}
|
|
]])],[
|
|
HAVE_MPLEX="yes"
|
|
CPPFLAGS="$CPPFLAGS_GOOD"
|
|
AC_SUBST(MPLEX_CFLAGS)
|
|
AC_SUBST(MPLEX_LIBS)
|
|
AC_SUBST(MPLEX_LDFLAGS)
|
|
AC_MSG_RESULT(yes)
|
|
],[AC_MSG_RESULT(no)],[])
|
|
LIBS="$OLD_LIBS"
|
|
LDFLAGS="$OLD_LDFLAGS"
|
|
])
|
|
CPPFLAGS="$OLD_CPPFLAGS"
|
|
AC_LANG([C])
|
|
], HAVE_MPLEX="no")
|
|
fi
|
|
])
|
|
|
|
dnl *** musepack ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
|
|
AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
|
|
AC_CHECK_HEADER([mpc/mpcdec.h], [
|
|
HAVE_MUSEPACK="yes"
|
|
MUSEPACK_LIBS="-lmpcdec"
|
|
AC_SUBST(MUSEPACK_LIBS)
|
|
], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
|
|
HAVE_MUSEPACK="yes"
|
|
MUSEPACK_LIBS="-lmpcdec"
|
|
AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
|
|
AC_SUBST(MUSEPACK_LIBS)
|
|
], [HAVE_MUSEPACK="no"])])
|
|
])
|
|
|
|
dnl *** nas ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
|
|
AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
|
|
HAVE_NAS="no"
|
|
if test "x$HAVE_X" = "xyes"; then
|
|
save_cppflags=$CFLAGS
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
|
|
NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
|
|
CPPFLAGS="$save_cppflags"
|
|
fi
|
|
AC_SUBST(NAS_CFLAGS)
|
|
AC_SUBST(NAS_LIBS)
|
|
])
|
|
|
|
dnl *** neon ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
|
|
AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
|
|
PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
|
|
HAVE_NEON="no"
|
|
])
|
|
AC_SUBST(NEON_CFLAGS)
|
|
AC_SUBST(NEON_LIBS)
|
|
])
|
|
|
|
dnl *** ofa ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
|
|
AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
|
|
PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
|
|
HAVE_OFA="no"
|
|
])
|
|
AC_SUBST(OFA_CFLAGS)
|
|
AC_SUBST(OFA_LIBS)
|
|
])
|
|
|
|
dnl *** OpenAL ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
|
|
AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
|
|
PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
|
|
HAVE_OPENAL="no"
|
|
])
|
|
AC_SUBST(OPENAL_CFLAGS)
|
|
AC_SUBST(OPENAL_LIBS)
|
|
])
|
|
|
|
dnl *** opencv ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
|
|
AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
|
|
dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
|
|
dnl and don't want the build to break when a new opencv version comes out.
|
|
dnl Need to adjust this upwards once we know that our code compiles fine with
|
|
dnl a new version and the no-backward-compatibility define. (There doesn't
|
|
dnl seem to be a switch to suppress the warnings the cvcompat.h header
|
|
dnl causes.)
|
|
PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
|
|
AC_PROG_CXX
|
|
AC_LANG([C++])
|
|
OLD_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS=$OPENCV_CFLAGS
|
|
something_not_found=no
|
|
AC_CHECK_HEADERS([opencv2/core/core_c.h \
|
|
opencv2/core/version.hpp \
|
|
opencv2/highgui/highgui_c.h \
|
|
opencv2/imgproc/imgproc.hpp \
|
|
opencv2/imgproc/imgproc_c.h \
|
|
opencv2/objdetect/objdetect.hpp \
|
|
opencv2/video/background_segm.hpp], [], [something_not_found=yes])
|
|
CPPFLAGS=$OLD_CPPFLAGS
|
|
AC_LANG([C])
|
|
|
|
if test $something_not_found = "yes"; then
|
|
AC_MSG_RESULT([not all opencv2 headers were found])
|
|
HAVE_OPENCV="no"
|
|
else
|
|
HAVE_OPENCV="yes"
|
|
fi
|
|
], [
|
|
HAVE_OPENCV="no"
|
|
])
|
|
OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
|
|
AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
|
|
AC_SUBST(OPENCV_PREFIX)
|
|
AC_SUBST(OPENCV_CFLAGS)
|
|
AC_SUBST(OPENCV_LIBS)
|
|
dnl the OpenCV prefix is used at runtime for some object properties, and also
|
|
dnl used here to detect which directory is the correct one. For the second
|
|
dnl case, make sure the right sysroot is used, ensuring correct behavior
|
|
dnl during cross compilation.
|
|
if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
|
|
AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
|
|
else
|
|
AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
|
|
fi
|
|
])
|
|
|
|
dnl *** OpenEXR ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
|
|
AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
|
|
AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
|
|
])
|
|
|
|
dnl *** openh264 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
|
|
AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
|
|
AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
|
|
])
|
|
|
|
dnl *** OpenJPEG ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
|
|
AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
|
|
HAVE_OPENJPEG="no"
|
|
AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
|
|
if test x"$HAVE_OPENJPEG" = x"yes"; then
|
|
dnl minor API changes in v2.1
|
|
AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
|
|
if test x"$HAVE_OPENJPEG" = x"yes"; then
|
|
AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
|
|
fi
|
|
else
|
|
# Fallback to v1.5
|
|
OPENJPEG_LIBS=""
|
|
PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
|
|
HAVE_OPENJPEG="yes",
|
|
AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
|
|
)
|
|
if test x"$HAVE_OPENJPEG" = x"yes"; then
|
|
AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
|
|
fi
|
|
fi
|
|
AC_SUBST(OPENJPEG_CFLAGS)
|
|
AC_SUBST(OPENJPEG_LIBS)
|
|
])
|
|
|
|
dnl *** OpenNI2 ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
|
|
AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
|
|
PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
|
|
AC_SUBST(OPENNI2_CFLAGS)
|
|
AC_SUBST(OPENNI2_LIBS)
|
|
])
|
|
|
|
dnl *** Opus ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
|
|
AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
|
|
PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
|
|
AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
|
|
HAVE_OPUS="yes"
|
|
], [
|
|
HAVE_OPUS="no"
|
|
])
|
|
AC_SUBST(OPUS_CFLAGS)
|
|
AC_SUBST(OPUS_LIBS)
|
|
])
|
|
|
|
dnl *** pvr ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
|
|
AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
|
|
PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
|
|
AC_SUBST(PVR_CFLAGS)
|
|
AC_SUBST(PVR_LIBS)
|
|
])
|
|
|
|
AC_ARG_WITH([pvr-external-headers],
|
|
AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
|
|
[AS_IF([test "x$with_pvr_external_headers" = "xno"],
|
|
[PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
|
|
[PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
|
|
|
|
dnl *** rsvg ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
|
|
AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
|
|
AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
|
|
])
|
|
|
|
dnl *** gl ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
|
|
AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
|
|
HAVE_GL="no"
|
|
|
|
if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
|
|
HAVE_GL="yes"
|
|
fi
|
|
])
|
|
|
|
dnl *** gtk+ ***
|
|
HAVE_GTK3_GL="no"
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
|
|
AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
|
|
PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
|
|
AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
|
|
HAVE_GTK3="yes"
|
|
], [
|
|
HAVE_GTK3="no"
|
|
])
|
|
PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
|
|
GDK_WINDOWING="no"
|
|
if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
|
|
PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
|
|
GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
|
|
GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
|
|
GDK_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
|
|
fi
|
|
if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
|
|
PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
|
|
GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
|
|
GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
|
|
GDK_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
|
|
fi
|
|
if test "x$GDK_WINDOWING" = "xyes"; then
|
|
AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
|
|
HAVE_GTK3_GL="yes"
|
|
fi
|
|
], [
|
|
HAVE_GTK3_GL="no"
|
|
])
|
|
])
|
|
AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
|
|
|
|
dnl *** Qt ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
|
|
AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
|
|
PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
|
|
QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
|
|
QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
|
|
AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
|
|
AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
|
|
AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
|
|
if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
|
|
AC_MSG_WARN([One of the required qt build programs was not found])
|
|
HAVE_QT="no"
|
|
else
|
|
HAVE_QT="yes"
|
|
HAVE_QT_WINDOWING="no"
|
|
if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
|
|
PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
|
|
AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
|
|
QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
|
|
QT_LIBS="$QT_LIBS $QT_X11_LIBS"
|
|
HAVE_QT_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
|
|
fi
|
|
if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
|
|
PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
|
|
AC_DEFINE([HAVE_QT_WAYLAND], [],
|
|
[Define if Qt Wayland integration is installed])
|
|
QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
|
|
QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
|
|
HAVE_QT_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
|
|
fi
|
|
if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
|
|
PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
|
|
# c++ on android requires a standard library and there are multiple
|
|
# choices. cerbero provides a pkg-config file the describes a choice
|
|
# so try to use that. Outside cerbero one has to pass these flags
|
|
# manually for the library one is using
|
|
PKG_CHECK_MODULES(GNUSTL, gnustl, [
|
|
QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
|
|
QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
|
|
], [
|
|
AC_MSG_NOTICE([Could not find Standard C++ library])])
|
|
|
|
AC_DEFINE([HAVE_QT_ANDROID], [],
|
|
[Define if Qt Android integration is installed])
|
|
QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
|
|
QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
|
|
HAVE_QT_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Qt Android integration])])
|
|
fi
|
|
if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
|
|
PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
|
|
AC_DEFINE([HAVE_QT_MAC], [],
|
|
[Define if Qt Mac integration is installed])
|
|
QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
|
|
QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
|
|
QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
|
|
HAVE_QT_WINDOWING="yes"
|
|
], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
|
|
fi
|
|
if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
|
|
if test "x$HAVE_IOS" = "xyes"; then
|
|
# iOS doesn't have its own extras package so if we have the core
|
|
# modules we are good to go
|
|
AC_DEFINE([HAVE_QT_IOS], [],
|
|
[Define if Qt iOS integration is installed])
|
|
HAVE_QT_WINDOWING="yes"
|
|
fi
|
|
fi
|
|
if test "x$HAVE_QT_WINDOWING" = "xno"; then
|
|
AC_MSG_WARN([Could not find any Qt Windowing integration])
|
|
HAVE_QT="no"
|
|
fi
|
|
AC_SUBST([QT_CFLAGS])
|
|
AC_SUBST([QT_LIBS])
|
|
fi
|
|
], [
|
|
HAVE_QT="no"
|
|
])
|
|
])
|
|
|
|
dnl *** Vulkan ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
|
|
AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
|
|
HAVE_VULKAN=no
|
|
AC_CHECK_HEADER(vulkan/vulkan.h, [
|
|
AC_CHECK_LIB(vulkan, vkCreateDevice, [
|
|
VULKAN_LIBS="-lvulkan"
|
|
AC_SUBST(VULKAN_LIBS)
|
|
dnl TODO check platform support (x11, win32, wayland, android, etc)
|
|
if test "x$HAVE_XCB" = "xyes"; then
|
|
HAVE_VULKAN=yes
|
|
fi
|
|
], [])
|
|
], [])
|
|
])
|
|
|
|
dnl *** libvisual ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
|
|
AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
|
|
AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
|
|
if test x$HAVE_LIBVISUAL = xyes; then
|
|
LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
|
|
fi
|
|
AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
|
|
if test x$LIBVIS_PLUGINSDIR != x; then
|
|
AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
|
|
"$LIBVIS_PLUGINSDIR",
|
|
[directory in which the detected libvisual's plugins are located])
|
|
fi
|
|
])
|
|
|
|
dnl *** timidity ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
|
|
AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
|
|
PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
|
|
HAVE_TIMIDITY="yes",
|
|
AC_MSG_CHECKING([for timidity.cfg])
|
|
timidity_cfg=""
|
|
if test -r /etc/timidity.cfg; then
|
|
timidity_cfg=/etc/timidity.cfg
|
|
elif test -r /etc/timidity/timidity.cfg; then
|
|
timidity_cfg=/etc/timidity/timidity.cfg
|
|
elif test -r /usr/share/timidity/timidity.cfg; then
|
|
timidity_cfg=/usr/share/timidity/timidity.cfg
|
|
elif test -r /usr/local/share/timidity/timidity.cfg; then
|
|
timidity_cfg=/usr/local/share/timidity/timidity.cfg
|
|
fi
|
|
if test "x$timidity_cfg" != "x"; then
|
|
AC_MSG_RESULT($timidity_cfg)
|
|
AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
|
|
else
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
], [
|
|
HAVE_TIMIDITY="no"
|
|
])
|
|
AC_SUBST(TIMIDITY_CFLAGS)
|
|
AC_SUBST(TIMIDITY_LIBS)
|
|
])
|
|
|
|
dnl *** teletextdec ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
|
|
AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
|
|
AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
|
|
])
|
|
|
|
dnl *** wildmidi ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
|
|
AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
|
|
AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
|
|
WildMidi_Init, ,
|
|
wildmidi_lib.h,
|
|
WILDMIDI_LIBS="-lWildMidi")
|
|
AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
|
|
|
|
if test "x$HAVE_WILDMIDI" = "xyes"; then
|
|
WILDMIDI_CFLAGS=
|
|
WILDMIDI_LIBS=-lWildMidi
|
|
AC_MSG_NOTICE(compiling gstWildMidi)
|
|
else
|
|
WILDMIDI_CFLAGS=
|
|
WILDMIDI_LIBS=
|
|
AC_MSG_WARN(no WildMidi library found (libWildMidi))
|
|
fi
|
|
AC_SUBST(WILDMIDI_CFLAGS)
|
|
AC_SUBST(WILDMIDI_LIBS)
|
|
])
|
|
|
|
dnl *** SDL ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
|
|
AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
|
|
AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
|
|
])
|
|
|
|
dnl **** Smooth Streaming ****
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
|
|
AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
|
|
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
|
|
[HAVE_LIBXML2="yes"
|
|
HAVE_SMOOTHSTREAMING="yes"],
|
|
[HAVE_LIBXML2="no"
|
|
HAVE_SMOOTHSTREAMING="no"])
|
|
AC_SUBST(LIBXML2_CFLAGS)
|
|
AC_SUBST(LIBXML2_LIBS)
|
|
])
|
|
|
|
dnl *** sndfile ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
|
|
AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
|
|
PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
|
|
AC_SUBST(SNDFILE_CFLAGS)
|
|
AC_SUBST(SNDFILE_LIBS)
|
|
])
|
|
|
|
dnl *** soundtouch ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
|
|
AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
|
|
dnl We only need -lBPM on soundtouch < 1.4
|
|
dnl We check for libSoundTouch since Debian used it before upstream
|
|
dnl added a pkgconfig file.
|
|
HAVE_SOUNDTOUCH_1_4=yes
|
|
PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
|
|
[HAVE_SOUNDTOUCH=yes],
|
|
[PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
|
|
[HAVE_SOUNDTOUCH=yes],
|
|
[PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
|
|
[HAVE_SOUNDTOUCH=yes
|
|
HAVE_SOUNDTOUCH_1_4=no
|
|
SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
|
|
[PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
|
|
[HAVE_SOUNDTOUCH=yes],
|
|
[PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
|
|
[HAVE_SOUNDTOUCH=yes
|
|
HAVE_SOUNDTOUCH_1_4=no
|
|
SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
|
|
HAVE_SOUNDTOUCH=no)])])])])
|
|
AC_SUBST(SOUNDTOUCH_CFLAGS)
|
|
AC_SUBST(SOUNDTOUCH_LIBS)
|
|
if test "x$HAVE_CXX" != "xyes"; then
|
|
USE_SOUNDTOUCH=false
|
|
AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
|
|
fi
|
|
if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
|
|
AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
|
|
[Defined if the available libSoundTouch is >= 1.4])
|
|
fi
|
|
])
|
|
|
|
dnl *** spc ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
|
|
AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
|
|
AC_CHECK_HEADER(openspc.h, [
|
|
AC_CHECK_LIB(openspc, OSPC_Init, [
|
|
SPC_LIBS="-lopenspc"
|
|
AC_SUBST(SPC_LIBS)
|
|
HAVE_SPC=yes
|
|
], [
|
|
HAVE_SPC=no
|
|
])
|
|
], [
|
|
HAVE_SPC=no
|
|
])
|
|
])
|
|
|
|
dnl *** gme ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
|
|
AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
|
|
AC_CHECK_HEADER(gme/gme.h, [
|
|
AC_CHECK_LIB(gme, gme_new_emu, [
|
|
GME_LIBS="-lgme"
|
|
AC_SUBST(GME_LIBS)
|
|
HAVE_GME=yes
|
|
], [
|
|
HAVE_GME=no
|
|
])
|
|
], [
|
|
HAVE_GME=no
|
|
])
|
|
|
|
if test "x$HAVE_GME" = "xyes"; then
|
|
AC_CHECK_LIB(gme, gme_enable_accuracy, [
|
|
AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
|
|
])
|
|
fi
|
|
])
|
|
|
|
dnl *** XVID ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
|
|
AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
|
|
HAVE_XVID=no
|
|
AC_CHECK_HEADER(xvid.h, [
|
|
OLD_LIBS="$LIBS"
|
|
LIBS="$PTHREAD_LIBS $LIBM"
|
|
AC_CHECK_LIB(xvidcore, xvid_encore, [
|
|
AC_CHECK_LIB(xvidcore, xvid_decore, [
|
|
AC_CHECK_LIB(xvidcore, xvid_global, [
|
|
AC_MSG_CHECKING([for up-to-date XviD API version])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
|
|
#if XVID_API_MAJOR(XVID_API) != 4
|
|
#error "Incompatible XviD API version"
|
|
#endif
|
|
#if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
|
|
#error "Incompatible XviD API version"
|
|
#endif
|
|
]])],[ AC_MSG_RESULT(yes)
|
|
XVID_LIBS="-lxvidcore $LIBM"
|
|
AC_SUBST(XVID_LIBS)
|
|
HAVE_XVID=yes
|
|
],[AC_MSG_RESULT(no) ])
|
|
], )
|
|
], )
|
|
], )
|
|
LIBS="$OLD_LIBS"
|
|
], )
|
|
])
|
|
|
|
dnl *** dvb ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
|
|
AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
|
|
AC_MSG_CHECKING([Checking for up to date dvb installation])
|
|
AC_CHECK_HEADER(linux/dvb/version.h, [
|
|
AC_MSG_CHECKING([for up-to-date dvb API])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
|
|
#if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
|
|
#error "Incompatible dvb API"
|
|
#endif
|
|
]])], [ AC_MSG_RESULT(yes)
|
|
HAVE_DVB="yes"
|
|
], [ AC_MSG_RESULT(no)
|
|
HAVE_DVB="no"
|
|
])
|
|
], [HAVE_DVB="no"])
|
|
])
|
|
|
|
dnl *** wininet ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
|
|
AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
|
|
AC_MSG_CHECKING([Checking for windows internet support])
|
|
AC_CHECK_HEADERS([windows.h wininet.h],
|
|
[HAVE_WININET="yes"], [HAVE_WININET="no"],
|
|
[AC_INCLUDES_DEFAULT
|
|
#include <windows.h>])
|
|
])
|
|
|
|
dnl *** acm ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
|
|
AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
|
|
AC_MSG_CHECKING([Checking for ACM support])
|
|
AC_CHECK_HEADERS([windows.h msacm.h],
|
|
[HAVE_ACM="yes"
|
|
AC_SUBST(ACMENC_CFLAGS)
|
|
AC_SUBST(ACMMP3DEC_CFLAGS)
|
|
], [HAVE_ACM="no"],
|
|
[AC_INCLUDES_DEFAULT
|
|
#include <windows.h>])
|
|
])
|
|
|
|
dnl *** vdpau ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
|
|
AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
|
|
VDPAU_CFLAGS=
|
|
VDPAU_LIBS=-lvdpau
|
|
HAVE_VDPAU=no
|
|
|
|
PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
|
|
[
|
|
if test "$HAVE_VDPAU" = "no"; then
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
|
|
|
|
if test -z "$HAVE_VDPAU_H"; then
|
|
dnl Didn't find VDPAU header straight away.
|
|
dnl Try /usr/include/nvidia. Need to clear caching vars first
|
|
AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
|
|
unset ac_cv_header_vdpau_vdpau_h
|
|
unset ac_cv_header_vdpau_vdpau_x11_h
|
|
VDPAU_CFLAGS="-I/usr/include/nvidia"
|
|
VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
|
|
CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
|
|
AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
|
|
fi
|
|
|
|
AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
|
|
|
|
if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
|
|
dnl Found the headers - look for the lib
|
|
AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
|
|
saved_LIBS="$LIBS"
|
|
LIBS="$VDPAU_LIBS $saved_LIBS"
|
|
AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
|
|
LIBS="$saved_LIBS"
|
|
fi
|
|
fi
|
|
])
|
|
|
|
if test "$HAVE_VDPAU" = "yes"; then
|
|
AC_MSG_NOTICE([Found up to date VDPAU installation])
|
|
AC_SUBST(VDPAU_CFLAGS)
|
|
AC_SUBST(VDPAU_LIBS)
|
|
fi
|
|
])
|
|
|
|
dnl *** sbc ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
|
|
AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
|
|
AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
|
|
])
|
|
|
|
dnl *** schroedinger ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
|
|
AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
|
|
AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
|
|
])
|
|
|
|
dnl *** zbar ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
|
|
AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
|
|
AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
|
|
])
|
|
|
|
dnl *** rtmp ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
|
|
AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
|
|
AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
|
|
])
|
|
|
|
dnl *** spandsp ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
|
|
AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
|
|
PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
|
|
HAVE_SPANDSP="yes" ], [
|
|
HAVE_SPANDSP="no"
|
|
])
|
|
])
|
|
AC_SUBST(SPANDSP_CFLAGS)
|
|
AC_SUBST(SPANDSP_LIBS)
|
|
|
|
dnl *** sndio ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
|
|
AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
|
|
AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
|
|
if test "x$HAVE_SNDIO" = "xyes"; then
|
|
AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
|
|
if test "x$HAVE_SNDIO" = "xyes"; then
|
|
SNDIO_LIBS=-lsndio
|
|
AC_SUBST(SNDIO_LIBS)
|
|
fi
|
|
fi
|
|
])
|
|
|
|
dnl *** hls-crypto ***
|
|
AC_ARG_WITH([hls-crypto],
|
|
AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
|
|
which cryptographic library version to compile against for hls (default: auto)
|
|
]), [
|
|
AS_CASE([$with_hls_crypto],
|
|
[nettle],[],
|
|
[libgcrypt],[],
|
|
[openssl],[],
|
|
[with_hls_crypto=auto]
|
|
)
|
|
]
|
|
)
|
|
|
|
dnl *** hls ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
|
|
AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
|
|
AS_CASE([$with_hls_crypto],
|
|
[nettle], [
|
|
PKG_CHECK_MODULES(NETTLE, nettle, [
|
|
AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
|
|
HAVE_HLS="yes"
|
|
],[AC_MSG_ERROR([Could not find nettle library])])
|
|
],
|
|
[libgcrypt], [
|
|
AM_PATH_LIBGCRYPT([1.2.0], [
|
|
AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
|
|
HAVE_HLS="yes"
|
|
],[AC_MSG_ERROR([Could not find libgcrypt library])])
|
|
],
|
|
[openssl], [
|
|
PKG_CHECK_MODULES(OPENSSL, openssl, [
|
|
AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
|
|
HAVE_HLS="yes"
|
|
],[AC_MSG_ERROR([Could not find openssl library])])
|
|
],
|
|
[
|
|
dnl Try to find a valid crypto library
|
|
PKG_CHECK_MODULES(NETTLE, nettle, [
|
|
AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
|
|
HAVE_HLS="yes"
|
|
],[
|
|
AM_PATH_LIBGCRYPT([1.2.0], [
|
|
AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
|
|
HAVE_HLS="yes"
|
|
],[
|
|
PKG_CHECK_MODULES(OPENSSL, openssl, [
|
|
AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
|
|
HAVE_HLS="yes"
|
|
],[
|
|
HAVE_HLS="no"
|
|
])
|
|
])
|
|
])
|
|
]
|
|
)
|
|
])
|
|
|
|
dnl *** x265 (H.265/HEVC encoder) ***
|
|
translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
|
|
AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
|
|
AG_GST_PKG_CHECK_MODULES(X265, x265)
|
|
])
|
|
|
|
else
|
|
|
|
dnl not building plugins with external dependencies,
|
|
dnl but we still need to set the conditionals
|
|
|
|
AM_CONDITIONAL(USE_ASSRENDER, false)
|
|
AM_CONDITIONAL(USE_VOAMRWBENC, false)
|
|
AM_CONDITIONAL(USE_VOAACENC, false)
|
|
AM_CONDITIONAL(USE_APEXSINK, false)
|
|
AM_CONDITIONAL(USE_BS2B, false)
|
|
AM_CONDITIONAL(USE_BZ2, false)
|
|
AM_CONDITIONAL(USE_CHROMAPRINT, false)
|
|
AM_CONDITIONAL(USE_CURL, false)
|
|
AM_CONDITIONAL(USE_SSH2, false)
|
|
AM_CONDITIONAL(USE_DASH, false)
|
|
AM_CONDITIONAL(USE_DC1394, false)
|
|
AM_CONDITIONAL(USE_DECKLINK, false)
|
|
AM_CONDITIONAL(DECKLINK_OSX, false)
|
|
AM_CONDITIONAL(USE_DIRECTFB, false)
|
|
AM_CONDITIONAL(USE_WAYLAND, false)
|
|
AM_CONDITIONAL(USE_DAALA, false)
|
|
AM_CONDITIONAL(USE_DTS, false)
|
|
AM_CONDITIONAL(USE_EXIF, false)
|
|
AM_CONDITIONAL(USE_RESINDVD, false)
|
|
AM_CONDITIONAL(USE_FAAC, false)
|
|
AM_CONDITIONAL(USE_FAAD, false)
|
|
AM_CONDITIONAL(USE_FBDEV, false)
|
|
AM_CONDITIONAL(USE_FLITE, false)
|
|
AM_CONDITIONAL(USE_FLUIDSYNTH, false)
|
|
AM_CONDITIONAL(USE_GL, false)
|
|
AM_CONDITIONAL(USE_GSM, false)
|
|
AM_CONDITIONAL(USE_GTK3, false)
|
|
AM_CONDITIONAL(USE_GTK3_GL, false)
|
|
AM_CONDITIONAL(USE_HLS, false)
|
|
AM_CONDITIONAL(USE_KATE, false)
|
|
AM_CONDITIONAL(USE_KMS, false)
|
|
AM_CONDITIONAL(USE_TIGER, false)
|
|
AM_CONDITIONAL(USE_LADSPA, false)
|
|
AM_CONDITIONAL(USE_LV2, false)
|
|
AM_CONDITIONAL(USE_LIBDE265, false)
|
|
AM_CONDITIONAL(USE_LIBMMS, false)
|
|
AM_CONDITIONAL(USE_LINSYS, false)
|
|
AM_CONDITIONAL(USE_MODPLUG, false)
|
|
AM_CONDITIONAL(USE_MIMIC, false)
|
|
AM_CONDITIONAL(USE_MPEG2ENC, false)
|
|
AM_CONDITIONAL(USE_MPLEX, false)
|
|
AM_CONDITIONAL(USE_MUSEPACK, false)
|
|
AM_CONDITIONAL(USE_NAS, false)
|
|
AM_CONDITIONAL(USE_NEON, false)
|
|
AM_CONDITIONAL(USE_OFA, false)
|
|
AM_CONDITIONAL(USE_OPENAL, false)
|
|
AM_CONDITIONAL(USE_OPENCV, false)
|
|
AM_CONDITIONAL(USE_OPENEXR, false)
|
|
AM_CONDITIONAL(USE_OPENJPEG, false)
|
|
AM_CONDITIONAL(USE_OPENNI2, false)
|
|
AM_CONDITIONAL(USE_OPUS, false)
|
|
AM_CONDITIONAL(USE_PVR, false)
|
|
AM_CONDITIONAL(USE_QT, false)
|
|
AM_CONDITIONAL(USE_LIBVISUAL, false)
|
|
AM_CONDITIONAL(USE_TIMIDITY, false)
|
|
AM_CONDITIONAL(USE_WILDMIDI, false)
|
|
AM_CONDITIONAL(USE_SDL, false)
|
|
AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
|
|
AM_CONDITIONAL(USE_SNDFILE, false)
|
|
AM_CONDITIONAL(USE_SOUNDTOUCH, false)
|
|
AM_CONDITIONAL(USE_SPANDSP, false)
|
|
AM_CONDITIONAL(USE_SPC, false)
|
|
AM_CONDITIONAL(USE_SRTP, false)
|
|
AM_CONDITIONAL(USE_GME, false)
|
|
AM_CONDITIONAL(USE_XVID, false)
|
|
AM_CONDITIONAL(USE_DVB, false)
|
|
AM_CONDITIONAL(USE_WININET, false)
|
|
AM_CONDITIONAL(USE_ACM, false)
|
|
AM_CONDITIONAL(USE_VDPAU, false)
|
|
AM_CONDITIONAL(USE_SBC, false)
|
|
AM_CONDITIONAL(USE_SCHRO, false)
|
|
AM_CONDITIONAL(USE_ZBAR, false)
|
|
AM_CONDITIONAL(USE_RSVG, false)
|
|
AM_CONDITIONAL(USE_RTMP, false)
|
|
AM_CONDITIONAL(USE_TELETEXTDEC, false)
|
|
AM_CONDITIONAL(USE_SNDIO, false)
|
|
AM_CONDITIONAL(USE_UVCH264, false)
|
|
AM_CONDITIONAL(USE_WEBP, false)
|
|
AM_CONDITIONAL(USE_OPENH264, false)
|
|
AM_CONDITIONAL(USE_X265, false)
|
|
AM_CONDITIONAL(USE_DTLS, false)
|
|
|
|
fi dnl of EXT plugins
|
|
|
|
dnl *** finalize CFLAGS, LDFLAGS, LIBS
|
|
|
|
dnl Overview:
|
|
dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
|
|
dnl GST_*: flags shared by built objects to link against GStreamer
|
|
dnl GST_ALL_LDFLAGS: linker flags shared by all
|
|
dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
|
|
dnl GST_LT_LDFLAGS: library versioning of our libraries
|
|
dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
|
|
|
|
dnl GST_OPTION_CFLAGS
|
|
if test "x$USE_DEBUG" = xyes; then
|
|
PROFILE_CFLAGS="-g"
|
|
fi
|
|
AC_SUBST(PROFILE_CFLAGS)
|
|
|
|
if test "x$PACKAGE_VERSION_NANO" = "x1"; then
|
|
dnl Define _only_ during CVS (not pre-releases or releases)
|
|
DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
|
|
else
|
|
DEPRECATED_CFLAGS=""
|
|
fi
|
|
AC_SUBST(DEPRECATED_CFLAGS)
|
|
|
|
dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
|
|
dnl at make time with e.g. make ERROR_CFLAGS=""
|
|
GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
|
|
GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
|
|
GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
|
|
AC_SUBST(GST_OPTION_CFLAGS)
|
|
AC_SUBST(GST_OPTION_CXXFLAGS)
|
|
AC_SUBST(GST_OPTION_OBJCFLAGS)
|
|
|
|
dnl FIXME: do we want to rename to GST_ALL_* ?
|
|
dnl prefer internal headers to already installed ones
|
|
dnl also add builddir include for enumtypes and marshal
|
|
dnl add GST_OPTION_CFLAGS, but overridable
|
|
GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
|
|
GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
|
|
GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
|
|
GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
|
|
AC_SUBST(GST_CFLAGS)
|
|
AC_SUBST(GST_CXXFLAGS)
|
|
AC_SUBST(GST_OBJCFLAGS)
|
|
AC_SUBST(GST_LIBS)
|
|
GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
|
|
GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
|
|
GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
|
|
AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
|
|
AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
|
|
AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
|
|
|
|
dnl LDFLAGS really should only contain flags, not libs - they get added before
|
|
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
|
|
GST_ALL_LDFLAGS="-no-undefined"
|
|
if test "x${enable_Bsymbolic}" = "xyes"; then
|
|
GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
|
|
fi
|
|
AC_SUBST(GST_ALL_LDFLAGS)
|
|
|
|
dnl GST_LIB_LDFLAGS
|
|
dnl linker flags shared by all libraries
|
|
dnl LDFLAGS modifier defining exported symbols from built libraries
|
|
dnl (export _gst_foo but not __gst_foo)
|
|
GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
|
|
AC_SUBST(GST_LIB_LDFLAGS)
|
|
|
|
dnl this really should only contain flags, not libs - they get added before
|
|
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
|
|
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
|
|
AC_SUBST(GST_PLUGIN_LDFLAGS)
|
|
|
|
dnl *** output files ***
|
|
|
|
$MKDIR_P tests/check/orc
|
|
|
|
dnl po/Makefile.in
|
|
|
|
AC_CONFIG_FILES(
|
|
Makefile
|
|
common/Makefile
|
|
common/m4/Makefile
|
|
gst-plugins-bad.spec
|
|
gst/Makefile
|
|
gst/accurip/Makefile
|
|
gst/adpcmdec/Makefile
|
|
gst/adpcmenc/Makefile
|
|
gst/aiff/Makefile
|
|
gst/videoframe_audiolevel/Makefile
|
|
gst/asfmux/Makefile
|
|
gst/audiofxbad/Makefile
|
|
gst/audiomixer/Makefile
|
|
gst/audiovisualizers/Makefile
|
|
gst/autoconvert/Makefile
|
|
gst/bayer/Makefile
|
|
gst/camerabin2/Makefile
|
|
gst/cdxaparse/Makefile
|
|
gst/coloreffects/Makefile
|
|
gst/dataurisrc/Makefile
|
|
gst/dccp/Makefile
|
|
gst/debugutils/Makefile
|
|
gst/dvbsuboverlay/Makefile
|
|
gst/dvdspu/Makefile
|
|
gst/faceoverlay/Makefile
|
|
gst/festival/Makefile
|
|
gst/fieldanalysis/Makefile
|
|
gst/freeverb/Makefile
|
|
gst/frei0r/Makefile
|
|
gst/gaudieffects/Makefile
|
|
gst/geometrictransform/Makefile
|
|
gst/gdp/Makefile
|
|
gst/hdvparse/Makefile
|
|
gst/id3tag/Makefile
|
|
gst/inter/Makefile
|
|
gst/interlace/Makefile
|
|
gst/ivfparse/Makefile
|
|
gst/ivtc/Makefile
|
|
gst/jp2kdecimator/Makefile
|
|
gst/jpegformat/Makefile
|
|
gst/librfb/Makefile
|
|
gst/midi/Makefile
|
|
gst/mpegdemux/Makefile
|
|
gst/mpegtsdemux/Makefile
|
|
gst/mpegtsmux/Makefile
|
|
gst/mpegtsmux/tsmux/Makefile
|
|
gst/mpegpsmux/Makefile
|
|
gst/mve/Makefile
|
|
gst/mxf/Makefile
|
|
gst/netsim/Makefile
|
|
gst/nuvdemux/Makefile
|
|
gst/onvif/Makefile
|
|
gst/patchdetect/Makefile
|
|
gst/pcapparse/Makefile
|
|
gst/pnm/Makefile
|
|
gst/rawparse/Makefile
|
|
gst/removesilence/Makefile
|
|
gst/sdi/Makefile
|
|
gst/sdp/Makefile
|
|
gst/segmentclip/Makefile
|
|
gst/siren/Makefile
|
|
gst/smooth/Makefile
|
|
gst/speed/Makefile
|
|
gst/subenc/Makefile
|
|
gst/stereo/Makefile
|
|
gst/tta/Makefile
|
|
gst/videofilters/Makefile
|
|
gst/videomeasure/Makefile
|
|
gst/videoparsers/Makefile
|
|
gst/videosignal/Makefile
|
|
gst/vmnc/Makefile
|
|
gst/y4m/Makefile
|
|
gst/yadif/Makefile
|
|
gst/compositor/Makefile
|
|
gst-libs/Makefile
|
|
gst-libs/gst/Makefile
|
|
gst-libs/gst/adaptivedemux/Makefile
|
|
gst-libs/gst/basecamerabinsrc/Makefile
|
|
gst-libs/gst/gl/Makefile
|
|
gst-libs/gst/gl/android/Makefile
|
|
gst-libs/gst/gl/cocoa/Makefile
|
|
gst-libs/gst/gl/dispmanx/Makefile
|
|
gst-libs/gst/gl/glprototypes/Makefile
|
|
gst-libs/gst/gl/eagl/Makefile
|
|
gst-libs/gst/gl/egl/Makefile
|
|
gst-libs/gst/gl/wayland/Makefile
|
|
gst-libs/gst/gl/win32/Makefile
|
|
gst-libs/gst/gl/x11/Makefile
|
|
gst-libs/gst/insertbin/Makefile
|
|
gst-libs/gst/interfaces/Makefile
|
|
gst-libs/gst/codecparsers/Makefile
|
|
gst-libs/gst/mpegts/Makefile
|
|
gst-libs/gst/uridownloader/Makefile
|
|
gst-libs/gst/wayland/Makefile
|
|
gst-libs/gst/base/Makefile
|
|
gst-libs/gst/player/Makefile
|
|
gst-libs/gst/video/Makefile
|
|
gst-libs/gst/audio/Makefile
|
|
sys/Makefile
|
|
sys/dshowdecwrapper/Makefile
|
|
sys/acmenc/Makefile
|
|
sys/acmmp3dec/Makefile
|
|
sys/androidmedia/Makefile
|
|
sys/applemedia/Makefile
|
|
sys/applemedia-nonpublic/Makefile
|
|
sys/avc/Makefile
|
|
sys/bluez/Makefile
|
|
sys/d3dvideosink/Makefile
|
|
sys/decklink/Makefile
|
|
sys/directsound/Makefile
|
|
sys/dshowsrcwrapper/Makefile
|
|
sys/dshowvideosink/Makefile
|
|
sys/dvb/Makefile
|
|
sys/fbdev/Makefile
|
|
sys/kms/Makefile
|
|
sys/linsys/Makefile
|
|
sys/nvenc/Makefile
|
|
sys/opensles/Makefile
|
|
sys/shm/Makefile
|
|
sys/tinyalsa/Makefile
|
|
sys/uvch264/Makefile
|
|
sys/vcd/Makefile
|
|
sys/vdpau/Makefile
|
|
sys/pvr2d/Makefile
|
|
sys/wasapi/Makefile
|
|
sys/wininet/Makefile
|
|
sys/winks/Makefile
|
|
sys/winscreencap/Makefile
|
|
tests/Makefile
|
|
tests/check/Makefile
|
|
tests/files/Makefile
|
|
tests/examples/Makefile
|
|
tests/examples/avsamplesink/Makefile
|
|
tests/examples/camerabin2/Makefile
|
|
tests/examples/codecparsers/Makefile
|
|
tests/examples/directfb/Makefile
|
|
tests/examples/gl/Makefile
|
|
tests/examples/gl/cocoa/Makefile
|
|
tests/examples/gl/clutter/Makefile
|
|
tests/examples/gl/generic/Makefile
|
|
tests/examples/gl/generic/cube/Makefile
|
|
tests/examples/gl/generic/cubeyuv/Makefile
|
|
tests/examples/gl/generic/doublecube/Makefile
|
|
tests/examples/gl/generic/recordgraphic/Makefile
|
|
tests/examples/gl/gtk/Makefile
|
|
tests/examples/gl/gtk/3dvideo/Makefile
|
|
tests/examples/gl/gtk/filternovideooverlay/Makefile
|
|
tests/examples/gl/gtk/filtervideooverlay/Makefile
|
|
tests/examples/gl/gtk/fxtest/Makefile
|
|
tests/examples/gl/gtk/switchvideooverlay/Makefile
|
|
tests/examples/gl/qt/Makefile
|
|
tests/examples/gl/sdl/Makefile
|
|
tests/examples/gtk/Makefile
|
|
tests/examples/mpegts/Makefile
|
|
tests/examples/mxf/Makefile
|
|
tests/examples/opencv/Makefile
|
|
tests/examples/uvch264/Makefile
|
|
tests/examples/waylandsink/Makefile
|
|
tests/icles/Makefile
|
|
ext/voamrwbenc/Makefile
|
|
ext/voaacenc/Makefile
|
|
ext/assrender/Makefile
|
|
ext/apexsink/Makefile
|
|
ext/bs2b/Makefile
|
|
ext/bz2/Makefile
|
|
ext/chromaprint/Makefile
|
|
ext/curl/Makefile
|
|
ext/dash/Makefile
|
|
ext/dc1394/Makefile
|
|
ext/directfb/Makefile
|
|
ext/wayland/Makefile
|
|
ext/daala/Makefile
|
|
ext/dts/Makefile
|
|
ext/gl/Makefile
|
|
ext/gtk/Makefile
|
|
ext/faac/Makefile
|
|
ext/faad/Makefile
|
|
ext/flite/Makefile
|
|
ext/fluidsynth/Makefile
|
|
ext/gsm/Makefile
|
|
ext/hls/Makefile
|
|
ext/kate/Makefile
|
|
ext/ladspa/Makefile
|
|
ext/lv2/Makefile
|
|
ext/libde265/Makefile
|
|
ext/libmms/Makefile
|
|
ext/libvisual/Makefile
|
|
ext/Makefile
|
|
ext/modplug/Makefile
|
|
ext/mpeg2enc/Makefile
|
|
ext/mimic/Makefile
|
|
ext/mplex/Makefile
|
|
ext/musepack/Makefile
|
|
ext/nas/Makefile
|
|
ext/neon/Makefile
|
|
ext/ofa/Makefile
|
|
ext/openal/Makefile
|
|
ext/opencv/Makefile
|
|
ext/openexr/Makefile
|
|
ext/openh264/Makefile
|
|
ext/openjpeg/Makefile
|
|
ext/openni2/Makefile
|
|
ext/opus/Makefile
|
|
ext/qt/Makefile
|
|
ext/rsvg/Makefile
|
|
ext/resindvd/Makefile
|
|
ext/rtmp/Makefile
|
|
ext/sbc/Makefile
|
|
ext/schroedinger/Makefile
|
|
ext/sdl/Makefile
|
|
ext/smoothstreaming/Makefile
|
|
ext/sndfile/Makefile
|
|
ext/soundtouch/Makefile
|
|
ext/spandsp/Makefile
|
|
ext/sndio/Makefile
|
|
ext/srtp/Makefile
|
|
ext/teletextdec/Makefile
|
|
ext/gme/Makefile
|
|
ext/spc/Makefile
|
|
ext/timidity/Makefile
|
|
ext/vulkan/Makefile
|
|
ext/vulkan/xcb/Makefile
|
|
ext/vulkan/wayland/Makefile
|
|
ext/webp/Makefile
|
|
ext/x265/Makefile
|
|
ext/xvid/Makefile
|
|
ext/zbar/Makefile
|
|
ext/dtls/Makefile
|
|
po/Makefile.in
|
|
docs/Makefile
|
|
docs/plugins/Makefile
|
|
docs/libs/Makefile
|
|
docs/version.entities
|
|
pkgconfig/Makefile
|
|
pkgconfig/gstreamer-plugins-bad.pc
|
|
pkgconfig/gstreamer-plugins-bad-uninstalled.pc
|
|
pkgconfig/gstreamer-codecparsers.pc
|
|
pkgconfig/gstreamer-codecparsers-uninstalled.pc
|
|
pkgconfig/gstreamer-insertbin.pc
|
|
pkgconfig/gstreamer-insertbin-uninstalled.pc
|
|
pkgconfig/gstreamer-gl.pc
|
|
pkgconfig/gstreamer-gl-uninstalled.pc
|
|
pkgconfig/gstreamer-mpegts.pc
|
|
pkgconfig/gstreamer-mpegts-uninstalled.pc
|
|
pkgconfig/gstreamer-player.pc
|
|
pkgconfig/gstreamer-player-uninstalled.pc
|
|
pkgconfig/gstreamer-wayland.pc
|
|
pkgconfig/gstreamer-wayland-uninstalled.pc
|
|
pkgconfig/gstreamer-bad-base.pc
|
|
pkgconfig/gstreamer-bad-base-uninstalled.pc
|
|
pkgconfig/gstreamer-bad-video.pc
|
|
pkgconfig/gstreamer-bad-video-uninstalled.pc
|
|
pkgconfig/gstreamer-bad-audio.pc
|
|
pkgconfig/gstreamer-bad-audio-uninstalled.pc
|
|
tools/Makefile
|
|
m4/Makefile
|
|
)
|
|
|
|
dnl Create the config.h file for Visual Studio builds
|
|
dnl Beware of spaces and /'s in some of the shell variable contents.
|
|
sed \
|
|
-e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"/' \
|
|
-e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
|
|
-e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
|
|
-e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
|
|
-e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
|
|
-e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
|
|
-e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
|
|
-e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
|
|
-e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
|
|
-e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
|
|
-e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
|
|
-e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
|
|
-e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
|
|
-e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
|
|
-e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
|
|
-e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
|
|
-e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
|
|
-e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
|
|
-e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
|
|
-e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
|
|
-e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
|
|
-e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
|
|
-e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
|
|
-e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
|
|
-e 's/.* PLUGINDIR$/#ifdef _DEBUG\n# define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n# define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
|
|
-e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
|
|
-e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
|
|
-e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
|
|
-e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
|
|
-e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
|
|
-e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
|
|
-e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
|
|
-e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
|
|
-e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
|
|
config.h.in >win32/common/config.h-new
|
|
|
|
AC_OUTPUT
|
|
|
|
AG_GST_OUTPUT_PLUGINS
|
|
ORC_OUTPUT
|
|
|