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.16.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, 1601, 0, 1601)
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
112 dnl check for large file support
113 dnl affected plugins must include config.h
116 dnl *** checks for programs ***
122 dnl determine c++ compiler
124 dnl determine if c++ is available on this system
125 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
129 dnl check if the compiler supports '-c' and '-o' options
132 dnl check if the compiler supports do while(0) macros
133 AG_GST_CHECK_DOWHILE_MACROS
135 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
136 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
138 dnl check for gobject-introspection
139 GOBJECT_INTROSPECTION_CHECK([1.31.1])
141 dnl check for documentation tools
142 GTK_DOC_CHECK([1.12])
143 AG_GST_PLUGIN_DOCS([1.12])
145 dnl *** checks for libraries ***
147 dnl check for libm, for sin() etc.
153 dnl check for pthreads
156 dnl *** checks for header files ***
158 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
159 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
161 if test "x$HAVE_UNISTD_H" != "xyes"; then
162 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
165 AC_CHECK_HEADERS([sys/time.h])
170 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
171 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
173 dnl *** checks for types/defines ***
175 dnl *** checks for structures ***
177 dnl *** checks for compiler characteristics ***
179 dnl *** checks for library functions ***
180 AC_CHECK_FUNCS([gmtime_r pipe2])
182 dnl *** checks for headers ***
183 AC_CHECK_HEADERS([sys/utsname.h])
185 dnl *** checks for dependency libraries ***
187 dnl *** checks for socket and nsl libraries ***
188 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
189 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
193 AG_GST_GLIB_CHECK([$GLIB_REQ])
195 dnl Needed by plugins that use g_module_*() API
196 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
198 dnl checks for gstreamer
199 dnl uninstalled is selected preferentially -- see pkg-config(1)
200 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
202 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
203 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
204 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
205 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GSTPB_REQ], yes)
206 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GSTPB_REQ], yes)
207 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GSTPB_REQ], yes)
208 AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GSTPB_REQ], no)
209 AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-[$GST_API_VERSION], [$GSTPB_REQ], yes)
211 if test "x$HAVE_GST_GL" = "xyes"; then
213 AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
214 GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
215 AC_MSG_RESULT([$GST_GL_WINSYS])
216 GST_GL_HAVE_WINDOW_X11=""
217 GST_GL_HAVE_WINDOW_WAYLAND=""
218 GST_GL_HAVE_WINDOW_ANDROID=""
219 GST_GL_HAVE_WINDOW_COCOA=""
220 GST_GL_HAVE_WINDOW_EAGL=""
221 case "$GST_GL_WINSYS" in *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
222 case "$GST_GL_WINSYS" in *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
223 case "$GST_GL_WINSYS" in *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
224 case "$GST_GL_WINSYS" in *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
225 case "$GST_GL_WINSYS" in *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
227 AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
228 GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
229 AC_MSG_RESULT([$GST_GL_PLATFORMS])
230 GST_GL_HAVE_PLATFORM_GLX=""
231 GST_GL_HAVE_PLATFORM_EGL=""
232 GST_GL_HAVE_PLATFORM_CGL=""
233 GST_GL_HAVE_PLATFORM_EAGL=""
234 case "$GST_GL_PLATFORMS" in *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
235 case "$GST_GL_PLATFORMS" in *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
236 case "$GST_GL_PLATFORMS" in *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
237 case "$GST_GL_PLATFORMS" in *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
239 AC_MSG_CHECKING([GStreamer OpenGL apis ...])
240 GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
241 AC_MSG_RESULT([$GST_GL_APIS])
242 GST_GL_HAVE_API_GLES2=""
243 GST_GL_HAVE_API_GL=""
244 case "$GST_GL_APIS" in *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
245 case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
247 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
249 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
251 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
253 dnl check for uninstalled plugin directories for unit tests
254 AG_GST_CHECK_UNINSTALLED_SETUP([
255 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [$GSTPB_REQ])
256 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [$GSTPB_REQ])
257 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [$GSTPB_REQ])
260 dnl Check for documentation xrefs
261 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
262 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
263 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
264 AC_SUBST(GLIB_PREFIX)
266 AC_SUBST(GSTPB_PREFIX)
268 dnl GTK is optional and used in examples
272 if test "x$BUILD_EXAMPLES" = "xyes"; then
273 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
275 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
277 2.0) GTK_REQ=$GTK2_REQ ;;
278 3.0) GTK_REQ=$GTK3_REQ ;;
279 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
283 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
284 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
288 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
290 dnl Check for -Bsymbolic-functions linker flag used to avoid
291 dnl intra-library PLT jumps, if available.
292 AC_ARG_ENABLE(Bsymbolic,
293 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
294 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
295 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
296 LDFLAGS=-Wl,-Bsymbolic-functions
298 AC_TRY_LINK([], [return 0],
300 enable_Bsymbolic=yes,
303 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
305 dnl *** set variables based on configure arguments ***
307 dnl GTK is optional and used in examples
310 if test "x$BUILD_EXAMPLES" = "xyes"; then
311 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
312 if test "x$HAVE_GTK3" = "xyes"; then
314 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
315 AC_SUBST(GTK_VERSION)
316 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
317 AC_SUBST(GTK_BASE_DIR)
318 GTK3_TARGETS=`$PKG_CONFIG --variable=targets gtk+-3.0`
319 case "$GTK3_TARGETS" in *wayland*) HAVE_GTK3_WAYLAND="1" ;; esac
323 AC_SUBST(GTK3_CFLAGS)
325 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
326 AM_CONDITIONAL(HAVE_GTK3_WAYLAND, test "x$HAVE_GTK3_WAYLAND" = "x1")
328 dnl x11 is optional for librfb
330 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
334 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
335 if test "x$HAVE_X11" = "xyes"; then
336 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
339 dnl exif (used on jifmux tests) ****
340 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
342 AC_SUBST(EXIF_CFLAGS)
343 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
345 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
346 PKG_CHECK_MODULES(DSSIM, dssim, [
354 if test "x$HAVE_DSSIM" = "xyes"; then
355 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
358 AC_SUBST(DSSIM_CFLAGS)
360 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
365 dnl set license and copyright notice
367 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
368 AC_SUBST(GST_LICENSE)
370 dnl define LIBDIR so we can inform people where we live
371 AS_AC_EXPAND(LIBDIR, $libdir)
372 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
374 dnl set location of plugin directory
377 dnl set release date/time
378 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
379 ["${srcdir}/gst-plugins-bad.doap"],
380 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
382 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
383 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
384 if test x$enable_static = xyes -a x$enable_shared = xno; then
385 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
388 AC_ARG_WITH([player-tests],
389 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
390 if test x$with_player_tests = xyes; then
391 AC_PATH_PROG([WGET], [wget], no)
392 if test x$WGET = xno; then
393 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
397 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
399 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
400 dnl make sure it doesn't complain about unused variables if debugging is disabled
402 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
404 dnl define an ERROR_CFLAGS Makefile variable
405 dnl -Waggregate-return - libexif returns aggregates
406 dnl -Wundef - Windows headers check _MSC_VER unconditionally
407 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
408 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
409 -Wwrite-strings -Wformat-security -Wold-style-definition
410 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
411 -Wnested-externs $NO_WARNINGS])
413 dnl define an ERROR_CXXFLAGS Makefile variable
414 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
415 -Wmissing-declarations -Wredundant-decls
416 -Wwrite-strings -Wformat-nonliteral -Wformat-security
417 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
419 dnl define an ERROR_OBJCFLAGS Makefile variable
420 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
421 -Wmissing-declarations -Wredundant-decls
422 -Wwrite-strings -Wformat-nonliteral -Wformat-security
423 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
425 dnl define correct level for debugging messages
426 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
429 AG_GST_DEFAULT_ELEMENTS
431 dnl *** plug-ins to include ***
433 dnl these are all the gst plug-ins, compilable without additional libs
434 AG_GST_CHECK_PLUGIN(accurip)
435 AG_GST_CHECK_PLUGIN(adpcmdec)
436 AG_GST_CHECK_PLUGIN(adpcmenc)
437 AG_GST_CHECK_PLUGIN(aiff)
438 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
439 AG_GST_CHECK_PLUGIN(asfmux)
440 AG_GST_CHECK_PLUGIN(audiobuffersplit)
441 AG_GST_CHECK_PLUGIN(audiofxbad)
442 AG_GST_CHECK_PLUGIN(audiolatency)
443 AG_GST_CHECK_PLUGIN(audiomixmatrix)
444 AG_GST_CHECK_PLUGIN(audiovisualizers)
445 AG_GST_CHECK_PLUGIN(autoconvert)
446 AG_GST_CHECK_PLUGIN(bayer)
447 AG_GST_CHECK_PLUGIN(camerabin2)
448 AG_GST_CHECK_PLUGIN(coloreffects)
449 AG_GST_CHECK_PLUGIN(debugutils)
450 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
451 AG_GST_CHECK_PLUGIN(dvdspu)
452 AG_GST_CHECK_PLUGIN(faceoverlay)
453 AG_GST_CHECK_PLUGIN(festival)
454 AG_GST_CHECK_PLUGIN(fieldanalysis)
455 AG_GST_CHECK_PLUGIN(freeverb)
456 AG_GST_CHECK_PLUGIN(frei0r)
457 AG_GST_CHECK_PLUGIN(gaudieffects)
458 AG_GST_CHECK_PLUGIN(geometrictransform)
459 AG_GST_CHECK_PLUGIN(gdp)
460 AG_GST_CHECK_PLUGIN(id3tag)
461 AG_GST_CHECK_PLUGIN(inter)
462 AG_GST_CHECK_PLUGIN(interlace)
463 AG_GST_CHECK_PLUGIN(ivfparse)
464 AG_GST_CHECK_PLUGIN(ivtc)
465 AG_GST_CHECK_PLUGIN(jp2kdecimator)
466 AG_GST_CHECK_PLUGIN(jpegformat)
467 AG_GST_CHECK_PLUGIN(librfb)
468 AG_GST_CHECK_PLUGIN(midi)
469 AG_GST_CHECK_PLUGIN(mpegdemux)
470 AG_GST_CHECK_PLUGIN(mpegtsdemux)
471 AG_GST_CHECK_PLUGIN(mpegtsmux)
472 AG_GST_CHECK_PLUGIN(mpegpsmux)
473 AG_GST_CHECK_PLUGIN(mxf)
474 AG_GST_CHECK_PLUGIN(netsim)
475 AG_GST_CHECK_PLUGIN(onvif)
476 AG_GST_CHECK_PLUGIN(pcapparse)
477 AG_GST_CHECK_PLUGIN(pnm)
478 AG_GST_CHECK_PLUGIN(proxy)
479 AG_GST_CHECK_PLUGIN(rawparse)
480 AG_GST_CHECK_PLUGIN(removesilence)
481 AG_GST_CHECK_PLUGIN(sdp)
482 AG_GST_CHECK_PLUGIN(segmentclip)
483 AG_GST_CHECK_PLUGIN(siren)
484 AG_GST_CHECK_PLUGIN(smooth)
485 AG_GST_CHECK_PLUGIN(speed)
486 AG_GST_CHECK_PLUGIN(subenc)
487 AG_GST_CHECK_PLUGIN(timecode)
488 AG_GST_CHECK_PLUGIN(videofilters)
489 AG_GST_CHECK_PLUGIN(videoparsers)
490 AG_GST_CHECK_PLUGIN(videosignal)
491 AG_GST_CHECK_PLUGIN(vmnc)
492 AG_GST_CHECK_PLUGIN(y4m)
493 AG_GST_CHECK_PLUGIN(yadif)
495 dnl *** plug-ins to exclude ***
497 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
498 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
499 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
501 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
503 LIBS="$LIBS -framework VideoToolbox"
504 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
505 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
511 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
512 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
513 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
516 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
517 if test "x$HAVE_IOS" = "xyes"; then
518 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
521 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
522 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
523 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
526 dnl disable gst plugins we might not be able to build on this
527 dnl platform: (ugly but minimally invasive)
528 dnl FIXME: maybe move to sys, or make work with winsock2
529 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
530 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
532 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
533 WINSOCK2_LIBS="-lws2_32"
534 AC_SUBST(WINSOCK2_LIBS)
538 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
539 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
541 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
542 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
543 VULKAN_CONFIG_DEFINES="
544 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
545 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
547 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
548 outfile=vkconfig.h-tmp
549 cat > $outfile <<\_______EOF
552 * This is a generated file. Please modify `configure.ac'
555 #ifndef __GST_VULKAN_CONFIG_H__
556 #define __GST_VULKAN_CONFIG_H__
564 cat >>$outfile <<_______EOF
565 $vulkan_config_defines
568 cat >>$outfile <<_______EOF
572 #endif /* __GST_VULKAN_CONFIG_H__ */
576 if cmp -s $outfile ext/vulkan/vkconfig.h; then
577 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
580 mv $outfile ext/vulkan/vkconfig.h
583 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
586 dnl *** sys plug-ins ***
589 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
590 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
591 HAVE_DIRECTSOUND="no"
592 save_CFLAGS="$CFLAGS"
593 save_LDFLAGS="$LDFLAGS"
595 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
596 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
597 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
598 AC_MSG_CHECKING(for DirectSound LDFLAGS)
599 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
603 #include <mmsystem.h>
605 DXGetErrorString9 (0);
606 DirectSoundCreate(NULL, NULL, NULL);
608 [HAVE_DIRECTSOUND="yes"],
609 [HAVE_DIRECTSOUND="no"])
610 AC_MSG_RESULT($HAVE_DIRECTSOUND)
612 LDFLAGS=$save_LDFLAGS
615 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
616 dnl this is much more than we want
617 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
618 AC_SUBST(DIRECTX_CFLAGS)
619 AC_SUBST(DIRECTX_LDFLAGS)
620 AC_SUBST(DIRECTSOUND_LIBS)
622 AC_SUBST(HAVE_DIRECTSOUND)
626 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
627 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
629 save_CFLAGS="$CFLAGS"
630 save_LDFLAGS="$LDFLAGS"
632 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
633 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
634 LIBS="$LIBS -lole32 -lwinmm -lksuser"
635 AC_MSG_CHECKING(for WASAPI LDFLAGS)
636 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
639 #include <mmsystem.h>
640 #include <mmdeviceapi.h>
646 hr = CoInitialize(NULL);
648 printf("CoInitialize failed: hr = 0x%08x", hr);
653 // result = do_everything(argc, argv);
661 AC_MSG_RESULT($HAVE_WASAPI)
663 LDFLAGS=$save_LDFLAGS
666 if test "x$HAVE_WASAPI" = "xyes"; then
667 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
668 AC_SUBST(WASAPI_LIBS)
670 AC_SUBST(HAVE_WASAPI)
674 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
675 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
677 save_CFLAGS="$CFLAGS"
678 save_LDFLAGS="$LDFLAGS"
680 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
681 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
682 LIBS="$LIBS -ld3d9 -lgdi32"
683 AC_MSG_CHECKING(for Direct3D LDFLAGS)
684 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
688 Direct3DCreate9(D3D_SDK_VERSION);
690 [HAVE_DIRECT3D="yes"],
691 [HAVE_DIRECT3D="no"])
692 AC_MSG_RESULT($HAVE_DIRECT3D)
694 LDFLAGS=$save_LDFLAGS
697 if test "x$HAVE_DIRECT3D" = "xyes"; then
698 DIRECT3D_LIBS="-ld3d9 -lgdi32"
699 AC_SUBST(DIRECT3D_LIBS)
701 AC_SUBST(HAVE_DIRECT3D)
705 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
706 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
707 HAVE_WINSCREENCAP="no"
708 save_CFLAGS="$CFLAGS"
709 save_LDFLAGS="$LDFLAGS"
711 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
712 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
713 LIBS="$LIBS -ld3d9 -lgdi32"
714 AC_MSG_CHECKING(for Direct3D LDFLAGS)
715 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
719 Direct3DCreate9(D3D_SDK_VERSION);
721 [HAVE_WINSCREENCAP="yes"],
722 [HAVE_WINSCREENCAP="no"])
723 AC_MSG_RESULT($HAVE_WINSCREENCAP)
725 LDFLAGS=$save_LDFLAGS
728 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
729 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
730 AC_SUBST(WINSCREENCAP_LIBS)
732 AC_SUBST(HAVE_WINSCREENCAP)
736 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
737 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
739 save_CFLAGS="$CFLAGS"
740 save_LDFLAGS="$LDFLAGS"
742 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
743 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
744 LIBS="$LIBS -lole32 -luuid -lstrmiids"
745 AC_MSG_CHECKING(for Winks LDFLAGS)
746 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
752 IGraphBuilder *pGraph = NULL;
753 HRESULT hr = CoInitialize(NULL);
754 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
755 &IID_IGraphBuilder, (void **)&pGraph);
762 AC_MSG_RESULT($HAVE_WINKS)
764 LDFLAGS=$save_LDFLAGS
767 if test "x$HAVE_WINKS" = "xyes"; then
768 dnl this is much more than we want
769 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
770 AC_SUBST(DIRECTX_CFLAGS)
771 AC_SUBST(DIRECTX_LDFLAGS)
777 dnl *** Android Media ***
778 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
779 HAVE_ANDROID_MEDIA="no"
780 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
783 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
786 HAVE_ANDROID_MEDIA="no"
791 dnl *** AppleMedia (OS X and iOS) ***
792 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
793 HAVE_APPLE_MEDIA="no"
794 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
795 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
796 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
797 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
798 if test "x$HAVE_IOS" = "xno"; then
799 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
803 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
808 HAVE_APPLE_MEDIA="no"
813 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
814 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
815 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
816 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
817 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
819 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
828 dnl *** OS/X AVCVideoServices ***
829 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
831 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
833 save_CPPFLAGS="$CPPFLAGS"
834 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
836 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
837 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
839 CPPFLAGS=$save_CPPFLAGS
842 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
851 dnl check for shm_open (for shm plugin)
852 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
853 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
854 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
856 *-darwin* | *-macos10*)
857 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
864 AC_CHECK_LIB([rt], [shm_open],
865 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
866 #include <sys/socket.h>
869 AC_SUBST(SHM_LIBS, "-lrt")
877 dnl check for unix sockets (ipcpipeline plugin)
878 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
879 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
880 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
881 AC_CHECK_FUNC(pipe, [
882 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
891 dnl check for OpenSL ES
892 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
893 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
894 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
898 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
899 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
900 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
901 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
902 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
905 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
906 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
909 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
910 test "x$HAVE_GUDEV" = "xyes" && \
911 test "x$HAVE_LIBUSB" = "xyes"; then
917 AC_SUBST(LIBUDEV_CFLAGS)
918 AC_SUBST(LIBUDEV_LIBS)
919 AC_SUBST(LIBUSB_CFLAGS)
920 AC_SUBST(LIBUSB_LIBS)
923 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
924 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
925 AC_ARG_WITH([cuda-prefix],
926 AS_HELP_STRING([--with-cuda-prefix],
927 [Use the provided prefix for detecting the cuda installation]),
928 [AS_IF([test "x$with_cuda_prefix" != "x"],
929 [CUDA_PREFIX="$with_cuda_prefix"])],
933 if test "x$CUDA_PREFIX" != "x"; then
934 dnl only override if not already set
935 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
936 dnl this is an educated guess, user can always override these
937 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
938 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
941 PKG_CHECK_MODULES([CUDA], [cuda-10.1 cudart-10.1],, [
942 PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
943 PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
944 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
945 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
946 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
947 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
948 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
949 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
950 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])])
955 save_CPPFLAGS="$CPPFLAGS"
956 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
957 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
958 AC_MSG_WARN([Could not find cuda.h]))
959 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
960 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
961 CPPFLAGS=$save_CPPFLAGS
963 dnl libcuda and libcudart libraries
965 LIBS="$CUDA_LIBS $save_LIBS"
967 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
968 AC_MSG_WARN([Could not find cudart library])])
970 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
971 AC_MSG_WARN([Could not find cuda library])])
976 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
977 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
978 save_CPPFLAGS="$CPPFLAGS"
979 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
980 CPPFLAGS=$save_CPPFLAGS
984 LIBS="$CUDA_LIBS $save_LIBS"
985 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
986 AC_MSG_WARN([Could not find library nvcuvid]))
989 if test "x$HAVE_NVCUVID" = "xyes"; then
997 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
998 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
999 dnl libnvnidia-encode library
1000 HAVE_NVENCODE_LIB=no
1001 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1003 LIBS="$NVENCODE_LIBS $saved_LIBS"
1004 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1005 AC_MSG_WARN([Could not find library nvidia-encode]))
1006 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1007 AC_SUBST(NVENCODE_LIBS)
1011 if test "x$HAVE_CUDA_H" = "xyes" \
1012 -a "x$HAVE_CUDART_H" = "xyes" \
1013 -a "x$HAVE_CUDA_LIB" = "xyes" \
1014 -a "x$HAVE_CUDART_LIB" = "xyes" \
1015 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1017 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1018 dnl cuda-gl interop header
1019 save_CPPFLAGS="$CPPFLAGS"
1020 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1021 AC_CHECK_HEADER([cuda_gl_interop.h], [
1022 USE_NVENC_GST_GL="yes"
1023 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1025 CPPFLAGS="$save_CPPFLAGS"
1031 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1033 dnl check for tinyalsa
1034 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1035 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1036 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1039 dnl check for intel mediasdk
1040 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1041 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1042 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1043 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1044 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1047 PKG_CHECK_MODULES(LIBMFX, libmfx,
1049 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1051 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1052 save_CPPFLAGS="$CPPFLAGS"
1053 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1054 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1055 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1056 MFX_INCDIR="`$PKG_CONFIG --variable=includedir libmfx`"
1057 MSDK_CFLAGS="-I$MFX_INCDIR/mfx"
1058 AC_SUBST(MSDK_CFLAGS)
1060 CPPFLAGS="$save_CPPFLAGS"
1062 AC_ARG_WITH([msdk-prefix],
1063 AS_HELP_STRING([--with-msdk-prefix],
1064 [Use the provided prefix for detecting the Intel MediaSDK]),
1065 [AS_IF([test "x$with_msdk_prefix" != "x"],
1066 [MSDK_PREFIX="$with_msdk_prefix"])],
1067 [AS_IF([test "x$MFX_HOME" != "x"],
1068 [MSDK_PREFIX="$MFX_HOME"],
1069 [MSDK_PREFIX="/opt/intel/media"])])
1070 MSDK_CFLAGS="-I$MSDK_PREFIX/include -I$MSDK_PREFIX/include/mfx"
1071 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -L$MSDK_PREFIX/lib/x64 -L$MSDK_PREFIX/lib64 -L$MSDK_PREFIX/lib -lmfx -ldl"
1072 AC_SUBST(MSDK_CFLAGS)
1075 save_CPPFLAGS="$CPPFLAGS"
1076 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1077 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1078 CPPFLAGS="$save_CPPFLAGS"
1081 LIBS="$MSDK_LIBS $LIBS"
1083 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1087 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1088 -a "x$HAVE_MFX_LIB" = "xyes"; then
1095 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1097 if test "x$HAVE_GUDEV" = "xyes" \
1098 -a "x$HAVE_MSDK" = "xyes" \
1099 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1105 dnl check the availability of vp9 apis
1107 save_CPPFLAGS="$CPPFLAGS"
1108 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1109 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1111 #include <mfxplugin.h>
1114 if test $HAVE_MFXVP9_H -eq 1; then
1116 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1118 ], [USE_MSDK_VP9_DEC=0])
1119 AM_CONDITIONAL(USE_MSDK_LIBVA,
1120 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1121 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1122 [test $USE_MSDK_VP9_DEC -eq 1])
1124 dnl *** ext plug-ins ***
1125 dnl keep this list sorted alphabetically !
1127 if test "x$BUILD_EXTERNAL" = "xyes"; then
1129 dnl *** assrender ***
1130 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1131 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1132 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1133 HAVE_ASSRENDER="yes" ], [
1137 AC_SUBST(ASSRENDER_CFLAGS)
1138 AC_SUBST(ASSRENDER_LIBS)
1141 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1142 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1143 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1146 dnl *** vo-amrwbenc ***
1147 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1148 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1149 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1152 dnl *** vo-aacenc ***
1153 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1154 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1155 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1159 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1160 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1161 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1164 AC_SUBST(BS2B_CFLAGS)
1169 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1170 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1173 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1174 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1175 AC_MSG_RESULT($HAVE_BZ2)
1177 if test "x$HAVE_BZ2" = "xyes"; then
1185 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1186 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1187 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1190 # AC_SUBST(CAIRO_CFLAGS)
1191 # AC_SUBST(CAIRO_LIBS)
1194 dnl *** chromaprint ***
1195 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1196 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1197 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1198 HAVE_CHROMAPRINT="no"
1200 AC_SUBST(CHROMAPRINT_CFLAGS)
1201 AC_SUBST(CHROMAPRINT_LIBS)
1205 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1206 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1207 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1209 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1210 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1212 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1213 [[#ifdef HAVE_SYS_TYPES_H
1214 # include <sys/types.h>
1216 #ifdef HAVE_NETINET_IN_H
1217 # include <netinet/in.h>
1220 AC_MSG_CHECKING([for socket support needed by curlsink])
1221 AC_MSG_RESULT($HAVE_CURL)
1225 AC_SUBST(CURL_CFLAGS)
1227 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1229 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1233 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1234 AC_SUBST(SSH2_CFLAGS)
1236 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1239 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1240 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1241 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1242 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1244 AC_SUBST(LIBXML2_CFLAGS)
1245 AC_SUBST(LIBXML2_LIBS)
1249 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1250 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1251 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1252 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1261 AC_SUBST(LIBDC1394_CFLAGS)
1262 AC_SUBST(LIBDC1394_LIBS)
1265 dnl *** decklink ***
1266 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1267 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1274 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1275 AC_CHECK_LIB(dl, dlopen,
1279 DECKLINK_LIBS="-lpthread -ldl"
1284 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1285 AC_CHECK_LIB(dl, dlopen,
1289 DECKLINK_LIBS="-lpthread -ldl"
1290 HAVE_DECKLINK_OSX=yes
1297 DECKLINK_LIBS="-lole32 -loleaut32"
1298 HAVE_DECKLINK_WIN=yes
1305 AC_SUBST(DECKLINK_CXXFLAGS)
1306 AC_SUBST(DECKLINK_LIBS)
1308 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1309 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1311 dnl **** DirectFB ****
1312 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1313 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1314 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1319 dnl **** Wayland ****
1320 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1321 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1322 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1323 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.15, [
1324 if test "x$wayland_scanner" != "x"; then
1326 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1328 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1337 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1338 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1339 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1340 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1342 AC_SUBST(WEBP_CFLAGS)
1347 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1348 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1350 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1351 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1352 if test $HAVE_DTS = "no"; then
1353 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1354 [ DTS_LIBS="-ldts_pic $LIBM"
1355 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1361 dnl *** resindvd ***
1362 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1363 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1364 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1369 dnl **** Free AAC Encoder (FAAC) ****
1370 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1371 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1372 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1373 FAAC_LIBS="-lfaac $LIBM")
1377 dnl **** Free AAC Decoder (FAAD2) ****
1378 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1379 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1380 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1381 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1382 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1384 #elif !defined(LATM)
1385 #error Not faad2 >= 2.7
1391 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1401 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1402 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1403 if test "x$HAVE_FBDEV" != "xyes"; then
1404 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1409 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1410 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1411 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1413 PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1414 AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1417 PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1418 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1423 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1424 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1425 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1426 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1428 AC_SUBST(FLITE_CFLAGS)
1429 AC_SUBST(FLITE_LIBS)
1433 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1434 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1435 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1436 if test $HAVE_GSM != "yes"; then
1437 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1438 if test $HAVE_GSM = "yes"; then
1439 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1445 dnl *** fluidSynth ***
1446 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1447 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1448 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1449 HAVE_FLUIDSYNTH="no"
1454 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1455 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1456 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1459 AC_SUBST(KATE_CFLAGS)
1461 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1464 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1470 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1471 AC_SUBST(TIGER_CFLAGS)
1472 AC_SUBST(TIGER_LIBS)
1473 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1476 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1477 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1478 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1479 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1483 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1484 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1485 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1487 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1488 if test $HAVE_LRDF = "yes"; then
1489 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1492 AC_SUBST(LRDF_CFLAGS)
1496 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1497 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1498 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1501 AC_SUBST(LCMS2_LIBS)
1505 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1506 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1507 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1509 HAVE_LILV_0_22="yes"
1510 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1512 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1514 AC_SUBST(LILV_CFLAGS)
1518 dnl *** libde265 ***
1519 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1520 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1521 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1522 AC_SUBST(LIBDE265_CFLAGS)
1523 AC_SUBST(LIBDE265_LIBS)
1527 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1528 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1529 dnl check with pkg-config first
1530 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1534 AC_SUBST(LIBMMS_LIBS)
1537 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1538 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1539 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1541 AC_SUBST(SRT_CFLAGS)
1545 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1546 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1548 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1549 if test x"$HAVE_SRTP" = x"yes"; then
1550 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1552 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1553 AG_GST_CHECK_LIBHEADER(SRTP, srtp, crypto_policy_set_aes_gcm_128_16_auth, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1557 AC_SUBST(SRTP_CFLAGS)
1561 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1562 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1563 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1565 AC_SUBST(DTLS_CFLAGS)
1573 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1574 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1575 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1583 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1584 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1585 if test "x$HAVE_CXX" != "xyes"; then
1586 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1589 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1591 AC_SUBST(MODPLUG_CFLAGS)
1592 AC_SUBST(MODPLUG_LIBS)
1595 dnl *** mjpegtools version info ***
1596 dnl some may prefer older version (given quirks above)
1597 dnl hm, no version info seems available within mjpegtools headers
1598 dnl and API really moves along
1600 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1601 mjpegtools_api=10601
1603 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1604 mjpegtools_api=10800
1606 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1607 mjpegtools_api=20000
1609 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1610 dnl logging API changed in release candidates
1611 OLD_CFLAGS="$CFLAGS"
1613 CFLAGS="$MJPEG_CFLAGS"
1614 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1615 AC_CHECK_FUNC(mjpeg_loglev_t, [
1616 mjpegtools_api=10903
1618 mjpegtools_api=10900
1620 CFLAGS="$OLD_CFLAGS"
1628 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1629 [mjpegtools API evolution])
1631 dnl *** mpeg2enc ***
1632 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1633 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1635 dnl we require a c++ compiler for this one
1636 if [ test x$HAVE_CXX = xyes ]; then
1637 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1638 dnl since many distros include mjpegtools specifically without mplex
1639 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1640 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1641 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1643 dnl switch over to c++ to test things
1645 OLD_CPPFLAGS="$CPPFLAGS"
1647 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1648 CPPFLAGS="$CPPFLAGS_GOOD -I."
1650 mpeg2enc_headers_ok=no
1651 AC_CHECK_HEADER([mpeg2encoder.hh], [
1652 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1654 LIBS="$LIBS $MPEG2ENC_LIBS"
1655 AC_MSG_CHECKING([for valid mpeg2enc objects])
1656 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1657 #include <mpeg2encoder.hh>
1658 #include <mpeg2encoptions.hh>
1664 MPEG2EncOptions *options = new MPEG2EncOptions ();
1665 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1670 dnl so far so good, let's check more things:
1671 dnl mjpegtools-1.8.0 does not install the required
1672 dnl mpeg2syntaxcodes.h header by default, and a new release
1673 dnl is not in sight, so check for this oversight in case
1674 dnl distros or folks have fixed this themselves
1675 if test "$mjpegtools_api" -ge "10800"; then
1676 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1677 mpeg2enc_headers_ok=yes
1679 mpeg2enc_headers_ok=no
1682 mpeg2enc_headers_ok=yes
1684 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1687 CPPFLAGS="$CPPFLAGS_GOOD"
1688 AC_SUBST(MPEG2ENC_CFLAGS)
1689 AC_SUBST(MPEG2ENC_LIBS)
1696 CPPFLAGS="$OLD_CPPFLAGS"
1705 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1706 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1708 dnl we require a c++ compiler for this one
1709 if [ test x$HAVE_CXX = xyes ]; then
1710 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1711 dnl since many distros include mjpegtools specifically without mplex
1712 dnl and mpeg2enc, we check for mplex on its own, too.
1713 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1714 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1715 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1717 dnl switch over to c++ to test things
1719 OLD_CPPFLAGS="$CPPFLAGS"
1721 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1722 CPPFLAGS="$CPPFLAGS_GOOD -I."
1723 AC_CHECK_HEADER(interact.hpp, [
1724 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1726 LIBS="$LIBS $MPLEX_LIBS"
1727 OLD_LDFLAGS="$LDFLAGS"
1728 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1729 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1730 dnl don't want this here
1731 AC_MSG_CHECKING([for valid mplex objects])
1732 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1734 #include <interact.hpp>
1735 #include <outputstrm.hpp>
1736 #include <multiplexor.hpp>
1741 class TestOutputStream : public OutputStream {
1743 TestOutputStream () : OutputStream () { }
1744 void Write (uint8_t *a, unsigned int b) { }
1745 void NextSegment () { }
1746 uint64_t SegmentSize () { return 0; }
1748 int Open () { return 0; }
1750 MultiplexJob *job = new MultiplexJob ();
1751 vector<IBitStream *> inputs;
1752 job->SetupInputStreams (inputs);
1753 TestOutputStream *out = new TestOutputStream ();
1754 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1759 CPPFLAGS="$CPPFLAGS_GOOD"
1760 AC_SUBST(MPLEX_CFLAGS)
1761 AC_SUBST(MPLEX_LIBS)
1762 AC_SUBST(MPLEX_LDFLAGS)
1764 ],[AC_MSG_RESULT(no)],[])
1766 LDFLAGS="$OLD_LDFLAGS"
1768 CPPFLAGS="$OLD_CPPFLAGS"
1774 dnl *** musepack ***
1775 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1776 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1777 AC_CHECK_HEADER([mpc/mpcdec.h], [
1779 MUSEPACK_LIBS="-lmpcdec"
1780 AC_SUBST(MUSEPACK_LIBS)
1781 ], [HAVE_MUSEPACK="no"])
1785 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1786 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1787 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1790 AC_SUBST(NEON_CFLAGS)
1795 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1796 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1797 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1800 AC_SUBST(OFA_CFLAGS)
1805 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1806 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1807 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1810 AC_SUBST(OPENAL_CFLAGS)
1811 AC_SUBST(OPENAL_LIBS)
1815 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1816 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1817 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1818 dnl and don't want the build to break when a new opencv version comes out.
1819 dnl Need to adjust this upwards once we know that our code compiles fine with
1820 dnl a new version and the no-backward-compatibility define. (There doesn't
1821 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1823 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1826 OLD_CPPFLAGS=$CPPFLAGS
1827 CPPFLAGS=$OPENCV_CFLAGS
1828 something_not_found=no
1829 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1830 opencv2/calib3d.hpp \
1832 opencv2/imgproc.hpp \
1833 opencv2/objdetect.hpp \
1834 opencv2/opencv.hpp \
1836 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1838 CPPFLAGS=$OLD_CPPFLAGS
1841 if test $something_not_found = "yes"; then
1842 AC_MSG_RESULT([not all opencv2 headers were found])
1848 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [
1851 OLD_CPPFLAGS=$CPPFLAGS
1852 CPPFLAGS=$OPENCV_CFLAGS
1853 something_not_found=no
1854 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1855 opencv2/calib3d.hpp \
1857 opencv2/imgproc.hpp \
1858 opencv2/objdetect.hpp \
1859 opencv2/opencv.hpp \
1861 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1863 CPPFLAGS=$OLD_CPPFLAGS
1866 if test $something_not_found = "yes"; then
1867 AC_MSG_RESULT([not all opencv2 headers were found])
1876 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1877 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1878 AC_SUBST(OPENCV_PREFIX)
1879 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1880 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1881 AC_SUBST(OPENCV_PREFIX)
1882 AC_SUBST(OPENCV_CFLAGS)
1883 AC_SUBST(OPENCV_LIBS)
1884 dnl the OpenCV prefix is used at runtime for some object properties, and also
1885 dnl used here to detect which directory is the correct one. For the second
1886 dnl case, make sure the right sysroot is used, ensuring correct behavior
1887 dnl during cross compilation.
1888 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1889 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1891 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1896 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1897 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1898 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1901 dnl *** openh264 ***
1902 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1903 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1904 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1907 dnl *** OpenJPEG ***
1908 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1909 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1911 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1912 if test x"$HAVE_OPENJPEG" != x"yes"; then
1915 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1916 HAVE_OPENJPEG="yes",
1917 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1919 if test x"$HAVE_OPENJPEG" = x"yes"; then
1920 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1923 AC_SUBST(OPENJPEG_CFLAGS)
1924 AC_SUBST(OPENJPEG_LIBS)
1928 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1929 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1930 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1931 AC_SUBST(OPENMPT_CFLAGS)
1932 AC_SUBST(OPENMPT_LIBS)
1936 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1937 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1938 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1939 AC_SUBST(OPENNI2_CFLAGS)
1940 AC_SUBST(OPENNI2_LIBS)
1944 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1945 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1946 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1947 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1952 AC_SUBST(OPUS_CFLAGS)
1957 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1958 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
1959 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
1963 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1964 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1965 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1970 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1971 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1972 if test "x$HAVE_GST_GL" = "xyes"; then
1976 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1977 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1980 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
1981 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
1982 AC_CHECK_HEADER(vulkan/vulkan.h, [
1983 AC_CHECK_LIB(vulkan, vkCreateDevice, [
1984 VULKAN_LIBS="-lvulkan"
1985 AC_SUBST(VULKAN_LIBS)
1986 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
1989 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
1996 dnl *** teletextdec ***
1997 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1998 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1999 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2002 dnl *** wildmidi ***
2003 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2004 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2005 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2008 WILDMIDI_LIBS="-lWildMidi")
2011 if test "x$HAVE_WILDMIDI" = "xyes"; then
2012 AC_MSG_CHECKING([for wildmidi >= 4.0])
2013 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2014 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2015 #error "wildmidi too old"
2017 ]])], [ AC_MSG_RESULT(yes)
2020 WILDMIDI_LIBS=-lWildMidi
2021 ], [ AC_MSG_RESULT(no)
2025 AC_MSG_WARN([WildMidi library or development headers not found])
2027 AC_SUBST(WILDMIDI_CFLAGS)
2028 AC_SUBST(WILDMIDI_LIBS)
2031 dnl **** Smooth Streaming ****
2032 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2033 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2034 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2036 HAVE_SMOOTHSTREAMING="yes"],
2038 HAVE_SMOOTHSTREAMING="no"])
2039 AC_SUBST(LIBXML2_CFLAGS)
2040 AC_SUBST(LIBXML2_LIBS)
2044 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2045 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2046 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2047 AC_SUBST(SNDFILE_CFLAGS)
2048 AC_SUBST(SNDFILE_LIBS)
2051 dnl *** soundtouch ***
2052 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2053 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2054 dnl We only need -lBPM on soundtouch < 1.4
2055 dnl We check for libSoundTouch since Debian used it before upstream
2056 dnl added a pkgconfig file.
2057 HAVE_SOUNDTOUCH_1_4=yes
2058 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2059 [HAVE_SOUNDTOUCH=yes],
2060 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2061 [HAVE_SOUNDTOUCH=yes],
2062 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2063 [HAVE_SOUNDTOUCH=yes
2064 HAVE_SOUNDTOUCH_1_4=no
2065 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2066 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2067 [HAVE_SOUNDTOUCH=yes],
2068 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2069 [HAVE_SOUNDTOUCH=yes
2070 HAVE_SOUNDTOUCH_1_4=no
2071 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2072 HAVE_SOUNDTOUCH=no)])])])])
2073 AC_SUBST(SOUNDTOUCH_CFLAGS)
2074 AC_SUBST(SOUNDTOUCH_LIBS)
2075 if test "x$HAVE_CXX" != "xyes"; then
2076 USE_SOUNDTOUCH=false
2077 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2079 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2080 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2081 [Defined if the available libSoundTouch is >= 1.4])
2086 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2087 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2088 AC_CHECK_HEADER(gme/gme.h, [
2089 AC_CHECK_LIB(gme, gme_new_emu, [
2100 if test "x$HAVE_GME" = "xyes"; then
2101 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2102 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2108 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2109 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2110 AC_MSG_CHECKING([Checking for up to date dvb installation])
2111 AC_CHECK_HEADER(linux/dvb/version.h, [
2112 AC_MSG_CHECKING([for up-to-date dvb API])
2113 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2114 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2115 #error "Incompatible dvb API"
2117 ]])], [ AC_MSG_RESULT(yes)
2119 ], [ AC_MSG_RESULT(no)
2126 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2127 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2132 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2134 if test "$HAVE_VDPAU" = "no"; then
2135 saved_CPPFLAGS="$CPPFLAGS"
2136 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2138 if test -z "$HAVE_VDPAU_H"; then
2139 dnl Didn't find VDPAU header straight away.
2140 dnl Try /usr/include/nvidia. Need to clear caching vars first
2141 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2142 unset ac_cv_header_vdpau_vdpau_h
2143 unset ac_cv_header_vdpau_vdpau_x11_h
2144 VDPAU_CFLAGS="-I/usr/include/nvidia"
2145 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2146 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2147 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2150 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2152 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2153 dnl Found the headers - look for the lib
2154 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2156 LIBS="$VDPAU_LIBS $saved_LIBS"
2157 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2163 if test "$HAVE_VDPAU" = "yes"; then
2164 AC_MSG_NOTICE([Found up to date VDPAU installation])
2165 AC_SUBST(VDPAU_CFLAGS)
2166 AC_SUBST(VDPAU_LIBS)
2171 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2172 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2173 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2177 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2178 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2179 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2183 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2184 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2185 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2189 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2190 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2191 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2192 HAVE_SPANDSP="yes" ], [
2196 AC_SUBST(SPANDSP_CFLAGS)
2197 AC_SUBST(SPANDSP_LIBS)
2199 dnl *** hls-crypto ***
2200 AC_ARG_WITH([hls-crypto],
2201 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2202 which cryptographic library version to compile against for hls (default: auto)
2204 AS_CASE([$with_hls_crypto],
2208 [with_hls_crypto=auto]
2214 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2215 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2216 AS_CASE([$with_hls_crypto],
2218 PKG_CHECK_MODULES(NETTLE, nettle, [
2219 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2221 ],[AC_MSG_ERROR([Could not find nettle library])])
2224 AM_PATH_LIBGCRYPT([1.2.0], [
2225 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2227 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2230 PKG_CHECK_MODULES(OPENSSL, openssl, [
2231 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2233 ],[AC_MSG_ERROR([Could not find openssl library])])
2236 dnl Try to find a valid crypto library
2238 PKG_CHECK_MODULES(NETTLE, nettle, [
2239 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2241 AM_PATH_LIBGCRYPT([1.2.0], [
2242 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2244 PKG_CHECK_MODULES(OPENSSL, openssl, [
2245 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2253 dnl *** x265 (H.265/HEVC encoder) ***
2254 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2255 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2256 AG_GST_PKG_CHECK_MODULES(X265, x265)
2259 dnl *** WebRTC Audio Processing ***
2260 dnl Note: We test for a specific version as there is no API stability
2261 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2262 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2264 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2266 # On Android, C++ headers comes with the STL implementation
2267 AS_CASE(["${host}"],
2270 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2271 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2272 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2274 AC_SUBST([WEBRTCDSP_CFLAGS])
2275 AC_SUBST([WEBRTCDSP_LIBS])
2278 old_CPPFLAGS=$CPPFLAGS
2279 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2280 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2281 CPPFLAGS=$old_CPPFLAGS
2286 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2287 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2288 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2289 HAVE_WEBRTC="yes" ], [
2295 translit(dnm, m, l) AM_CONDITIONAL(USE_WPE, true)
2296 AG_GST_CHECK_FEATURE(WPE, [WPE plug-in], wpe, [
2297 PKG_CHECK_MODULES(WPE, [ wpe-webkit-1.0 >= 2.24 wpebackend-fdo-1.0 egl xkbcommon ], [
2304 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2305 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2306 AC_CHECK_HEADER(usrsctp.h, [
2307 AC_CHECK_LIB(usrsctp, usrsctp_init, [
2308 USRSCTP_LIBS="-lusrsctp"
2309 AC_SUBST(USRSCTP_LIBS)
2321 dnl not building plugins with external dependencies,
2322 dnl but we still need to set the conditionals
2324 AM_CONDITIONAL(USE_ASSRENDER, false)
2325 AM_CONDITIONAL(USE_AOM, false)
2326 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2327 AM_CONDITIONAL(USE_VOAACENC, false)
2328 AM_CONDITIONAL(USE_BS2B, false)
2329 AM_CONDITIONAL(USE_BZ2, false)
2330 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2331 AM_CONDITIONAL(USE_CURL, false)
2332 AM_CONDITIONAL(USE_SSH2, false)
2333 AM_CONDITIONAL(USE_DASH, false)
2334 AM_CONDITIONAL(USE_DC1394, false)
2335 AM_CONDITIONAL(USE_DECKLINK, false)
2336 AM_CONDITIONAL(DECKLINK_OSX, false)
2337 AM_CONDITIONAL(DECKLINK_WIN, false)
2338 AM_CONDITIONAL(USE_DIRECTFB, false)
2339 AM_CONDITIONAL(USE_WAYLAND, false)
2340 AM_CONDITIONAL(USE_DTS, false)
2341 AM_CONDITIONAL(USE_EXIF, false)
2342 AM_CONDITIONAL(USE_RESINDVD, false)
2343 AM_CONDITIONAL(USE_FAAC, false)
2344 AM_CONDITIONAL(USE_FAAD, false)
2345 AM_CONDITIONAL(USE_FBDEV, false)
2346 AM_CONDITIONAL(USE_FDK_AAC, false)
2347 AM_CONDITIONAL(USE_FLITE, false)
2348 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2349 AM_CONDITIONAL(USE_GL, false)
2350 AM_CONDITIONAL(USE_GSM, false)
2351 AM_CONDITIONAL(USE_HLS, false)
2352 AM_CONDITIONAL(USE_IQA, false)
2353 AM_CONDITIONAL(USE_KATE, false)
2354 AM_CONDITIONAL(USE_KMS, false)
2355 AM_CONDITIONAL(USE_TIGER, false)
2356 AM_CONDITIONAL(USE_LADSPA, false)
2357 AM_CONDITIONAL(USE_LCMS2, false)
2358 AM_CONDITIONAL(USE_LV2, false)
2359 AM_CONDITIONAL(USE_LIBDE265, false)
2360 AM_CONDITIONAL(USE_LIBMMS, false)
2361 AM_CONDITIONAL(USE_MODPLUG, false)
2362 AM_CONDITIONAL(USE_MPEG2ENC, false)
2363 AM_CONDITIONAL(USE_MPLEX, false)
2364 AM_CONDITIONAL(USE_MUSEPACK, false)
2365 AM_CONDITIONAL(USE_NEON, false)
2366 AM_CONDITIONAL(USE_OFA, false)
2367 AM_CONDITIONAL(USE_OPENAL, false)
2368 AM_CONDITIONAL(USE_OPENCV, false)
2369 AM_CONDITIONAL(USE_OPENEXR, false)
2370 AM_CONDITIONAL(USE_OPENGL, false)
2371 AM_CONDITIONAL(USE_OPENJPEG, false)
2372 AM_CONDITIONAL(USE_OPENMPT, false)
2373 AM_CONDITIONAL(USE_OPENNI2, false)
2374 AM_CONDITIONAL(USE_OPUS, false)
2375 AM_CONDITIONAL(USE_PANGO, false)
2376 AM_CONDITIONAL(USE_WILDMIDI, false)
2377 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2378 AM_CONDITIONAL(USE_SNDFILE, false)
2379 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2380 AM_CONDITIONAL(USE_SPANDSP, false)
2381 AM_CONDITIONAL(USE_SRTP, false)
2382 AM_CONDITIONAL(USE_SRT, false)
2383 AM_CONDITIONAL(USE_GME, false)
2384 AM_CONDITIONAL(USE_DVB, false)
2385 AM_CONDITIONAL(USE_VDPAU, false)
2386 AM_CONDITIONAL(USE_SBC, false)
2387 AM_CONDITIONAL(USE_ZBAR, false)
2388 AM_CONDITIONAL(USE_RSVG, false)
2389 AM_CONDITIONAL(USE_RTMP, false)
2390 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2391 AM_CONDITIONAL(USE_UVCH264, false)
2392 AM_CONDITIONAL(USE_WEBP, false)
2393 AM_CONDITIONAL(USE_WEBRTC, false)
2394 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2395 AM_CONDITIONAL(USE_OPENH264, false)
2396 AM_CONDITIONAL(USE_X265, false)
2397 AM_CONDITIONAL(USE_DTLS, false)
2398 AM_CONDITIONAL(USE_VULKAN, false)
2399 AM_CONDITIONAL(USE_TTML, false)
2400 AM_CONDITIONAL(USE_SCTP, false)
2402 fi dnl of EXT plugins
2404 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2407 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2408 dnl GST_*: flags shared by built objects to link against GStreamer
2409 dnl GST_ALL_LDFLAGS: linker flags shared by all
2410 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2411 dnl GST_LT_LDFLAGS: library versioning of our libraries
2412 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2414 dnl GST_OPTION_CFLAGS
2415 if test "x$USE_DEBUG" = xyes; then
2418 AC_SUBST(PROFILE_CFLAGS)
2420 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2421 dnl Define _only_ during CVS (not pre-releases or releases)
2422 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2424 DEPRECATED_CFLAGS=""
2426 AC_SUBST(DEPRECATED_CFLAGS)
2428 VISIBILITY_CFLAGS=""
2429 AS_COMPILER_FLAG([-fvisibility=hidden], [
2430 VISIBILITY_CFLAGS="-fvisibility=hidden"
2431 AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2433 VISIBILITY_CFLAGS=""
2434 AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2436 AC_SUBST(VISIBILITY_CFLAGS)
2438 VISIBILITY_CXXFLAGS=""
2439 if test "x$HAVE_CXX" = "xyes"; then
2440 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2442 AC_SUBST(VISIBILITY_CXXFLAGS)
2444 dnl disable strict aliasing
2445 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2446 AC_SUBST(EXTRA_CFLAGS)
2448 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2449 dnl at make time with e.g. make ERROR_CFLAGS=""
2450 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2451 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2452 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2453 AC_SUBST(GST_OPTION_CFLAGS)
2454 AC_SUBST(GST_OPTION_CXXFLAGS)
2455 AC_SUBST(GST_OPTION_OBJCFLAGS)
2457 dnl FIXME: do we want to rename to GST_ALL_* ?
2458 dnl prefer internal headers to already installed ones
2459 dnl also add builddir include for enumtypes and marshal
2460 dnl add GST_OPTION_CFLAGS, but overridable
2461 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2462 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2463 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2464 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2465 AC_SUBST(GST_CFLAGS)
2466 AC_SUBST(GST_CXXFLAGS)
2467 AC_SUBST(GST_OBJCFLAGS)
2469 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2470 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2471 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2472 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2473 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2474 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2476 dnl LDFLAGS really should only contain flags, not libs - they get added before
2477 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2478 GST_ALL_LDFLAGS="-no-undefined"
2479 if test "x${enable_Bsymbolic}" = "xyes"; then
2480 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2482 AC_SUBST(GST_ALL_LDFLAGS)
2485 dnl linker flags shared by all libraries
2486 dnl LDFLAGS modifier defining exported symbols from built libraries
2487 dnl (export _gst_foo but not __gst_foo)
2489 AC_SUBST(GST_LIB_LDFLAGS)
2491 dnl this really should only contain flags, not libs - they get added before
2492 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2493 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2494 AC_SUBST(GST_PLUGIN_LDFLAGS)
2496 dnl *** output files ***
2498 $MKDIR_P tests/check/orc
2507 gst/accurip/Makefile
2508 gst/adpcmdec/Makefile
2509 gst/adpcmenc/Makefile
2511 gst/videoframe_audiolevel/Makefile
2513 gst/audiobuffersplit/Makefile
2514 gst/audiofxbad/Makefile
2515 gst/audiolatency/Makefile
2516 gst/audiomixmatrix/Makefile
2517 gst/audiovisualizers/Makefile
2518 gst/autoconvert/Makefile
2520 gst/camerabin2/Makefile
2521 gst/coloreffects/Makefile
2522 gst/debugutils/Makefile
2523 gst/dvbsuboverlay/Makefile
2525 gst/faceoverlay/Makefile
2526 gst/festival/Makefile
2527 gst/fieldanalysis/Makefile
2528 gst/freeverb/Makefile
2530 gst/gaudieffects/Makefile
2531 gst/geometrictransform/Makefile
2535 gst/interlace/Makefile
2536 gst/ivfparse/Makefile
2538 gst/jp2kdecimator/Makefile
2539 gst/jpegformat/Makefile
2542 gst/mpegdemux/Makefile
2543 gst/mpegtsdemux/Makefile
2544 gst/mpegtsmux/Makefile
2545 gst/mpegtsmux/tsmux/Makefile
2546 gst/mpegpsmux/Makefile
2550 gst/pcapparse/Makefile
2553 gst/rawparse/Makefile
2554 gst/removesilence/Makefile
2556 gst/segmentclip/Makefile
2561 gst/timecode/Makefile
2562 gst/videofilters/Makefile
2563 gst/videoparsers/Makefile
2564 gst/videosignal/Makefile
2569 gst-libs/gst/Makefile
2570 gst-libs/gst/adaptivedemux/Makefile
2571 gst-libs/gst/basecamerabinsrc/Makefile
2572 gst-libs/gst/insertbin/Makefile
2573 gst-libs/gst/interfaces/Makefile
2574 gst-libs/gst/isoff/Makefile
2575 gst-libs/gst/codecparsers/Makefile
2576 gst-libs/gst/mpegts/Makefile
2577 gst-libs/gst/sctp/Makefile
2578 gst-libs/gst/uridownloader/Makefile
2579 gst-libs/gst/wayland/Makefile
2580 gst-libs/gst/webrtc/Makefile
2581 gst-libs/gst/player/Makefile
2582 gst-libs/gst/audio/Makefile
2583 gst-libs/gst/opencv/Makefile
2585 sys/dshowdecwrapper/Makefile
2586 sys/androidmedia/Makefile
2587 sys/applemedia/Makefile
2589 sys/d3dvideosink/Makefile
2590 sys/decklink/Makefile
2591 sys/directsound/Makefile
2592 sys/dshowsrcwrapper/Makefile
2593 sys/dshowvideosink/Makefile
2596 sys/ipcpipeline/Makefile
2601 sys/opensles/Makefile
2603 sys/tinyalsa/Makefile
2604 sys/uvch264/Makefile
2608 sys/winscreencap/Makefile
2610 tests/check/Makefile
2611 tests/files/Makefile
2612 tests/examples/Makefile
2613 tests/examples/avsamplesink/Makefile
2614 tests/examples/camerabin2/Makefile
2615 tests/examples/codecparsers/Makefile
2616 tests/examples/directfb/Makefile
2617 tests/examples/audiomixmatrix/Makefile
2618 tests/examples/ipcpipeline/Makefile
2619 tests/examples/mpegts/Makefile
2620 tests/examples/mxf/Makefile
2621 tests/examples/opencv/Makefile
2622 tests/examples/uvch264/Makefile
2623 tests/examples/waylandsink/Makefile
2624 tests/examples/webrtc/Makefile
2625 tests/icles/Makefile
2626 ext/voamrwbenc/Makefile
2627 ext/voaacenc/Makefile
2628 ext/assrender/Makefile
2632 ext/chromaprint/Makefile
2633 ext/closedcaption/Makefile
2634 ext/colormanagement/Makefile
2638 ext/directfb/Makefile
2639 ext/wayland/Makefile
2645 ext/fluidsynth/Makefile
2652 ext/libde265/Makefile
2655 ext/modplug/Makefile
2656 ext/mpeg2enc/Makefile
2658 ext/musepack/Makefile
2663 ext/openexr/Makefile
2664 ext/openh264/Makefile
2665 ext/openjpeg/Makefile
2666 ext/openmpt/Makefile
2667 ext/openni2/Makefile
2670 ext/resindvd/Makefile
2674 ext/smoothstreaming/Makefile
2675 ext/sndfile/Makefile
2676 ext/soundtouch/Makefile
2677 ext/spandsp/Makefile
2680 ext/teletextdec/Makefile
2682 ext/wildmidi/Makefile
2684 ext/vulkan/xcb/Makefile
2685 ext/vulkan/wayland/Makefile
2691 ext/webrtcdsp/Makefile
2696 docs/plugins/Makefile
2698 docs/version.entities
2700 pkgconfig/gstreamer-plugins-bad.pc
2701 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2702 pkgconfig/gstreamer-codecparsers.pc
2703 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2704 pkgconfig/gstreamer-insertbin.pc
2705 pkgconfig/gstreamer-insertbin-uninstalled.pc
2706 pkgconfig/gstreamer-mpegts.pc
2707 pkgconfig/gstreamer-mpegts-uninstalled.pc
2708 pkgconfig/gstreamer-player.pc
2709 pkgconfig/gstreamer-player-uninstalled.pc
2710 pkgconfig/gstreamer-sctp.pc
2711 pkgconfig/gstreamer-sctp-uninstalled.pc
2712 pkgconfig/gstreamer-wayland.pc
2713 pkgconfig/gstreamer-wayland-uninstalled.pc
2714 pkgconfig/gstreamer-webrtc.pc
2715 pkgconfig/gstreamer-webrtc-uninstalled.pc
2716 pkgconfig/gstreamer-bad-audio.pc
2717 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2724 AG_GST_OUTPUT_PLUGINS