3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.13.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1301, 0, 1301)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 dnl *** checks for types/defines ***
169 dnl *** checks for structures ***
171 dnl *** checks for compiler characteristics ***
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r pipe2])
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
179 dnl *** checks for dependency libraries ***
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
189 dnl Needed by plugins that use g_module_*() API
190 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
192 dnl checks for gstreamer
193 dnl uninstalled is selected preferentially -- see pkg-config(1)
194 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
197 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
198 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
199 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
200 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
201 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
202 AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GST_REQ], no)
203 AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-[$GST_API_VERSION], [$GST_REQ], yes)
205 if test "x$HAVE_GST_GL" = "xyes"; then
207 AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
208 GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
209 AC_MSG_RESULT([$GST_GL_WINSYS])
210 GST_GL_HAVE_WINDOW_X11=""
211 GST_GL_HAVE_WINDOW_WAYLAND=""
212 GST_GL_HAVE_WINDOW_ANDROID=""
213 GST_GL_HAVE_WINDOW_COCOA=""
214 GST_GL_HAVE_WINDOW_EAGL=""
215 case "$GST_GL_WINSYS" in *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
216 case "$GST_GL_WINSYS" in *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
217 case "$GST_GL_WINSYS" in *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
218 case "$GST_GL_WINSYS" in *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
219 case "$GST_GL_WINSYS" in *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
221 AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
222 GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
223 AC_MSG_RESULT([$GST_GL_PLATFORMS])
224 GST_GL_HAVE_PLATFORM_GLX=""
225 GST_GL_HAVE_PLATFORM_EGL=""
226 GST_GL_HAVE_PLATFORM_CGL=""
227 GST_GL_HAVE_PLATFORM_EAGL=""
228 case "$GST_GL_PLATFORMS" in *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
229 case "$GST_GL_PLATFORMS" in *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
230 case "$GST_GL_PLATFORMS" in *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
231 case "$GST_GL_PLATFORMS" in *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
233 AC_MSG_CHECKING([GStreamer OpenGL apis ...])
234 GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
235 AC_MSG_RESULT([$GST_GL_APIS])
236 GST_GL_HAVE_API_GLES2=""
237 GST_GL_HAVE_API_GL=""
238 case "$GST_GL_APIS" in *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
239 case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
242 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
244 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
246 dnl check for uninstalled plugin directories for unit tests
247 AG_GST_CHECK_UNINSTALLED_SETUP([
248 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
249 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
250 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
253 dnl Check for documentation xrefs
254 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
255 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
256 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
257 AC_SUBST(GLIB_PREFIX)
259 AC_SUBST(GSTPB_PREFIX)
261 dnl GTK is optional and used in examples
265 if test "x$BUILD_EXAMPLES" = "xyes"; then
266 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
268 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
270 2.0) GTK_REQ=$GTK2_REQ ;;
271 3.0) GTK_REQ=$GTK3_REQ ;;
272 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
276 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
277 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
281 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
283 dnl Check for -Bsymbolic-functions linker flag used to avoid
284 dnl intra-library PLT jumps, if available.
285 AC_ARG_ENABLE(Bsymbolic,
286 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
287 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
288 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
289 LDFLAGS=-Wl,-Bsymbolic-functions
291 AC_TRY_LINK([], [return 0],
293 enable_Bsymbolic=yes,
296 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
298 dnl *** set variables based on configure arguments ***
300 dnl GTK is optional and used in examples
302 if test "x$BUILD_EXAMPLES" = "xyes"; then
303 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
304 if test "x$HAVE_GTK3" = "xyes"; then
306 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
307 AC_SUBST(GTK_VERSION)
308 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
309 AC_SUBST(GTK_BASE_DIR)
313 AC_SUBST(GTK3_CFLAGS)
315 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
317 dnl x11 is optional for librfb
319 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
323 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
324 if test "x$HAVE_X11" = "xyes"; then
325 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
328 dnl exif (used on jifmux tests) ****
329 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
331 AC_SUBST(EXIF_CFLAGS)
332 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
334 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
335 PKG_CHECK_MODULES(DSSIM, dssim, [
343 if test "x$HAVE_DSSIM" = "xyes"; then
344 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
347 AC_SUBST(DSSIM_CFLAGS)
349 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
354 dnl set license and copyright notice
356 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
357 AC_SUBST(GST_LICENSE)
359 dnl define LIBDIR so we can inform people where we live
360 AS_AC_EXPAND(LIBDIR, $libdir)
361 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
363 dnl set location of plugin directory
366 dnl set release date/time
367 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
368 ["${srcdir}/gst-plugins-bad.doap"],
369 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
371 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
372 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
373 if test x$enable_static = xyes -a x$enable_shared = xno; then
374 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
377 AC_ARG_WITH([player-tests],
378 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
379 if test x$with_player_tests = xyes; then
380 AC_PATH_PROG([WGET], [wget], no)
381 if test x$WGET = xno; then
382 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
386 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
388 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
389 dnl make sure it doesn't complain about unused variables if debugging is disabled
391 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
393 dnl define an ERROR_CFLAGS Makefile variable
394 dnl -Waggregate-return - libexif returns aggregates
395 dnl -Wundef - Windows headers check _MSC_VER unconditionally
396 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
397 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
398 -Wwrite-strings -Wformat-security -Wold-style-definition
399 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
400 -Wnested-externs $NO_WARNINGS])
402 dnl define an ERROR_CXXFLAGS Makefile variable
403 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
404 -Wmissing-declarations -Wredundant-decls
405 -Wwrite-strings -Wformat-nonliteral -Wformat-security
406 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
408 dnl define an ERROR_OBJCFLAGS Makefile variable
409 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
410 -Wmissing-declarations -Wredundant-decls
411 -Wwrite-strings -Wformat-nonliteral -Wformat-security
412 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
414 dnl define correct level for debugging messages
415 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
418 AG_GST_DEFAULT_ELEMENTS
420 dnl *** plug-ins to include ***
422 dnl these are all the gst plug-ins, compilable without additional libs
423 AG_GST_CHECK_PLUGIN(accurip)
424 AG_GST_CHECK_PLUGIN(adpcmdec)
425 AG_GST_CHECK_PLUGIN(adpcmenc)
426 AG_GST_CHECK_PLUGIN(aiff)
427 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
428 AG_GST_CHECK_PLUGIN(asfmux)
429 AG_GST_CHECK_PLUGIN(audiobuffersplit)
430 AG_GST_CHECK_PLUGIN(audiofxbad)
431 AG_GST_CHECK_PLUGIN(audiolatency)
432 AG_GST_CHECK_PLUGIN(audiomixmatrix)
433 AG_GST_CHECK_PLUGIN(compositor)
434 AG_GST_CHECK_PLUGIN(audiovisualizers)
435 AG_GST_CHECK_PLUGIN(autoconvert)
436 AG_GST_CHECK_PLUGIN(bayer)
437 AG_GST_CHECK_PLUGIN(camerabin2)
438 AG_GST_CHECK_PLUGIN(coloreffects)
439 AG_GST_CHECK_PLUGIN(debugutils)
440 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
441 AG_GST_CHECK_PLUGIN(dvdspu)
442 AG_GST_CHECK_PLUGIN(faceoverlay)
443 AG_GST_CHECK_PLUGIN(festival)
444 AG_GST_CHECK_PLUGIN(fieldanalysis)
445 AG_GST_CHECK_PLUGIN(freeverb)
446 AG_GST_CHECK_PLUGIN(frei0r)
447 AG_GST_CHECK_PLUGIN(gaudieffects)
448 AG_GST_CHECK_PLUGIN(geometrictransform)
449 AG_GST_CHECK_PLUGIN(gdp)
450 AG_GST_CHECK_PLUGIN(id3tag)
451 AG_GST_CHECK_PLUGIN(inter)
452 AG_GST_CHECK_PLUGIN(interlace)
453 AG_GST_CHECK_PLUGIN(ivfparse)
454 AG_GST_CHECK_PLUGIN(ivtc)
455 AG_GST_CHECK_PLUGIN(jp2kdecimator)
456 AG_GST_CHECK_PLUGIN(jpegformat)
457 AG_GST_CHECK_PLUGIN(librfb)
458 AG_GST_CHECK_PLUGIN(midi)
459 AG_GST_CHECK_PLUGIN(mpegdemux)
460 AG_GST_CHECK_PLUGIN(mpegtsdemux)
461 AG_GST_CHECK_PLUGIN(mpegtsmux)
462 AG_GST_CHECK_PLUGIN(mpegpsmux)
463 AG_GST_CHECK_PLUGIN(mxf)
464 AG_GST_CHECK_PLUGIN(netsim)
465 AG_GST_CHECK_PLUGIN(onvif)
466 AG_GST_CHECK_PLUGIN(pcapparse)
467 AG_GST_CHECK_PLUGIN(pnm)
468 AG_GST_CHECK_PLUGIN(proxy)
469 AG_GST_CHECK_PLUGIN(rawparse)
470 AG_GST_CHECK_PLUGIN(removesilence)
471 AG_GST_CHECK_PLUGIN(sdp)
472 AG_GST_CHECK_PLUGIN(segmentclip)
473 AG_GST_CHECK_PLUGIN(siren)
474 AG_GST_CHECK_PLUGIN(smooth)
475 AG_GST_CHECK_PLUGIN(speed)
476 AG_GST_CHECK_PLUGIN(subenc)
477 AG_GST_CHECK_PLUGIN(stereo)
478 AG_GST_CHECK_PLUGIN(timecode)
479 AG_GST_CHECK_PLUGIN(videofilters)
480 AG_GST_CHECK_PLUGIN(videoparsers)
481 AG_GST_CHECK_PLUGIN(videosignal)
482 AG_GST_CHECK_PLUGIN(vmnc)
483 AG_GST_CHECK_PLUGIN(y4m)
484 AG_GST_CHECK_PLUGIN(yadif)
486 dnl *** plug-ins to exclude ***
488 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
489 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
490 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
492 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
494 LIBS="$LIBS -framework VideoToolbox"
495 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
496 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
502 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
503 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
504 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
507 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
508 if test "x$HAVE_IOS" = "xyes"; then
509 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
512 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
513 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
514 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
517 dnl disable gst plugins we might not be able to build on this
518 dnl platform: (ugly but minimally invasive)
519 dnl FIXME: maybe move to sys, or make work with winsock2
520 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
521 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
523 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
524 WINSOCK2_LIBS="-lws2_32"
525 AC_SUBST(WINSOCK2_LIBS)
529 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
530 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
532 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
533 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
534 VULKAN_CONFIG_DEFINES="
535 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
536 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
538 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
539 outfile=vkconfig.h-tmp
540 cat > $outfile <<\_______EOF
543 * This is a generated file. Please modify `configure.ac'
546 #ifndef __GST_VULKAN_CONFIG_H__
547 #define __GST_VULKAN_CONFIG_H__
555 cat >>$outfile <<_______EOF
556 $vulkan_config_defines
559 cat >>$outfile <<_______EOF
563 #endif /* __GST_VULKAN_CONFIG_H__ */
567 if cmp -s $outfile ext/vulkan/vkconfig.h; then
568 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
571 mv $outfile ext/vulkan/vkconfig.h
574 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
577 dnl *** sys plug-ins ***
580 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
581 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
582 HAVE_DIRECTSOUND="no"
583 save_CFLAGS="$CFLAGS"
584 save_LDFLAGS="$LDFLAGS"
586 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
587 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
588 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
589 AC_MSG_CHECKING(for DirectSound LDFLAGS)
590 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
594 #include <mmsystem.h>
596 DXGetErrorString9 (0);
597 DirectSoundCreate(NULL, NULL, NULL);
599 [HAVE_DIRECTSOUND="yes"],
600 [HAVE_DIRECTSOUND="no"])
601 AC_MSG_RESULT($HAVE_DIRECTSOUND)
603 LDFLAGS=$save_LDFLAGS
606 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
607 dnl this is much more than we want
608 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
609 AC_SUBST(DIRECTX_CFLAGS)
610 AC_SUBST(DIRECTX_LDFLAGS)
611 AC_SUBST(DIRECTSOUND_LIBS)
613 AC_SUBST(HAVE_DIRECTSOUND)
617 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
618 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
620 save_CFLAGS="$CFLAGS"
621 save_LDFLAGS="$LDFLAGS"
623 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
624 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
625 LIBS="$LIBS -lole32 -lwinmm -lksuser"
626 AC_MSG_CHECKING(for WASAPI LDFLAGS)
627 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
630 #include <mmsystem.h>
631 #include <mmdeviceapi.h>
637 hr = CoInitialize(NULL);
639 printf("CoInitialize failed: hr = 0x%08x", hr);
644 // result = do_everything(argc, argv);
652 AC_MSG_RESULT($HAVE_WASAPI)
654 LDFLAGS=$save_LDFLAGS
657 if test "x$HAVE_WASAPI" = "xyes"; then
658 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
659 AC_SUBST(WASAPI_LIBS)
661 AC_SUBST(HAVE_WASAPI)
665 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
666 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
668 save_CFLAGS="$CFLAGS"
669 save_LDFLAGS="$LDFLAGS"
671 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
672 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
673 LIBS="$LIBS -ld3d9 -lgdi32"
674 AC_MSG_CHECKING(for Direct3D LDFLAGS)
675 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
679 Direct3DCreate9(D3D_SDK_VERSION);
681 [HAVE_DIRECT3D="yes"],
682 [HAVE_DIRECT3D="no"])
683 AC_MSG_RESULT($HAVE_DIRECT3D)
685 LDFLAGS=$save_LDFLAGS
688 if test "x$HAVE_DIRECT3D" = "xyes"; then
689 DIRECT3D_LIBS="-ld3d9 -lgdi32"
690 AC_SUBST(DIRECT3D_LIBS)
692 AC_SUBST(HAVE_DIRECT3D)
696 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
697 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
698 HAVE_WINSCREENCAP="no"
699 save_CFLAGS="$CFLAGS"
700 save_LDFLAGS="$LDFLAGS"
702 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
703 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
704 LIBS="$LIBS -ld3d9 -lgdi32"
705 AC_MSG_CHECKING(for Direct3D LDFLAGS)
706 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
710 Direct3DCreate9(D3D_SDK_VERSION);
712 [HAVE_WINSCREENCAP="yes"],
713 [HAVE_WINSCREENCAP="no"])
714 AC_MSG_RESULT($HAVE_WINSCREENCAP)
716 LDFLAGS=$save_LDFLAGS
719 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
720 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
721 AC_SUBST(WINSCREENCAP_LIBS)
723 AC_SUBST(HAVE_WINSCREENCAP)
727 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
728 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
730 save_CFLAGS="$CFLAGS"
731 save_LDFLAGS="$LDFLAGS"
733 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
734 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
735 LIBS="$LIBS -lole32 -luuid -lstrmiids"
736 AC_MSG_CHECKING(for Winks LDFLAGS)
737 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
743 IGraphBuilder *pGraph = NULL;
744 HRESULT hr = CoInitialize(NULL);
745 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
746 &IID_IGraphBuilder, (void **)&pGraph);
753 AC_MSG_RESULT($HAVE_WINKS)
755 LDFLAGS=$save_LDFLAGS
758 if test "x$HAVE_WINKS" = "xyes"; then
759 dnl this is much more than we want
760 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
761 AC_SUBST(DIRECTX_CFLAGS)
762 AC_SUBST(DIRECTX_LDFLAGS)
768 dnl *** Android Media ***
769 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
770 HAVE_ANDROID_MEDIA="no"
771 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
774 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
777 HAVE_ANDROID_MEDIA="no"
782 dnl *** AppleMedia (OS X and iOS) ***
783 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
784 HAVE_APPLE_MEDIA="no"
785 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
786 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
787 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
788 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
789 if test "x$HAVE_IOS" = "xno"; then
790 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
794 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
799 HAVE_APPLE_MEDIA="no"
804 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
805 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
806 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
807 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
808 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
810 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
819 dnl *** OS/X AVCVideoServices ***
820 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
822 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
824 save_CPPFLAGS="$CPPFLAGS"
825 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
827 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
828 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
830 CPPFLAGS=$save_CPPFLAGS
833 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
842 dnl check for shm_open (for shm plugin)
843 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
844 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
845 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
847 *-darwin* | *-macos10*)
848 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
855 AC_CHECK_LIB([rt], [shm_open],
856 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
857 #include <sys/socket.h>
860 AC_SUBST(SHM_LIBS, "-lrt")
868 dnl check for unix sockets (ipcpipeline plugin)
869 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
870 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
871 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
872 AC_CHECK_FUNC(pipe, [
873 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
882 dnl check for Video CD
883 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
884 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
885 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
888 dnl check for OpenSL ES
889 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
890 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
891 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
895 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
896 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
897 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
898 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
899 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
902 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
903 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
906 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
907 test "x$HAVE_GUDEV" = "xyes" && \
908 test "x$HAVE_LIBUSB" = "xyes"; then
914 AC_SUBST(LIBUDEV_CFLAGS)
915 AC_SUBST(LIBUDEV_LIBS)
916 AC_SUBST(LIBUSB_CFLAGS)
917 AC_SUBST(LIBUSB_LIBS)
920 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
921 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
922 AC_ARG_WITH([cuda-prefix],
923 AS_HELP_STRING([--with-cuda-prefix],
924 [Use the provided prefix for detecting the cuda installation]),
925 [AS_IF([test "x$with_cuda_prefix" != "x"],
926 [CUDA_PREFIX="$with_cuda_prefix"])],
930 if test "x$CUDA_PREFIX" != "x"; then
931 dnl only override if not already set
932 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
933 dnl this is an educated guess, user can always override these
934 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
935 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
938 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
939 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
940 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
941 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
942 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
947 save_CPPFLAGS="$CPPFLAGS"
948 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
949 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
950 AC_MSG_WARN([Could not find cuda.h]))
951 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
952 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
953 CPPFLAGS=$save_CPPFLAGS
955 dnl libcuda and libcudart libraries
957 LIBS="$CUDA_LIBS $save_LIBS"
959 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
960 AC_MSG_WARN([Could not find cudart library])])
962 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
963 AC_MSG_WARN([Could not find cuda library])])
968 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
969 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
971 save_CPPFLAGS="$CPPFLAGS"
972 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
973 AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
974 AC_MSG_WARN([Could not find nvcuvid.h]))
975 CPPFLAGS=$save_CPPFLAGS
979 LIBS="$CUDA_LIBS $save_LIBS"
980 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
981 AC_MSG_WARN([Could not find library nvcuvid]))
984 if test "x$HAVE_NVCUVID_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
992 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
993 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
994 dnl nvEncodeAPI.h header
995 HAVE_NVENCODEAPI_H=no
996 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
997 save_CPPFLAGS="$CPPFLAGS"
998 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
999 AC_CHECK_HEADER([nvEncodeAPI.h], [
1000 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1001 #if NVENCAPI_MAJOR_VERSION < 5
1002 #error "Need nvEncodeAPI.h >= 5.0"
1005 HAVE_NVENCODEAPI_H=yes
1007 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1010 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1011 AC_SUBST(NVENCODE_CFLAGS)
1012 CPPFLAGS="$save_CPPFLAGS"
1014 dnl libnvnidia-encode library
1015 HAVE_NVENCODE_LIB=no
1016 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1018 LIBS="$NVENCODE_LIBS $saved_LIBS"
1019 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1020 AC_MSG_WARN([Could not find library nvidia-encode]))
1021 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1022 AC_SUBST(NVENCODE_LIBS)
1026 if test "x$HAVE_CUDA_H" = "xyes" \
1027 -a "x$HAVE_CUDART_H" = "xyes" \
1028 -a "x$HAVE_CUDA_LIB" = "xyes" \
1029 -a "x$HAVE_CUDART_LIB" = "xyes" \
1030 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1031 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1033 if test x"$USE_OPENGL" = x"yes"; then
1034 dnl cuda-gl interop header
1035 save_CPPFLAGS="$CPPFLAGS"
1036 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1037 AC_CHECK_HEADER([cuda_gl_interop.h], [
1038 USE_NVENC_GST_GL="yes"
1039 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1041 CPPFLAGS="$save_CPPFLAGS"
1047 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1049 dnl check for tinyalsa
1050 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1051 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1052 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1055 dnl check for intel mediasdk
1056 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1057 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1058 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1059 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1062 PKG_CHECK_MODULES(LIBMFX, libmfx,
1064 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1067 AC_ARG_WITH([msdk-prefix],
1068 AS_HELP_STRING([--with-msdk-prefix],
1069 [Use the provided prefix for detecting the Intel MediaSDK]),
1070 [AS_IF([test "x$with_msdk_prefix" != "x"],
1071 [MSDK_PREFIX="$with_msdk_prefix"])],
1072 [AS_IF([test "x$MFX_HOME" != "x"],
1073 [MSDK_PREFIX="$MFX_HOME"],
1074 [MSDK_PREFIX="/opt/intel/media"])])
1075 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1076 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1077 AC_SUBST(MSDK_CFLAGS)
1080 save_CPPFLAGS="$CPPFLAGS"
1081 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1082 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1083 CPPFLAGS="$save_CPPFLAGS"
1086 LIBS="$MSDK_LIBS $LIBS"
1088 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1092 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1093 -a "x$HAVE_MFX_LIB" = "xyes"; then
1100 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1102 if test "x$HAVE_GUDEV" = "xyes" \
1103 -a "x$HAVE_MSDK" = "xyes" \
1104 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1110 AM_CONDITIONAL(USE_MSDK_LIBVA,
1111 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1113 dnl *** ext plug-ins ***
1114 dnl keep this list sorted alphabetically !
1116 if test "x$BUILD_EXTERNAL" = "xyes"; then
1118 dnl *** assrender ***
1119 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1120 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1121 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1122 HAVE_ASSRENDER="yes" ], [
1126 AC_SUBST(ASSRENDER_CFLAGS)
1127 AC_SUBST(ASSRENDER_LIBS)
1130 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1131 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1132 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1135 dnl *** vo-amrwbenc ***
1136 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1137 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1138 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1141 dnl *** vo-aacenc ***
1142 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1143 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1144 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1148 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1149 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1150 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1153 AC_SUBST(BS2B_CFLAGS)
1158 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1159 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1162 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1163 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1164 AC_MSG_RESULT($HAVE_BZ2)
1166 if test "x$HAVE_BZ2" = "xyes"; then
1174 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1175 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1176 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1179 # AC_SUBST(CAIRO_CFLAGS)
1180 # AC_SUBST(CAIRO_LIBS)
1183 dnl *** chromaprint ***
1184 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1185 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1186 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1187 HAVE_CHROMAPRINT="no"
1189 AC_SUBST(CHROMAPRINT_CFLAGS)
1190 AC_SUBST(CHROMAPRINT_LIBS)
1194 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1195 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1196 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1198 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1199 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1201 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1202 [[#ifdef HAVE_SYS_TYPES_H
1203 # include <sys/types.h>
1205 #ifdef HAVE_NETINET_IN_H
1206 # include <netinet/in.h>
1209 AC_MSG_CHECKING([for socket support needed by curlsink])
1210 AC_MSG_RESULT($HAVE_CURL)
1214 AC_SUBST(CURL_CFLAGS)
1216 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1218 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1222 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1223 AC_SUBST(SSH2_CFLAGS)
1225 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1228 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1229 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1230 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1231 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1233 AC_SUBST(LIBXML2_CFLAGS)
1234 AC_SUBST(LIBXML2_LIBS)
1238 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1239 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1240 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1241 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1250 AC_SUBST(LIBDC1394_CFLAGS)
1251 AC_SUBST(LIBDC1394_LIBS)
1254 dnl *** decklink ***
1255 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1256 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1263 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1264 AC_CHECK_LIB(dl, dlopen,
1268 DECKLINK_LIBS="-lpthread -ldl"
1273 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1274 AC_CHECK_LIB(dl, dlopen,
1278 DECKLINK_LIBS="-lpthread -ldl"
1279 HAVE_DECKLINK_OSX=yes
1286 DECKLINK_LIBS="-lole32 -loleaut32"
1287 HAVE_DECKLINK_WIN=yes
1294 AC_SUBST(DECKLINK_CXXFLAGS)
1295 AC_SUBST(DECKLINK_LIBS)
1297 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1298 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1300 dnl **** DirectFB ****
1301 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1302 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1303 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1308 dnl **** Wayland ****
1309 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1310 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1311 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1312 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
1313 if test "x$wayland_scanner" != "x"; then
1315 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1317 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1326 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1327 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1328 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1329 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1331 AC_SUBST(WEBP_CFLAGS)
1336 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1337 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1338 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1339 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1344 AC_SUBST(DAALA_CFLAGS)
1345 AC_SUBST(DAALA_LIBS)
1350 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1351 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1353 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1354 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1355 if test $HAVE_DTS = "no"; then
1356 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1357 [ DTS_LIBS="-ldts_pic $LIBM"
1358 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1364 dnl *** resindvd ***
1365 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1366 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1367 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1372 dnl **** Free AAC Encoder (FAAC) ****
1373 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1374 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1375 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1376 FAAC_LIBS="-lfaac $LIBM")
1380 dnl **** Free AAC Decoder (FAAD2) ****
1381 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1382 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1383 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1384 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1385 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1387 #elif !defined(LATM)
1388 #error Not faad2 >= 2.7
1394 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1404 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1405 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1406 if test "x$HAVE_FBDEV" != "xyes"; then
1407 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1412 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1413 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1414 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
1416 HAVE_FDK_AAC_0_1_4="yes"
1417 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1419 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1424 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1425 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1426 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1427 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1429 AC_SUBST(FLITE_CFLAGS)
1430 AC_SUBST(FLITE_LIBS)
1434 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1435 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1436 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1437 if test $HAVE_GSM != "yes"; then
1438 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1439 if test $HAVE_GSM = "yes"; then
1440 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1446 dnl *** fluidSynth ***
1447 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1448 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1449 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1450 HAVE_FLUIDSYNTH="no"
1455 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1456 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1457 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1460 AC_SUBST(KATE_CFLAGS)
1462 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1465 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1471 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1472 AC_SUBST(TIGER_CFLAGS)
1473 AC_SUBST(TIGER_LIBS)
1474 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1477 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1478 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1479 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1480 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1484 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1485 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1486 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1488 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1489 if test $HAVE_LRDF = "yes"; then
1490 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1493 AC_SUBST(LRDF_CFLAGS)
1497 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1498 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1499 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1502 AC_SUBST(LCMS2_LIBS)
1506 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1507 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1508 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1510 HAVE_LILV_0_22="yes"
1511 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1513 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1515 AC_SUBST(LILV_CFLAGS)
1519 dnl *** libde265 ***
1520 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1521 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1522 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1523 AC_SUBST(LIBDE265_CFLAGS)
1524 AC_SUBST(LIBDE265_LIBS)
1528 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1529 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1530 dnl check with pkg-config first
1531 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1535 AC_SUBST(LIBMMS_LIBS)
1538 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1539 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1540 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1542 AC_SUBST(SRT_CFLAGS)
1546 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1547 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1549 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1550 if test x"$HAVE_SRTP" = x"yes"; then
1551 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1553 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1554 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1558 AC_SUBST(SRTP_CFLAGS)
1562 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1563 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1564 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1566 AC_SUBST(DTLS_CFLAGS)
1574 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1575 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1576 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1584 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1585 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1586 if test "x$HAVE_CXX" != "xyes"; then
1587 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1590 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1592 AC_SUBST(MODPLUG_CFLAGS)
1593 AC_SUBST(MODPLUG_LIBS)
1596 dnl *** mjpegtools version info ***
1597 dnl some may prefer older version (given quirks above)
1598 dnl hm, no version info seems available within mjpegtools headers
1599 dnl and API really moves along
1601 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1602 mjpegtools_api=10601
1604 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1605 mjpegtools_api=10800
1607 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1608 mjpegtools_api=20000
1610 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1611 dnl logging API changed in release candidates
1612 OLD_CFLAGS="$CFLAGS"
1614 CFLAGS="$MJPEG_CFLAGS"
1615 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1616 AC_CHECK_FUNC(mjpeg_loglev_t, [
1617 mjpegtools_api=10903
1619 mjpegtools_api=10900
1621 CFLAGS="$OLD_CFLAGS"
1629 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1630 [mjpegtools API evolution])
1632 dnl *** mpeg2enc ***
1633 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1634 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1636 dnl we require a c++ compiler for this one
1637 if [ test x$HAVE_CXX = xyes ]; then
1638 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1639 dnl since many distros include mjpegtools specifically without mplex
1640 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1641 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1642 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1644 dnl switch over to c++ to test things
1646 OLD_CPPFLAGS="$CPPFLAGS"
1648 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1649 CPPFLAGS="$CPPFLAGS_GOOD -I."
1651 mpeg2enc_headers_ok=no
1652 AC_CHECK_HEADER([mpeg2encoder.hh], [
1653 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1655 LIBS="$LIBS $MPEG2ENC_LIBS"
1656 AC_MSG_CHECKING([for valid mpeg2enc objects])
1657 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1658 #include <mpeg2encoder.hh>
1659 #include <mpeg2encoptions.hh>
1665 MPEG2EncOptions *options = new MPEG2EncOptions ();
1666 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1671 dnl so far so good, let's check more things:
1672 dnl mjpegtools-1.8.0 does not install the required
1673 dnl mpeg2syntaxcodes.h header by default, and a new release
1674 dnl is not in sight, so check for this oversight in case
1675 dnl distros or folks have fixed this themselves
1676 if test "$mjpegtools_api" -ge "10800"; then
1677 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1678 mpeg2enc_headers_ok=yes
1680 mpeg2enc_headers_ok=no
1683 mpeg2enc_headers_ok=yes
1685 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1688 CPPFLAGS="$CPPFLAGS_GOOD"
1689 AC_SUBST(MPEG2ENC_CFLAGS)
1690 AC_SUBST(MPEG2ENC_LIBS)
1697 CPPFLAGS="$OLD_CPPFLAGS"
1706 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1707 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1709 dnl we require a c++ compiler for this one
1710 if [ test x$HAVE_CXX = xyes ]; then
1711 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1712 dnl since many distros include mjpegtools specifically without mplex
1713 dnl and mpeg2enc, we check for mplex on its own, too.
1714 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1715 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1716 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1718 dnl switch over to c++ to test things
1720 OLD_CPPFLAGS="$CPPFLAGS"
1722 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1723 CPPFLAGS="$CPPFLAGS_GOOD -I."
1724 AC_CHECK_HEADER(interact.hpp, [
1725 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1727 LIBS="$LIBS $MPLEX_LIBS"
1728 OLD_LDFLAGS="$LDFLAGS"
1729 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1730 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1731 dnl don't want this here
1732 AC_MSG_CHECKING([for valid mplex objects])
1733 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1735 #include <interact.hpp>
1736 #include <outputstrm.hpp>
1737 #include <multiplexor.hpp>
1742 class TestOutputStream : public OutputStream {
1744 TestOutputStream () : OutputStream () { }
1745 void Write (uint8_t *a, unsigned int b) { }
1746 void NextSegment () { }
1747 uint64_t SegmentSize () { }
1751 MultiplexJob *job = new MultiplexJob ();
1752 vector<IBitStream *> inputs;
1753 job->SetupInputStreams (inputs);
1754 TestOutputStream *out = new TestOutputStream ();
1755 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1760 CPPFLAGS="$CPPFLAGS_GOOD"
1761 AC_SUBST(MPLEX_CFLAGS)
1762 AC_SUBST(MPLEX_LIBS)
1763 AC_SUBST(MPLEX_LDFLAGS)
1765 ],[AC_MSG_RESULT(no)],[])
1767 LDFLAGS="$OLD_LDFLAGS"
1769 CPPFLAGS="$OLD_CPPFLAGS"
1775 dnl *** musepack ***
1776 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1777 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1778 AC_CHECK_HEADER([mpc/mpcdec.h], [
1780 MUSEPACK_LIBS="-lmpcdec"
1781 AC_SUBST(MUSEPACK_LIBS)
1782 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1784 MUSEPACK_LIBS="-lmpcdec"
1785 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1786 AC_SUBST(MUSEPACK_LIBS)
1787 ], [HAVE_MUSEPACK="no"])])
1791 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1792 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1793 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1796 AC_SUBST(NEON_CFLAGS)
1801 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1802 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1803 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1806 AC_SUBST(OFA_CFLAGS)
1811 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1812 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1813 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1816 AC_SUBST(OPENAL_CFLAGS)
1817 AC_SUBST(OPENAL_LIBS)
1821 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1822 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1823 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1824 dnl and don't want the build to break when a new opencv version comes out.
1825 dnl Need to adjust this upwards once we know that our code compiles fine with
1826 dnl a new version and the no-backward-compatibility define. (There doesn't
1827 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1829 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 3.5.0 , [
1832 OLD_CPPFLAGS=$CPPFLAGS
1833 CPPFLAGS=$OPENCV_CFLAGS
1834 something_not_found=no
1835 AC_CHECK_HEADERS([opencv2/core/core_c.h \
1836 opencv2/core/version.hpp \
1837 opencv2/highgui/highgui_c.h \
1838 opencv2/imgproc/imgproc.hpp \
1839 opencv2/imgproc/imgproc_c.h \
1840 opencv2/objdetect/objdetect.hpp \
1841 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
1843 dnl Only required for OpenCV >= 3, we have compat code for older versions
1844 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
1845 dnl check opencv_contrib headers (not always present in opencv distributions)
1846 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
1847 [NOT_A_PROBLEM=yes])
1849 CPPFLAGS=$OLD_CPPFLAGS
1852 if test $something_not_found = "yes"; then
1853 AC_MSG_RESULT([not all opencv2 headers were found])
1861 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1862 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1863 AC_SUBST(OPENCV_PREFIX)
1864 AC_SUBST(OPENCV_CFLAGS)
1865 AC_SUBST(OPENCV_LIBS)
1866 dnl the OpenCV prefix is used at runtime for some object properties, and also
1867 dnl used here to detect which directory is the correct one. For the second
1868 dnl case, make sure the right sysroot is used, ensuring correct behavior
1869 dnl during cross compilation.
1870 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1871 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1873 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1878 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1879 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1880 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1883 dnl *** openh264 ***
1884 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1885 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1886 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1889 dnl *** OpenJPEG ***
1890 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1891 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1893 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1894 if test x"$HAVE_OPENJPEG" != x"yes"; then
1897 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1898 HAVE_OPENJPEG="yes",
1899 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1901 if test x"$HAVE_OPENJPEG" = x"yes"; then
1902 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1905 AC_SUBST(OPENJPEG_CFLAGS)
1906 AC_SUBST(OPENJPEG_LIBS)
1910 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1911 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1912 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1913 AC_SUBST(OPENMPT_CFLAGS)
1914 AC_SUBST(OPENMPT_LIBS)
1918 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1919 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1920 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1921 AC_SUBST(OPENNI2_CFLAGS)
1922 AC_SUBST(OPENNI2_LIBS)
1926 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1927 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1928 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1929 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1934 AC_SUBST(OPUS_CFLAGS)
1939 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1940 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1941 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1946 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1947 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1948 if test "x$HAVE_GST_GL" = "xyes"; then
1952 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1953 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1956 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
1957 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
1958 AC_CHECK_HEADER(vulkan/vulkan.h, [
1959 AC_CHECK_LIB(vulkan, vkCreateDevice, [
1960 VULKAN_LIBS="-lvulkan"
1961 AC_SUBST(VULKAN_LIBS)
1962 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
1965 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
1972 dnl *** teletextdec ***
1973 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1974 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1975 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
1978 dnl *** wildmidi ***
1979 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1980 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1981 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1984 WILDMIDI_LIBS="-lWildMidi")
1987 if test "x$HAVE_WILDMIDI" = "xyes"; then
1988 AC_MSG_CHECKING([for wildmidi >= 4.0])
1989 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
1990 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
1991 #error "wildmidi too old"
1993 ]])], [ AC_MSG_RESULT(yes)
1996 WILDMIDI_LIBS=-lWildMidi
1997 ], [ AC_MSG_RESULT(no)
2001 AC_MSG_WARN([WildMidi library or development headers not found])
2003 AC_SUBST(WILDMIDI_CFLAGS)
2004 AC_SUBST(WILDMIDI_LIBS)
2007 dnl **** Smooth Streaming ****
2008 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2009 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2010 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2012 HAVE_SMOOTHSTREAMING="yes"],
2014 HAVE_SMOOTHSTREAMING="no"])
2015 AC_SUBST(LIBXML2_CFLAGS)
2016 AC_SUBST(LIBXML2_LIBS)
2020 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2021 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2022 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2023 AC_SUBST(SNDFILE_CFLAGS)
2024 AC_SUBST(SNDFILE_LIBS)
2027 dnl *** soundtouch ***
2028 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2029 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2030 dnl We only need -lBPM on soundtouch < 1.4
2031 dnl We check for libSoundTouch since Debian used it before upstream
2032 dnl added a pkgconfig file.
2033 HAVE_SOUNDTOUCH_1_4=yes
2034 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2035 [HAVE_SOUNDTOUCH=yes],
2036 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2037 [HAVE_SOUNDTOUCH=yes],
2038 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2039 [HAVE_SOUNDTOUCH=yes
2040 HAVE_SOUNDTOUCH_1_4=no
2041 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2042 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2043 [HAVE_SOUNDTOUCH=yes],
2044 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2045 [HAVE_SOUNDTOUCH=yes
2046 HAVE_SOUNDTOUCH_1_4=no
2047 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2048 HAVE_SOUNDTOUCH=no)])])])])
2049 AC_SUBST(SOUNDTOUCH_CFLAGS)
2050 AC_SUBST(SOUNDTOUCH_LIBS)
2051 if test "x$HAVE_CXX" != "xyes"; then
2052 USE_SOUNDTOUCH=false
2053 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2055 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2056 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2057 [Defined if the available libSoundTouch is >= 1.4])
2062 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2063 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2064 AC_CHECK_HEADER(openspc.h, [
2065 AC_CHECK_LIB(openspc, OSPC_Init, [
2066 SPC_LIBS="-lopenspc"
2078 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2079 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2080 AC_CHECK_HEADER(gme/gme.h, [
2081 AC_CHECK_LIB(gme, gme_new_emu, [
2092 if test "x$HAVE_GME" = "xyes"; then
2093 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2094 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2100 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2101 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2102 AC_MSG_CHECKING([Checking for up to date dvb installation])
2103 AC_CHECK_HEADER(linux/dvb/version.h, [
2104 AC_MSG_CHECKING([for up-to-date dvb API])
2105 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2106 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2107 #error "Incompatible dvb API"
2109 ]])], [ AC_MSG_RESULT(yes)
2111 ], [ AC_MSG_RESULT(no)
2118 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2119 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2120 AC_MSG_CHECKING([Checking for ACM support])
2121 AC_CHECK_HEADERS([windows.h msacm.h],
2123 AC_SUBST(ACMENC_CFLAGS)
2124 AC_SUBST(ACMMP3DEC_CFLAGS)
2126 [AC_INCLUDES_DEFAULT
2127 #include <windows.h>])
2131 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2132 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2137 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2139 if test "$HAVE_VDPAU" = "no"; then
2140 saved_CPPFLAGS="$CPPFLAGS"
2141 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2143 if test -z "$HAVE_VDPAU_H"; then
2144 dnl Didn't find VDPAU header straight away.
2145 dnl Try /usr/include/nvidia. Need to clear caching vars first
2146 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2147 unset ac_cv_header_vdpau_vdpau_h
2148 unset ac_cv_header_vdpau_vdpau_x11_h
2149 VDPAU_CFLAGS="-I/usr/include/nvidia"
2150 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2151 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2152 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2155 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2157 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2158 dnl Found the headers - look for the lib
2159 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2161 LIBS="$VDPAU_LIBS $saved_LIBS"
2162 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2168 if test "$HAVE_VDPAU" = "yes"; then
2169 AC_MSG_NOTICE([Found up to date VDPAU installation])
2170 AC_SUBST(VDPAU_CFLAGS)
2171 AC_SUBST(VDPAU_LIBS)
2176 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2177 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2178 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2181 dnl *** schroedinger ***
2182 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
2183 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
2184 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
2188 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2189 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2190 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2194 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2195 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2196 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2200 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2201 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2202 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2203 HAVE_SPANDSP="yes" ], [
2207 AC_SUBST(SPANDSP_CFLAGS)
2208 AC_SUBST(SPANDSP_LIBS)
2210 dnl *** hls-crypto ***
2211 AC_ARG_WITH([hls-crypto],
2212 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2213 which cryptographic library version to compile against for hls (default: auto)
2215 AS_CASE([$with_hls_crypto],
2219 [with_hls_crypto=auto]
2225 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2226 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2227 AS_CASE([$with_hls_crypto],
2229 PKG_CHECK_MODULES(NETTLE, nettle, [
2230 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2232 ],[AC_MSG_ERROR([Could not find nettle library])])
2235 AM_PATH_LIBGCRYPT([1.2.0], [
2236 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2238 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2241 PKG_CHECK_MODULES(OPENSSL, openssl, [
2242 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2244 ],[AC_MSG_ERROR([Could not find openssl library])])
2247 dnl Try to find a valid crypto library
2248 PKG_CHECK_MODULES(NETTLE, nettle, [
2249 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2252 AM_PATH_LIBGCRYPT([1.2.0], [
2253 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2256 PKG_CHECK_MODULES(OPENSSL, openssl, [
2257 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2268 dnl *** x265 (H.265/HEVC encoder) ***
2269 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2270 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2271 AG_GST_PKG_CHECK_MODULES(X265, x265)
2274 dnl *** WebRTC Audio Processing ***
2275 dnl Note: We test for a specific version as there is no API stability
2276 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2277 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2279 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2281 # On Android, C++ headers comes with the STL implementation
2282 AS_CASE(["${host}"],
2285 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2286 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2287 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2289 AC_SUBST([WEBRTCDSP_CFLAGS])
2290 AC_SUBST([WEBRTCDSP_LIBS])
2293 old_CPPFLAGS=$CPPFLAGS
2294 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2295 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2296 CPPFLAGS=$old_CPPFLAGS
2301 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2302 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2303 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2304 HAVE_WEBRTC="yes" ], [
2311 dnl not building plugins with external dependencies,
2312 dnl but we still need to set the conditionals
2314 AM_CONDITIONAL(USE_ASSRENDER, false)
2315 AM_CONDITIONAL(USE_AOM, false)
2316 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2317 AM_CONDITIONAL(USE_VOAACENC, false)
2318 AM_CONDITIONAL(USE_BS2B, false)
2319 AM_CONDITIONAL(USE_BZ2, false)
2320 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2321 AM_CONDITIONAL(USE_CURL, false)
2322 AM_CONDITIONAL(USE_SSH2, false)
2323 AM_CONDITIONAL(USE_DASH, false)
2324 AM_CONDITIONAL(USE_DC1394, false)
2325 AM_CONDITIONAL(USE_DECKLINK, false)
2326 AM_CONDITIONAL(DECKLINK_OSX, false)
2327 AM_CONDITIONAL(DECKLINK_WIN, false)
2328 AM_CONDITIONAL(USE_DIRECTFB, false)
2329 AM_CONDITIONAL(USE_WAYLAND, false)
2330 AM_CONDITIONAL(USE_DAALA, false)
2331 AM_CONDITIONAL(USE_DTS, false)
2332 AM_CONDITIONAL(USE_EXIF, false)
2333 AM_CONDITIONAL(USE_RESINDVD, false)
2334 AM_CONDITIONAL(USE_FAAC, false)
2335 AM_CONDITIONAL(USE_FAAD, false)
2336 AM_CONDITIONAL(USE_FBDEV, false)
2337 AM_CONDITIONAL(USE_FDK_AAC, false)
2338 AM_CONDITIONAL(USE_FLITE, false)
2339 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2340 AM_CONDITIONAL(USE_GL, false)
2341 AM_CONDITIONAL(USE_GSM, false)
2342 AM_CONDITIONAL(USE_HLS, false)
2343 AM_CONDITIONAL(USE_IQA, false)
2344 AM_CONDITIONAL(USE_KATE, false)
2345 AM_CONDITIONAL(USE_KMS, false)
2346 AM_CONDITIONAL(USE_TIGER, false)
2347 AM_CONDITIONAL(USE_LADSPA, false)
2348 AM_CONDITIONAL(USE_LCMS2, false)
2349 AM_CONDITIONAL(USE_LV2, false)
2350 AM_CONDITIONAL(USE_LIBDE265, false)
2351 AM_CONDITIONAL(USE_LIBMMS, false)
2352 AM_CONDITIONAL(USE_MODPLUG, false)
2353 AM_CONDITIONAL(USE_MPEG2ENC, false)
2354 AM_CONDITIONAL(USE_MPLEX, false)
2355 AM_CONDITIONAL(USE_MUSEPACK, false)
2356 AM_CONDITIONAL(USE_NEON, false)
2357 AM_CONDITIONAL(USE_OFA, false)
2358 AM_CONDITIONAL(USE_OPENAL, false)
2359 AM_CONDITIONAL(USE_OPENCV, false)
2360 AM_CONDITIONAL(USE_OPENEXR, false)
2361 AM_CONDITIONAL(USE_OPENGL, false)
2362 AM_CONDITIONAL(USE_OPENJPEG, false)
2363 AM_CONDITIONAL(USE_OPENMPT, false)
2364 AM_CONDITIONAL(USE_OPENNI2, false)
2365 AM_CONDITIONAL(USE_OPUS, false)
2366 AM_CONDITIONAL(USE_WILDMIDI, false)
2367 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2368 AM_CONDITIONAL(USE_SNDFILE, false)
2369 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2370 AM_CONDITIONAL(USE_SPANDSP, false)
2371 AM_CONDITIONAL(USE_SPC, false)
2372 AM_CONDITIONAL(USE_SRTP, false)
2373 AM_CONDITIONAL(USE_SRT, false)
2374 AM_CONDITIONAL(USE_GME, false)
2375 AM_CONDITIONAL(USE_DVB, false)
2376 AM_CONDITIONAL(USE_ACM, false)
2377 AM_CONDITIONAL(USE_VDPAU, false)
2378 AM_CONDITIONAL(USE_SBC, false)
2379 AM_CONDITIONAL(USE_SCHRO, false)
2380 AM_CONDITIONAL(USE_ZBAR, false)
2381 AM_CONDITIONAL(USE_RSVG, false)
2382 AM_CONDITIONAL(USE_RTMP, false)
2383 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2384 AM_CONDITIONAL(USE_UVCH264, false)
2385 AM_CONDITIONAL(USE_WEBP, false)
2386 AM_CONDITIONAL(USE_WEBRTC, false)
2387 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2388 AM_CONDITIONAL(USE_OPENH264, false)
2389 AM_CONDITIONAL(USE_X265, false)
2390 AM_CONDITIONAL(USE_DTLS, false)
2391 AM_CONDITIONAL(USE_VULKAN, false)
2392 AM_CONDITIONAL(USE_TTML, false)
2394 fi dnl of EXT plugins
2396 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2399 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2400 dnl GST_*: flags shared by built objects to link against GStreamer
2401 dnl GST_ALL_LDFLAGS: linker flags shared by all
2402 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2403 dnl GST_LT_LDFLAGS: library versioning of our libraries
2404 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2406 dnl GST_OPTION_CFLAGS
2407 if test "x$USE_DEBUG" = xyes; then
2410 AC_SUBST(PROFILE_CFLAGS)
2412 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2413 dnl Define _only_ during CVS (not pre-releases or releases)
2414 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2416 DEPRECATED_CFLAGS=""
2418 AC_SUBST(DEPRECATED_CFLAGS)
2420 VISIBILITY_CFLAGS=""
2421 AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
2422 AC_SUBST(VISIBILITY_CFLAGS)
2424 VISIBILITY_CXXFLAGS=""
2425 if test "x$HAVE_CXX" = "xyes"; then
2426 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2428 AC_SUBST(VISIBILITY_CXXFLAGS)
2430 dnl disable strict aliasing
2431 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2432 AC_SUBST(EXTRA_CFLAGS)
2434 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2435 dnl at make time with e.g. make ERROR_CFLAGS=""
2436 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2437 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2438 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2439 AC_SUBST(GST_OPTION_CFLAGS)
2440 AC_SUBST(GST_OPTION_CXXFLAGS)
2441 AC_SUBST(GST_OPTION_OBJCFLAGS)
2443 dnl FIXME: do we want to rename to GST_ALL_* ?
2444 dnl prefer internal headers to already installed ones
2445 dnl also add builddir include for enumtypes and marshal
2446 dnl add GST_OPTION_CFLAGS, but overridable
2447 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2448 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2449 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2450 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2451 AC_SUBST(GST_CFLAGS)
2452 AC_SUBST(GST_CXXFLAGS)
2453 AC_SUBST(GST_OBJCFLAGS)
2455 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2456 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2457 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2458 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2459 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2460 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2462 dnl LDFLAGS really should only contain flags, not libs - they get added before
2463 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2464 GST_ALL_LDFLAGS="-no-undefined"
2465 if test "x${enable_Bsymbolic}" = "xyes"; then
2466 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2468 AC_SUBST(GST_ALL_LDFLAGS)
2471 dnl linker flags shared by all libraries
2472 dnl LDFLAGS modifier defining exported symbols from built libraries
2473 dnl (export _gst_foo but not __gst_foo)
2475 AC_SUBST(GST_LIB_LDFLAGS)
2477 dnl this really should only contain flags, not libs - they get added before
2478 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2479 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2480 AC_SUBST(GST_PLUGIN_LDFLAGS)
2482 dnl *** output files ***
2484 $MKDIR_P tests/check/orc
2493 gst/accurip/Makefile
2494 gst/adpcmdec/Makefile
2495 gst/adpcmenc/Makefile
2497 gst/videoframe_audiolevel/Makefile
2499 gst/audiobuffersplit/Makefile
2500 gst/audiofxbad/Makefile
2501 gst/audiolatency/Makefile
2502 gst/audiomixmatrix/Makefile
2503 gst/audiovisualizers/Makefile
2504 gst/autoconvert/Makefile
2506 gst/camerabin2/Makefile
2507 gst/coloreffects/Makefile
2508 gst/debugutils/Makefile
2509 gst/dvbsuboverlay/Makefile
2511 gst/faceoverlay/Makefile
2512 gst/festival/Makefile
2513 gst/fieldanalysis/Makefile
2514 gst/freeverb/Makefile
2516 gst/gaudieffects/Makefile
2517 gst/geometrictransform/Makefile
2521 gst/interlace/Makefile
2522 gst/ivfparse/Makefile
2524 gst/jp2kdecimator/Makefile
2525 gst/jpegformat/Makefile
2528 gst/mpegdemux/Makefile
2529 gst/mpegtsdemux/Makefile
2530 gst/mpegtsmux/Makefile
2531 gst/mpegtsmux/tsmux/Makefile
2532 gst/mpegpsmux/Makefile
2536 gst/pcapparse/Makefile
2539 gst/rawparse/Makefile
2540 gst/removesilence/Makefile
2542 gst/segmentclip/Makefile
2548 gst/timecode/Makefile
2549 gst/videofilters/Makefile
2550 gst/videoparsers/Makefile
2551 gst/videosignal/Makefile
2555 gst/compositor/Makefile
2557 gst-libs/gst/Makefile
2558 gst-libs/gst/adaptivedemux/Makefile
2559 gst-libs/gst/basecamerabinsrc/Makefile
2560 gst-libs/gst/insertbin/Makefile
2561 gst-libs/gst/interfaces/Makefile
2562 gst-libs/gst/isoff/Makefile
2563 gst-libs/gst/codecparsers/Makefile
2564 gst-libs/gst/mpegts/Makefile
2565 gst-libs/gst/uridownloader/Makefile
2566 gst-libs/gst/wayland/Makefile
2567 gst-libs/gst/webrtc/Makefile
2568 gst-libs/gst/player/Makefile
2569 gst-libs/gst/video/Makefile
2570 gst-libs/gst/audio/Makefile
2571 gst-libs/gst/opencv/Makefile
2573 sys/dshowdecwrapper/Makefile
2575 sys/acmmp3dec/Makefile
2576 sys/androidmedia/Makefile
2577 sys/applemedia/Makefile
2579 sys/d3dvideosink/Makefile
2580 sys/decklink/Makefile
2581 sys/directsound/Makefile
2582 sys/dshowsrcwrapper/Makefile
2583 sys/dshowvideosink/Makefile
2586 sys/ipcpipeline/Makefile
2591 sys/opensles/Makefile
2593 sys/tinyalsa/Makefile
2594 sys/uvch264/Makefile
2599 sys/winscreencap/Makefile
2601 tests/check/Makefile
2602 tests/files/Makefile
2603 tests/examples/Makefile
2604 tests/examples/avsamplesink/Makefile
2605 tests/examples/camerabin2/Makefile
2606 tests/examples/codecparsers/Makefile
2607 tests/examples/compositor/Makefile
2608 tests/examples/directfb/Makefile
2609 tests/examples/audiomixmatrix/Makefile
2610 tests/examples/ipcpipeline/Makefile
2611 tests/examples/mpegts/Makefile
2612 tests/examples/mxf/Makefile
2613 tests/examples/opencv/Makefile
2614 tests/examples/uvch264/Makefile
2615 tests/examples/waylandsink/Makefile
2616 tests/examples/webrtc/Makefile
2617 tests/icles/Makefile
2618 ext/voamrwbenc/Makefile
2619 ext/voaacenc/Makefile
2620 ext/assrender/Makefile
2624 ext/chromaprint/Makefile
2625 ext/colormanagement/Makefile
2629 ext/directfb/Makefile
2630 ext/wayland/Makefile
2637 ext/fluidsynth/Makefile
2645 ext/libde265/Makefile
2648 ext/modplug/Makefile
2649 ext/mpeg2enc/Makefile
2651 ext/musepack/Makefile
2656 ext/openexr/Makefile
2657 ext/openh264/Makefile
2658 ext/openjpeg/Makefile
2659 ext/openmpt/Makefile
2660 ext/openni2/Makefile
2663 ext/resindvd/Makefile
2666 ext/schroedinger/Makefile
2667 ext/smoothstreaming/Makefile
2668 ext/sndfile/Makefile
2669 ext/soundtouch/Makefile
2670 ext/spandsp/Makefile
2673 ext/teletextdec/Makefile
2676 ext/wildmidi/Makefile
2678 ext/vulkan/xcb/Makefile
2679 ext/vulkan/wayland/Makefile
2685 ext/webrtcdsp/Makefile
2689 docs/plugins/Makefile
2691 docs/version.entities
2693 pkgconfig/gstreamer-plugins-bad.pc
2694 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2695 pkgconfig/gstreamer-codecparsers.pc
2696 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2697 pkgconfig/gstreamer-insertbin.pc
2698 pkgconfig/gstreamer-insertbin-uninstalled.pc
2699 pkgconfig/gstreamer-mpegts.pc
2700 pkgconfig/gstreamer-mpegts-uninstalled.pc
2701 pkgconfig/gstreamer-player.pc
2702 pkgconfig/gstreamer-player-uninstalled.pc
2703 pkgconfig/gstreamer-wayland.pc
2704 pkgconfig/gstreamer-wayland-uninstalled.pc
2705 pkgconfig/gstreamer-webrtc.pc
2706 pkgconfig/gstreamer-webrtc-uninstalled.pc
2707 pkgconfig/gstreamer-bad-video.pc
2708 pkgconfig/gstreamer-bad-video-uninstalled.pc
2709 pkgconfig/gstreamer-bad-audio.pc
2710 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2717 AG_GST_OUTPUT_PLUGINS