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.5.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
+AC_INIT([GStreamer Bad Plug-ins],[1.9.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
AG_GST_INIT
[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
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 590, 0, 590)
+AS_LIBTOOL(GST, 901, 0, 901)
dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.5.90
-GSTPB_REQ=1.5.90
+GST_REQ=1.9.1.1
+GSTPB_REQ=1.9.1.1
dnl *** autotools stuff ****
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
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
dnl GLib is required
-GLIB_REQ=2.32.0
+GLIB_REQ=2.40.0
AG_GST_GLIB_CHECK([$GLIB_REQ])
dnl checks for gstreamer
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)
+AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
+AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
+AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$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)
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
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)
+PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
if test "x$HAVE_GRAPHENE" = "xyes"; then
AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
fi
AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
+dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
+dnl needed only on Windows, but it doesn't hurt to have it everywhere.
+if test x$enable_static = xyes -a x$enable_shared = xno; then
+ GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
+fi
+
+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=""
sdi tta \
videomeasure \
linsys \
- apexsink dc1394 \
- gsettings \
- musepack nas sdl timidity \
- acm wininet \
- xvid lv2 teletextdec sndio libvisual"
+ apexsink \
+ 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(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(jp2kdecimator)
AG_GST_CHECK_PLUGIN(jpegformat)
AG_GST_CHECK_PLUGIN(librfb)
-AG_GST_CHECK_PLUGIN(liveadder)
AG_GST_CHECK_PLUGIN(midi)
AG_GST_CHECK_PLUGIN(mpegdemux)
AG_GST_CHECK_PLUGIN(mpegtsdemux)
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(pnm)
AG_GST_CHECK_PLUGIN(rawparse)
AG_GST_CHECK_PLUGIN(removesilence)
-AG_GST_CHECK_PLUGIN(rtp)
AG_GST_CHECK_PLUGIN(sdi)
AG_GST_CHECK_PLUGIN(sdp)
AG_GST_CHECK_PLUGIN(segmentclip)
AG_GST_CHECK_PLUGIN(speed)
AG_GST_CHECK_PLUGIN(subenc)
AG_GST_CHECK_PLUGIN(stereo)
+AG_GST_CHECK_PLUGIN(timecode)
AG_GST_CHECK_PLUGIN(tta)
AG_GST_CHECK_PLUGIN(videofilters)
AG_GST_CHECK_PLUGIN(videomeasure)
HAVE_GL=no
HAVE_GLES2=no
+HAVE_GLES3_H=no
HAVE_WAYLAND_EGL=no
HAVE_EGL_RPI=no
;;
*)
if test "x$NEED_GL" != "xno"; then
- AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
+ 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_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
+ 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_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
+ 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
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)
+
+ # OS X and iOS always have GL available
+ case $host in
+ *-darwin*)
+ if test "x$HAVE_IOS" = "xyes"; then
+ HAVE_GLES2=yes
+ else
+ HAVE_GL=yes
+ fi
+ ;;
+ esac
;;
esac
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
# include <OpenGLES/ES2/gl.h>
# include <OpenGLES/ES2/glext.h>
# else
-# include <GLES2/gl2.h>
-# include <GLES2/gl2ext.h>
+# 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 <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_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ERROR_CFLAGS"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$GL_INCLUDES]], [[
+ 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
else
AC_MSG_WARN([Disabling GL|ES 2.0 support])
HAVE_GLES2=no
+ HAVE_GLES3_H=no
fi
])
- CPPFLAGS="$save_CPPFLAGS"
+ CFLAGS="$save_CFLAGS"
fi
#dnl Check for OpenGL
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_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])
# include <OpenGLES/ES2/gl.h>
# include <OpenGLES/ES2/glext.h>
# else
-# include <GLES2/gl2.h>
-# include <GLES2/gl2ext.h>
+# 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
GST_GL_HAVE_GLINTPTR=0
GST_GL_HAVE_GLSYNC=0
GST_GL_HAVE_GLUINT64=0
+GST_GL_HAVE_GLINT64=0
+GST_GL_HAVE_EGLATTRIB=0
old_CFLAGS=$CFLAGS
CFLAGS="$GL_CFLAGS $CFLAGS"
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
+
+if test "x$USE_EGL" = "xyes"; then
+ EGL_INCLUDES="$GL_INCLUDES
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
+ "
+ AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
+ if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
+ GST_GL_HAVE_EGLATTRIB=1
+ fi
+fi
+
CFLAGS=$old_CFLAGS
GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
#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
+#define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
"
AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
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 ***
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, [
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)
- AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
HAVE_GUDEV="yes" ],
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, [
+ 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 !
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.9.4, [
+ PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
HAVE_ASSRENDER="yes" ], [
HAVE_ASSRENDER="no"
])
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/ip.h netinet/tcp.h fcntl.h], [ ], [
+ 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)
], [
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 wayland-scanner, [
- HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
+ 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"
])
])
-AC_PATH_PROG([wayland_scanner], [wayland-scanner])
-
dnl **** WebP ****
translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
AC_SUBST(FAAC_LIBS)
])
-dnl **** Free AAC Decoder (FAAD) ****
+dnl **** Free AAC Decoder (FAAD2) ****
translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
-AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
- HAVE_FAAD="yes"
- faad_hdr=""
- AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
- FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
- if test $HAVE_FAAD = "no"; then
- AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
- [ FAAD_LIBS="-lfaad $LIBM"
- AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
- faad_hdr="neaacdec.h"
- ], [
- HAVE_FAAD="no"
- ],)
- else
- faad_hdr="faad.h"
- fi
- if test $HAVE_FAAD = "yes"; then
- AC_MSG_CHECKING([Checking for FAAD >= 2.0])
+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
- #else
- /* Release candidate of 2.0 is not good enough for us. This field
- * was added only in 2.0 final and does not exist in 2.0-RC3 */
- faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
- #endif
+ #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
+ #error Not faad2
+ #elif !defined(LATM)
+ #error Not faad2 >= 2.7
+ #endif
]])],[
HAVE_FAAD="yes"
-
- AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
- for minor in 10 9 8 7 6 5 0; do
- if test x$faad2_minor_version = "x"; then
- AC_EGREP_CPP([\"2\.$minor\"$], [
- #include <$faad_hdr>
- FAAD2_VERSION
- ], [
- faad2_minor_version=$minor
- ])
- fi
- done
- if test x$faad2_minor_version = "x"; then
- AC_MSG_RESULT([no idea])
- else
- AC_MSG_RESULT([2.$faad2_minor_version])
- AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
- fi
- ],[
+ FAAD_LIBS="-lfaad"
+ ], [
+ AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
HAVE_FAAD="no"
])
- fi
+ ], [
+ HAVE_FAAD="no"
+ ])
AC_SUBST(FAAD_LIBS)
- AC_SUBST(FAAD_IS_NEAAC)
])
dnl *** fbdev ***
fi
])
+dnl *** fdkaac ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
+AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
+ PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", [
+ HAVE_FDK_AAC="no"
+ ])
+])
+
dnl *** flite ***
translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
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_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, [
dnl *** LV2 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
- PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
- AC_SUBST(SLV2_CFLAGS)
- AC_SUBST(SLV2_LIBS)
+ PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
+ HAVE_LV2="yes",
+ HAVE_LILV_0_22="yes"
+ AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
+ ],[
+ PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
+ ])
+ AC_SUBST(LILV_CFLAGS)
+ AC_SUBST(LILV_LIBS)
])
dnl *** libde265 ***
dnl *** dtls ***
translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
- PKG_CHECK_MODULES(DTLS, [ openssl >= 0.9.5 libcrypto ], [
+ PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
HAVE_DTLS="yes"
AC_SUBST(DTLS_CFLAGS)
AC_SUBST(DTLS_LIBS)
fi
])
-dnl *** mpg123 ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true)
-AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [
- PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no")
- AC_SUBST(MPG123_CFLAGS)
- AC_SUBST(MPG123_LIBS)
-])
-
dnl *** mplex ***
translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
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 < 2.5.0 , [
+ 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/contrib/contrib.hpp \
- opencv2/core/core_c.h \
- opencv2/core/types_c.h \
+ 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/legacy/compat.hpp \
- opencv2/legacy/legacy.hpp \
opencv2/objdetect/objdetect.hpp \
opencv2/video/background_segm.hpp], [], [something_not_found=yes])
CPPFLAGS=$OLD_CPPFLAGS
AC_SUBST(OPENCV_PREFIX)
AC_SUBST(OPENCV_CFLAGS)
AC_SUBST(OPENCV_LIBS)
- AC_CHECK_FILE([$OPENCV_PREFIX/share/opencv/],
- [AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])],
- [AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])])
+ 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_OPENJPEG, true)
AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
HAVE_OPENJPEG="no"
-
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- OPENJPEG_LIBS="-lopenjp2"
- LIBS="$LIBS $OPENJPEG_LIBS"
- CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
- [return (int) *opj_version ();])
- ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
-
- if test x"$HAVE_OPENJPEG" = x"no"; then
+ 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",
dnl *** rsvg ***
translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
- PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36 cairo, [
- HAVE_RSVG="yes"
- PKG_CHECK_MODULES(RSVG_2_36_2, librsvg-2.0 >= 2.36.2, HAVE_RSVG_2_36_2="yes", HAVE_RSVG_2_36_2="no")
- if test "x$HAVE_RSVG_2_36_2" = "xyes"; then
- AC_DEFINE(HAVE_RSVG_2_36_2, [1], [Have RSVG 2.36.2 or newer])
- fi
- ], [
- HAVE_RSVG="no"
- ])
- AC_SUBST(RSVG_CFLAGS)
- AC_SUBST(RSVG_LIBS)
+ AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
])
dnl *** gl ***
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"
+ AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
+ HAVE_GTK3="yes"
], [
- HAVE_GTK3="no"
+ 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])
- if test "x$HAVE_GL" = "xyes"; then
- HAVE_GTK3_GL="yes"
- fi
+ HAVE_GTK3_GL="yes"
+ fi
], [
HAVE_GTK3_GL="no"
])
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 Qt5Quick, [
+ 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"])
HAVE_QT="no"
else
HAVE_QT="yes"
- 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"
+ HAVE_QT_WINDOWING="no"
+ QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
+ QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
+ AS_IF([test -f "$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
+ QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
+ HAVE_QT_QPA_HEADER="yes"
+ ], [AC_MSG_NOTICE([Cannot find QPA])])
+ 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"
- AC_SUBST([QT_CFLAGS])
- AC_SUBST([QT_LIBS])
- ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
+ 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" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; 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_PLATFORM_EGL" = "x1"; then
+ if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "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_EGLFS], [],
+ [Define if Qt eglfs 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])])
+ else
+ AC_DEFINE([HAVE_QT_EGLFS], [],
+ [Define if Qt eglfs integration is installed])
+ HAVE_QT_WINDOWING="yes"
+ fi
+ 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, [
AC_SUBST(SPANDSP_CFLAGS)
AC_SUBST(SPANDSP_LIBS)
-dnl *** GSettings ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
-AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
- AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
- if test "x$HAVE_GSETTINGS" = "xyes"; then
- GLIB_GSETTINGS
- fi
-])
-
dnl *** sndio ***
translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
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, [
- 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,
- [
+ 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"
- ], [
- HAVE_HLS="no"
+ ],[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) ***
AG_GST_PKG_CHECK_MODULES(X265, x265)
])
+dnl *** WebRTC Audio Processing ***
+dnl Note: We test for a specific version as there is no API stability
+translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
+AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
+
+ AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
+
+ # On Android, C++ headers comes with the STL implementation
+ AS_CASE(["${host}"],
+ [*android*],
+ [
+ PKG_CHECK_MODULES(GNUSTL, gnustl, [
+ WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
+ WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
+ ])
+ AC_SUBST([WEBRTCDSP_CFLAGS])
+ AC_SUBST([WEBRTCDSP_LIBS])
+
+ AC_LANG_PUSH([C++])
+ old_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
+ AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
+ CPPFLAGS=$old_CPPFLAGS
+ AC_LANG_POP([C++])
+])
+
else
dnl not building plugins with external dependencies,
AM_CONDITIONAL(USE_FAAC, false)
AM_CONDITIONAL(USE_FAAD, false)
AM_CONDITIONAL(USE_FBDEV, false)
+AM_CONDITIONAL(USE_FDK_AAC, false)
AM_CONDITIONAL(USE_FLITE, false)
AM_CONDITIONAL(USE_FLUIDSYNTH, false)
AM_CONDITIONAL(USE_GL, 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_MODPLUG, false)
AM_CONDITIONAL(USE_MIMIC, false)
AM_CONDITIONAL(USE_MPEG2ENC, false)
-AM_CONDITIONAL(USE_MPG123, false)
AM_CONDITIONAL(USE_MPLEX, false)
AM_CONDITIONAL(USE_MUSEPACK, false)
AM_CONDITIONAL(USE_NAS, false)
AM_CONDITIONAL(USE_SPC, false)
AM_CONDITIONAL(USE_SRTP, false)
AM_CONDITIONAL(USE_GME, false)
-AM_CONDITIONAL(USE_GSETTINGS, false)
AM_CONDITIONAL(USE_XVID, false)
AM_CONDITIONAL(USE_DVB, false)
AM_CONDITIONAL(USE_WININET, false)
AM_CONDITIONAL(USE_SNDIO, false)
AM_CONDITIONAL(USE_UVCH264, false)
AM_CONDITIONAL(USE_WEBP, false)
+AM_CONDITIONAL(USE_WEBRTCDSP, false)
AM_CONDITIONAL(USE_OPENH264, false)
AM_CONDITIONAL(USE_X265, false)
AM_CONDITIONAL(USE_DTLS, false)
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_CFLAGS="$GST_CFLAGS $GST_STATIC_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)"
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
gst/adpcmdec/Makefile
gst/adpcmenc/Makefile
gst/aiff/Makefile
+gst/videoframe_audiolevel/Makefile
gst/asfmux/Makefile
gst/audiofxbad/Makefile
gst/audiomixer/Makefile
gst/jp2kdecimator/Makefile
gst/jpegformat/Makefile
gst/librfb/Makefile
-gst/liveadder/Makefile
gst/midi/Makefile
gst/mpegdemux/Makefile
gst/mpegtsdemux/Makefile
gst/mpegpsmux/Makefile
gst/mve/Makefile
gst/mxf/Makefile
+gst/netsim/Makefile
gst/nuvdemux/Makefile
gst/onvif/Makefile
gst/patchdetect/Makefile
gst/pnm/Makefile
gst/rawparse/Makefile
gst/removesilence/Makefile
-gst/rtp/Makefile
gst/sdi/Makefile
gst/sdp/Makefile
gst/segmentclip/Makefile
gst/subenc/Makefile
gst/stereo/Makefile
gst/tta/Makefile
+gst/timecode/Makefile
gst/videofilters/Makefile
gst/videomeasure/Makefile
gst/videoparsers/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/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
tests/examples/gl/generic/doublecube/Makefile
tests/examples/gl/generic/recordgraphic/Makefile
tests/examples/gl/gtk/Makefile
-tests/examples/gl/gtk/gtkvideooverlay/Makefile
tests/examples/gl/gtk/3dvideo/Makefile
tests/examples/gl/gtk/filternovideooverlay/Makefile
tests/examples/gl/gtk/filtervideooverlay/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/gtk/Makefile
ext/faac/Makefile
ext/faad/Makefile
+ext/fdkaac/Makefile
ext/flite/Makefile
ext/fluidsynth/Makefile
ext/gsm/Makefile
ext/Makefile
ext/modplug/Makefile
ext/mpeg2enc/Makefile
-ext/mpg123/Makefile
ext/mimic/Makefile
ext/mplex/Makefile
ext/musepack/Makefile
ext/srtp/Makefile
ext/teletextdec/Makefile
ext/gme/Makefile
-ext/gsettings/Makefile
-ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
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
+ext/webrtcdsp/Makefile
po/Makefile.in
docs/Makefile
docs/plugins/Makefile
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
)