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.2],[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, 1602, 0, 1602)
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)
922 dnl check for tv profile
923 AC_ARG_ENABLE(tv, AC_HELP_STRING([--enable-tv], [enable tv profile]),
925 case "${enableval}" in
926 yes) TV_PROFILE=yes ;;
928 *) AC_MSG_ERROR(bad value ${enableval} for --enable-tv) ;;
932 AM_CONDITIONAL([TV_PROFILE], [test "x$TV_PROFILE" = "xyes"])
935 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
936 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
937 AC_ARG_WITH([cuda-prefix],
938 AS_HELP_STRING([--with-cuda-prefix],
939 [Use the provided prefix for detecting the cuda installation]),
940 [AS_IF([test "x$with_cuda_prefix" != "x"],
941 [CUDA_PREFIX="$with_cuda_prefix"])],
945 if test "x$CUDA_PREFIX" != "x"; then
946 dnl only override if not already set
947 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
948 dnl this is an educated guess, user can always override these
949 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
950 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
953 PKG_CHECK_MODULES([CUDA], [cuda-10.1 cudart-10.1],, [
954 PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
955 PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
956 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
957 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
958 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
959 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
960 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
961 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
962 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])])
967 save_CPPFLAGS="$CPPFLAGS"
968 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
969 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
970 AC_MSG_WARN([Could not find cuda.h]))
971 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
972 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
973 CPPFLAGS=$save_CPPFLAGS
975 dnl libcuda and libcudart libraries
977 LIBS="$CUDA_LIBS $save_LIBS"
979 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
980 AC_MSG_WARN([Could not find cudart library])])
982 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
983 AC_MSG_WARN([Could not find cuda library])])
988 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
989 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
990 save_CPPFLAGS="$CPPFLAGS"
991 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
992 CPPFLAGS=$save_CPPFLAGS
996 LIBS="$CUDA_LIBS $save_LIBS"
997 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
998 AC_MSG_WARN([Could not find library nvcuvid]))
1001 if test "x$HAVE_NVCUVID" = "xyes"; then
1009 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1010 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1011 dnl libnvnidia-encode library
1012 HAVE_NVENCODE_LIB=no
1013 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1015 LIBS="$NVENCODE_LIBS $saved_LIBS"
1016 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1017 AC_MSG_WARN([Could not find library nvidia-encode]))
1018 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1019 AC_SUBST(NVENCODE_LIBS)
1023 if test "x$HAVE_CUDA_H" = "xyes" \
1024 -a "x$HAVE_CUDART_H" = "xyes" \
1025 -a "x$HAVE_CUDA_LIB" = "xyes" \
1026 -a "x$HAVE_CUDART_LIB" = "xyes" \
1027 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1029 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1030 dnl cuda-gl interop header
1031 save_CPPFLAGS="$CPPFLAGS"
1032 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1033 AC_CHECK_HEADER([cuda_gl_interop.h], [
1034 USE_NVENC_GST_GL="yes"
1035 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1037 CPPFLAGS="$save_CPPFLAGS"
1043 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1045 dnl check for tinyalsa
1046 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1047 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1048 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1051 dnl check for intel mediasdk
1052 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1053 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1054 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1055 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1056 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1059 PKG_CHECK_MODULES(LIBMFX, libmfx,
1061 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1063 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1064 save_CPPFLAGS="$CPPFLAGS"
1065 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1066 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1067 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1068 MFX_INCDIR="`$PKG_CONFIG --variable=includedir libmfx`"
1069 MSDK_CFLAGS="-I$MFX_INCDIR/mfx"
1070 AC_SUBST(MSDK_CFLAGS)
1072 CPPFLAGS="$save_CPPFLAGS"
1074 AC_ARG_WITH([msdk-prefix],
1075 AS_HELP_STRING([--with-msdk-prefix],
1076 [Use the provided prefix for detecting the Intel MediaSDK]),
1077 [AS_IF([test "x$with_msdk_prefix" != "x"],
1078 [MSDK_PREFIX="$with_msdk_prefix"])],
1079 [AS_IF([test "x$MFX_HOME" != "x"],
1080 [MSDK_PREFIX="$MFX_HOME"],
1081 [MSDK_PREFIX="/opt/intel/media"])])
1082 MSDK_CFLAGS="-I$MSDK_PREFIX/include -I$MSDK_PREFIX/include/mfx"
1083 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -L$MSDK_PREFIX/lib/x64 -L$MSDK_PREFIX/lib64 -L$MSDK_PREFIX/lib -lmfx -ldl"
1084 AC_SUBST(MSDK_CFLAGS)
1087 save_CPPFLAGS="$CPPFLAGS"
1088 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1089 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1090 CPPFLAGS="$save_CPPFLAGS"
1093 LIBS="$MSDK_LIBS $LIBS"
1095 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1099 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1100 -a "x$HAVE_MFX_LIB" = "xyes"; then
1107 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1109 if test "x$HAVE_GUDEV" = "xyes" \
1110 -a "x$HAVE_MSDK" = "xyes" \
1111 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1117 dnl check the availability of vp9 apis
1119 save_CPPFLAGS="$CPPFLAGS"
1120 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1121 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1123 #include <mfxplugin.h>
1126 if test $HAVE_MFXVP9_H -eq 1; then
1128 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1130 ], [USE_MSDK_VP9_DEC=0])
1131 AM_CONDITIONAL(USE_MSDK_LIBVA,
1132 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1133 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1134 [test $USE_MSDK_VP9_DEC -eq 1])
1136 dnl *** ext plug-ins ***
1137 dnl keep this list sorted alphabetically !
1139 if test "x$BUILD_EXTERNAL" = "xyes"; then
1141 dnl *** assrender ***
1142 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1143 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1144 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1145 HAVE_ASSRENDER="yes" ], [
1149 AC_SUBST(ASSRENDER_CFLAGS)
1150 AC_SUBST(ASSRENDER_LIBS)
1153 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1154 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1155 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1158 dnl *** vo-amrwbenc ***
1159 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1160 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1161 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1164 dnl *** vo-aacenc ***
1165 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1166 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1167 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1171 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1172 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1173 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1176 AC_SUBST(BS2B_CFLAGS)
1181 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1182 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1185 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1186 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1187 AC_MSG_RESULT($HAVE_BZ2)
1189 if test "x$HAVE_BZ2" = "xyes"; then
1197 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1198 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1199 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1202 # AC_SUBST(CAIRO_CFLAGS)
1203 # AC_SUBST(CAIRO_LIBS)
1206 dnl *** chromaprint ***
1207 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1208 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1209 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1210 HAVE_CHROMAPRINT="no"
1212 AC_SUBST(CHROMAPRINT_CFLAGS)
1213 AC_SUBST(CHROMAPRINT_LIBS)
1217 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1218 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1219 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1221 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1222 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1224 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1225 [[#ifdef HAVE_SYS_TYPES_H
1226 # include <sys/types.h>
1228 #ifdef HAVE_NETINET_IN_H
1229 # include <netinet/in.h>
1232 AC_MSG_CHECKING([for socket support needed by curlsink])
1233 AC_MSG_RESULT($HAVE_CURL)
1237 AC_SUBST(CURL_CFLAGS)
1239 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1241 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1245 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1246 AC_SUBST(SSH2_CFLAGS)
1248 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1251 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1252 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1253 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1254 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1256 AC_SUBST(LIBXML2_CFLAGS)
1257 AC_SUBST(LIBXML2_LIBS)
1261 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1262 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1263 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1264 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1273 AC_SUBST(LIBDC1394_CFLAGS)
1274 AC_SUBST(LIBDC1394_LIBS)
1277 dnl *** decklink ***
1278 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1279 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1286 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1287 AC_CHECK_LIB(dl, dlopen,
1291 DECKLINK_LIBS="-lpthread -ldl"
1296 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1297 AC_CHECK_LIB(dl, dlopen,
1301 DECKLINK_LIBS="-lpthread -ldl"
1302 HAVE_DECKLINK_OSX=yes
1309 DECKLINK_LIBS="-lole32 -loleaut32"
1310 HAVE_DECKLINK_WIN=yes
1317 AC_SUBST(DECKLINK_CXXFLAGS)
1318 AC_SUBST(DECKLINK_LIBS)
1320 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1321 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1323 dnl **** DirectFB ****
1324 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1325 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1326 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1331 dnl **** Wayland ****
1332 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1333 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1334 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1335 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.15, [
1336 if test "x$wayland_scanner" != "x"; then
1338 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1340 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1348 dnl **** use webrtctest ****
1349 AC_ARG_ENABLE(webrtctest, AC_HELP_STRING([--enable-webrtctest], [using webrtctest]),
1351 case "${enableval}" in
1352 yes) ENABLE_WEBRTCTEST=yes ;;
1353 no) ENABLE_WEBRTCTEST=no ;;
1354 *) AC_MSG_ERROR(bad value ${enableval} for --enable-webrtctest) ;;
1357 [ENABLE_WEBRTCTEST=no])
1358 AM_CONDITIONAL(ENABLE_WEBRTCTEST, test "x$ENABLE_WEBRTCTEST" = "xyes")
1359 if test "x$ENABLE_WEBRTCTEST" = "xyes"; then
1360 PKG_CHECK_MODULES(JSON_GLIB, json-glib-1.0)
1361 AC_SUBST(JSON_GLIB_CFLAGS)
1362 AC_SUBST(JSON_GLIB_LIBS)
1364 PKG_CHECK_MODULES(SOUP, libsoup-2.4)
1365 AC_SUBST(SOUP_CFLAGS)
1370 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1371 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1372 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1373 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1375 AC_SUBST(WEBP_CFLAGS)
1380 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1381 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1383 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1384 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1385 if test $HAVE_DTS = "no"; then
1386 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1387 [ DTS_LIBS="-ldts_pic $LIBM"
1388 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1394 dnl *** resindvd ***
1395 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1396 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1397 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1402 dnl **** Free AAC Encoder (FAAC) ****
1403 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1404 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1405 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1406 FAAC_LIBS="-lfaac $LIBM")
1410 dnl **** Free AAC Decoder (FAAD2) ****
1411 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1412 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1413 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1414 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1415 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1417 #elif !defined(LATM)
1418 #error Not faad2 >= 2.7
1424 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1434 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1435 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1436 if test "x$HAVE_FBDEV" != "xyes"; then
1437 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1442 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1443 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1444 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1446 PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1447 AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1450 PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1451 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1456 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1457 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1458 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1459 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1461 AC_SUBST(FLITE_CFLAGS)
1462 AC_SUBST(FLITE_LIBS)
1466 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1467 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1468 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1469 if test $HAVE_GSM != "yes"; then
1470 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1471 if test $HAVE_GSM = "yes"; then
1472 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1478 dnl *** fluidSynth ***
1479 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1480 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1481 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1482 HAVE_FLUIDSYNTH="no"
1487 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1488 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1489 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1492 AC_SUBST(KATE_CFLAGS)
1494 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1497 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1503 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1504 AC_SUBST(TIGER_CFLAGS)
1505 AC_SUBST(TIGER_LIBS)
1506 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1509 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1510 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1511 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1512 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1516 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1517 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1518 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1520 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1521 if test $HAVE_LRDF = "yes"; then
1522 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1525 AC_SUBST(LRDF_CFLAGS)
1529 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1530 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1531 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1534 AC_SUBST(LCMS2_LIBS)
1538 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1539 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1540 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1542 HAVE_LILV_0_22="yes"
1543 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1545 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1547 AC_SUBST(LILV_CFLAGS)
1551 dnl *** libde265 ***
1552 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1553 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1554 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1555 AC_SUBST(LIBDE265_CFLAGS)
1556 AC_SUBST(LIBDE265_LIBS)
1560 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1561 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1562 dnl check with pkg-config first
1563 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1567 AC_SUBST(LIBMMS_LIBS)
1570 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1571 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1572 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1574 AC_SUBST(SRT_CFLAGS)
1578 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1579 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1581 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1582 if test x"$HAVE_SRTP" = x"yes"; then
1583 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1585 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1586 AG_GST_CHECK_LIBHEADER(SRTP, srtp, crypto_policy_set_aes_gcm_128_16_auth, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1590 AC_SUBST(SRTP_CFLAGS)
1594 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1595 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1596 PKG_CHECK_MODULES(DTLS, [ openssl1.1 >= 1.0.1 libcrypto1.1 ], [
1598 AC_SUBST(DTLS_CFLAGS)
1606 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1607 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1608 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1616 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1617 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1618 if test "x$HAVE_CXX" != "xyes"; then
1619 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1622 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1624 AC_SUBST(MODPLUG_CFLAGS)
1625 AC_SUBST(MODPLUG_LIBS)
1628 dnl *** mjpegtools version info ***
1629 dnl some may prefer older version (given quirks above)
1630 dnl hm, no version info seems available within mjpegtools headers
1631 dnl and API really moves along
1633 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1634 mjpegtools_api=10601
1636 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1637 mjpegtools_api=10800
1639 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1640 mjpegtools_api=20000
1642 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1643 dnl logging API changed in release candidates
1644 OLD_CFLAGS="$CFLAGS"
1646 CFLAGS="$MJPEG_CFLAGS"
1647 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1648 AC_CHECK_FUNC(mjpeg_loglev_t, [
1649 mjpegtools_api=10903
1651 mjpegtools_api=10900
1653 CFLAGS="$OLD_CFLAGS"
1661 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1662 [mjpegtools API evolution])
1664 dnl *** mpeg2enc ***
1665 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1666 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1668 dnl we require a c++ compiler for this one
1669 if [ test x$HAVE_CXX = xyes ]; then
1670 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1671 dnl since many distros include mjpegtools specifically without mplex
1672 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1673 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1674 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1676 dnl switch over to c++ to test things
1678 OLD_CPPFLAGS="$CPPFLAGS"
1680 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1681 CPPFLAGS="$CPPFLAGS_GOOD -I."
1683 mpeg2enc_headers_ok=no
1684 AC_CHECK_HEADER([mpeg2encoder.hh], [
1685 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1687 LIBS="$LIBS $MPEG2ENC_LIBS"
1688 AC_MSG_CHECKING([for valid mpeg2enc objects])
1689 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1690 #include <mpeg2encoder.hh>
1691 #include <mpeg2encoptions.hh>
1697 MPEG2EncOptions *options = new MPEG2EncOptions ();
1698 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1703 dnl so far so good, let's check more things:
1704 dnl mjpegtools-1.8.0 does not install the required
1705 dnl mpeg2syntaxcodes.h header by default, and a new release
1706 dnl is not in sight, so check for this oversight in case
1707 dnl distros or folks have fixed this themselves
1708 if test "$mjpegtools_api" -ge "10800"; then
1709 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1710 mpeg2enc_headers_ok=yes
1712 mpeg2enc_headers_ok=no
1715 mpeg2enc_headers_ok=yes
1717 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1720 CPPFLAGS="$CPPFLAGS_GOOD"
1721 AC_SUBST(MPEG2ENC_CFLAGS)
1722 AC_SUBST(MPEG2ENC_LIBS)
1729 CPPFLAGS="$OLD_CPPFLAGS"
1738 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1739 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1741 dnl we require a c++ compiler for this one
1742 if [ test x$HAVE_CXX = xyes ]; then
1743 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1744 dnl since many distros include mjpegtools specifically without mplex
1745 dnl and mpeg2enc, we check for mplex on its own, too.
1746 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1747 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1748 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1750 dnl switch over to c++ to test things
1752 OLD_CPPFLAGS="$CPPFLAGS"
1754 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1755 CPPFLAGS="$CPPFLAGS_GOOD -I."
1756 AC_CHECK_HEADER(interact.hpp, [
1757 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1759 LIBS="$LIBS $MPLEX_LIBS"
1760 OLD_LDFLAGS="$LDFLAGS"
1761 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1762 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1763 dnl don't want this here
1764 AC_MSG_CHECKING([for valid mplex objects])
1765 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1767 #include <interact.hpp>
1768 #include <outputstrm.hpp>
1769 #include <multiplexor.hpp>
1774 class TestOutputStream : public OutputStream {
1776 TestOutputStream () : OutputStream () { }
1777 void Write (uint8_t *a, unsigned int b) { }
1778 void NextSegment () { }
1779 uint64_t SegmentSize () { return 0; }
1781 int Open () { return 0; }
1783 MultiplexJob *job = new MultiplexJob ();
1784 vector<IBitStream *> inputs;
1785 job->SetupInputStreams (inputs);
1786 TestOutputStream *out = new TestOutputStream ();
1787 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1792 CPPFLAGS="$CPPFLAGS_GOOD"
1793 AC_SUBST(MPLEX_CFLAGS)
1794 AC_SUBST(MPLEX_LIBS)
1795 AC_SUBST(MPLEX_LDFLAGS)
1797 ],[AC_MSG_RESULT(no)],[])
1799 LDFLAGS="$OLD_LDFLAGS"
1801 CPPFLAGS="$OLD_CPPFLAGS"
1807 dnl *** musepack ***
1808 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1809 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1810 AC_CHECK_HEADER([mpc/mpcdec.h], [
1812 MUSEPACK_LIBS="-lmpcdec"
1813 AC_SUBST(MUSEPACK_LIBS)
1814 ], [HAVE_MUSEPACK="no"])
1818 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1819 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1820 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1823 AC_SUBST(NEON_CFLAGS)
1828 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1829 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1830 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1833 AC_SUBST(OFA_CFLAGS)
1838 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1839 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1840 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1843 AC_SUBST(OPENAL_CFLAGS)
1844 AC_SUBST(OPENAL_LIBS)
1848 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1849 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1850 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1851 dnl and don't want the build to break when a new opencv version comes out.
1852 dnl Need to adjust this upwards once we know that our code compiles fine with
1853 dnl a new version and the no-backward-compatibility define. (There doesn't
1854 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1856 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1859 OLD_CPPFLAGS=$CPPFLAGS
1860 CPPFLAGS=$OPENCV_CFLAGS
1861 something_not_found=no
1862 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1863 opencv2/calib3d.hpp \
1865 opencv2/imgproc.hpp \
1866 opencv2/objdetect.hpp \
1867 opencv2/opencv.hpp \
1869 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1871 CPPFLAGS=$OLD_CPPFLAGS
1874 if test $something_not_found = "yes"; then
1875 AC_MSG_RESULT([not all opencv2 headers were found])
1881 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [
1884 OLD_CPPFLAGS=$CPPFLAGS
1885 CPPFLAGS=$OPENCV_CFLAGS
1886 something_not_found=no
1887 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1888 opencv2/calib3d.hpp \
1890 opencv2/imgproc.hpp \
1891 opencv2/objdetect.hpp \
1892 opencv2/opencv.hpp \
1894 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1896 CPPFLAGS=$OLD_CPPFLAGS
1899 if test $something_not_found = "yes"; then
1900 AC_MSG_RESULT([not all opencv2 headers were found])
1909 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1910 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1911 AC_SUBST(OPENCV_PREFIX)
1912 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1913 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1914 AC_SUBST(OPENCV_PREFIX)
1915 AC_SUBST(OPENCV_CFLAGS)
1916 AC_SUBST(OPENCV_LIBS)
1917 dnl the OpenCV prefix is used at runtime for some object properties, and also
1918 dnl used here to detect which directory is the correct one. For the second
1919 dnl case, make sure the right sysroot is used, ensuring correct behavior
1920 dnl during cross compilation.
1921 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1922 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1924 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1929 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1930 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1931 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1932 if test "x$HAVE_OPENEXR" = "xyes"; then
1933 AG_GST_PKG_CHECK_MODULES(OPENEXR240, OpenEXR >= 2.4.0)
1934 if test "x$HAVE_OPENEXR240" = "xyes"; then
1937 OPENEXR_STDCFLAGS="-std=c++98"
1939 AC_SUBST([OPENEXR_STDCFLAGS])
1943 dnl *** openh264 ***
1944 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1945 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1946 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1949 dnl *** OpenJPEG ***
1950 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1951 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1953 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1954 if test x"$HAVE_OPENJPEG" != x"yes"; then
1957 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1958 HAVE_OPENJPEG="yes",
1959 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1961 if test x"$HAVE_OPENJPEG" = x"yes"; then
1962 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1965 AC_SUBST(OPENJPEG_CFLAGS)
1966 AC_SUBST(OPENJPEG_LIBS)
1970 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1971 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1972 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1973 AC_SUBST(OPENMPT_CFLAGS)
1974 AC_SUBST(OPENMPT_LIBS)
1978 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1979 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1980 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1981 AC_SUBST(OPENNI2_CFLAGS)
1982 AC_SUBST(OPENNI2_LIBS)
1986 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1987 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1988 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1989 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1994 AC_SUBST(OPUS_CFLAGS)
1999 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
2000 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
2001 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
2005 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2006 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2007 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2012 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2013 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2014 if test "x$HAVE_GST_GL" = "xyes"; then
2018 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
2019 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
2022 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2023 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2024 AC_CHECK_HEADER(vulkan/vulkan.h, [
2025 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2026 VULKAN_LIBS="-lvulkan"
2027 AC_SUBST(VULKAN_LIBS)
2028 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2031 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2038 dnl *** teletextdec ***
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2040 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2041 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2044 dnl *** wildmidi ***
2045 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2046 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2047 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2050 WILDMIDI_LIBS="-lWildMidi")
2053 if test "x$HAVE_WILDMIDI" = "xyes"; then
2054 AC_MSG_CHECKING([for wildmidi >= 4.0])
2055 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2056 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2057 #error "wildmidi too old"
2059 ]])], [ AC_MSG_RESULT(yes)
2062 WILDMIDI_LIBS=-lWildMidi
2063 ], [ AC_MSG_RESULT(no)
2067 AC_MSG_WARN([WildMidi library or development headers not found])
2069 AC_SUBST(WILDMIDI_CFLAGS)
2070 AC_SUBST(WILDMIDI_LIBS)
2073 dnl **** Smooth Streaming ****
2074 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2075 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2076 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2078 HAVE_SMOOTHSTREAMING="yes"],
2080 HAVE_SMOOTHSTREAMING="no"])
2081 AC_SUBST(LIBXML2_CFLAGS)
2082 AC_SUBST(LIBXML2_LIBS)
2086 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2087 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2088 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2089 AC_SUBST(SNDFILE_CFLAGS)
2090 AC_SUBST(SNDFILE_LIBS)
2093 dnl *** soundtouch ***
2094 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2095 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2096 dnl We only need -lBPM on soundtouch < 1.4
2097 dnl We check for libSoundTouch since Debian used it before upstream
2098 dnl added a pkgconfig file.
2099 HAVE_SOUNDTOUCH_1_4=yes
2100 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2101 [HAVE_SOUNDTOUCH=yes],
2102 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2103 [HAVE_SOUNDTOUCH=yes],
2104 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2105 [HAVE_SOUNDTOUCH=yes
2106 HAVE_SOUNDTOUCH_1_4=no
2107 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2108 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2109 [HAVE_SOUNDTOUCH=yes],
2110 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2111 [HAVE_SOUNDTOUCH=yes
2112 HAVE_SOUNDTOUCH_1_4=no
2113 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2114 HAVE_SOUNDTOUCH=no)])])])])
2115 AC_SUBST(SOUNDTOUCH_CFLAGS)
2116 AC_SUBST(SOUNDTOUCH_LIBS)
2117 if test "x$HAVE_CXX" != "xyes"; then
2118 USE_SOUNDTOUCH=false
2119 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2121 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2122 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2123 [Defined if the available libSoundTouch is >= 1.4])
2128 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2129 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2130 AC_CHECK_HEADER(gme/gme.h, [
2131 AC_CHECK_LIB(gme, gme_new_emu, [
2142 if test "x$HAVE_GME" = "xyes"; then
2143 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2144 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2150 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2151 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2152 AC_MSG_CHECKING([Checking for up to date dvb installation])
2153 AC_CHECK_HEADER(linux/dvb/version.h, [
2154 AC_MSG_CHECKING([for up-to-date dvb API])
2155 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2156 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2157 #error "Incompatible dvb API"
2159 ]])], [ AC_MSG_RESULT(yes)
2161 ], [ AC_MSG_RESULT(no)
2168 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2169 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2174 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2176 if test "$HAVE_VDPAU" = "no"; then
2177 saved_CPPFLAGS="$CPPFLAGS"
2178 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2180 if test -z "$HAVE_VDPAU_H"; then
2181 dnl Didn't find VDPAU header straight away.
2182 dnl Try /usr/include/nvidia. Need to clear caching vars first
2183 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2184 unset ac_cv_header_vdpau_vdpau_h
2185 unset ac_cv_header_vdpau_vdpau_x11_h
2186 VDPAU_CFLAGS="-I/usr/include/nvidia"
2187 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2188 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2189 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2192 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2194 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2195 dnl Found the headers - look for the lib
2196 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2198 LIBS="$VDPAU_LIBS $saved_LIBS"
2199 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2205 if test "$HAVE_VDPAU" = "yes"; then
2206 AC_MSG_NOTICE([Found up to date VDPAU installation])
2207 AC_SUBST(VDPAU_CFLAGS)
2208 AC_SUBST(VDPAU_LIBS)
2213 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2214 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2215 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2219 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2220 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2221 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2225 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2226 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2227 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2231 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2232 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2233 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2234 HAVE_SPANDSP="yes" ], [
2238 AC_SUBST(SPANDSP_CFLAGS)
2239 AC_SUBST(SPANDSP_LIBS)
2241 dnl *** hls-crypto ***
2242 AC_ARG_WITH([hls-crypto],
2243 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2244 which cryptographic library version to compile against for hls (default: auto)
2246 AS_CASE([$with_hls_crypto],
2250 [with_hls_crypto=auto]
2256 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2257 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2258 AS_CASE([$with_hls_crypto],
2260 PKG_CHECK_MODULES(NETTLE, nettle, [
2261 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2263 ],[AC_MSG_ERROR([Could not find nettle library])])
2266 AM_PATH_LIBGCRYPT([1.2.0], [
2267 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2269 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2272 PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
2273 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2275 ],[AC_MSG_ERROR([Could not find openssl library])])
2278 dnl Try to find a valid crypto library
2280 PKG_CHECK_MODULES(NETTLE, nettle, [
2281 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2283 AM_PATH_LIBGCRYPT([1.2.0], [
2284 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2286 PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
2287 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2295 dnl *** x265 (H.265/HEVC encoder) ***
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2297 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2298 AG_GST_PKG_CHECK_MODULES(X265, x265)
2301 dnl *** WebRTC Audio Processing ***
2302 dnl Note: We test for a specific version as there is no API stability
2303 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2304 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2306 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2308 # On Android, C++ headers comes with the STL implementation
2309 AS_CASE(["${host}"],
2312 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2313 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2314 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2316 AC_SUBST([WEBRTCDSP_CFLAGS])
2317 AC_SUBST([WEBRTCDSP_LIBS])
2320 old_CPPFLAGS=$CPPFLAGS
2321 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2322 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2323 CPPFLAGS=$old_CPPFLAGS
2328 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2329 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2330 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2331 HAVE_WEBRTC="yes" ], [
2337 translit(dnm, m, l) AM_CONDITIONAL(USE_WPE, true)
2338 AG_GST_CHECK_FEATURE(WPE, [WPE plug-in], wpe, [
2339 PKG_CHECK_MODULES(WPE, [ wpe-webkit-1.0 >= 2.24 wpebackend-fdo-1.0 egl xkbcommon ], [
2346 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2347 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2348 AC_CHECK_HEADER(usrsctp.h, [
2349 AC_CHECK_LIB(usrsctp, usrsctp_init, [
2350 USRSCTP_LIBS="-lusrsctp"
2351 AC_SUBST(USRSCTP_LIBS)
2363 dnl not building plugins with external dependencies,
2364 dnl but we still need to set the conditionals
2366 AM_CONDITIONAL(USE_ASSRENDER, false)
2367 AM_CONDITIONAL(USE_AOM, false)
2368 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2369 AM_CONDITIONAL(USE_VOAACENC, false)
2370 AM_CONDITIONAL(USE_BS2B, false)
2371 AM_CONDITIONAL(USE_BZ2, false)
2372 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2373 AM_CONDITIONAL(USE_CURL, false)
2374 AM_CONDITIONAL(USE_SSH2, false)
2375 AM_CONDITIONAL(USE_DASH, false)
2376 AM_CONDITIONAL(USE_DC1394, false)
2377 AM_CONDITIONAL(USE_DECKLINK, false)
2378 AM_CONDITIONAL(DECKLINK_OSX, false)
2379 AM_CONDITIONAL(DECKLINK_WIN, false)
2380 AM_CONDITIONAL(USE_DIRECTFB, false)
2381 AM_CONDITIONAL(USE_WAYLAND, false)
2382 AM_CONDITIONAL(USE_DTS, false)
2383 AM_CONDITIONAL(USE_EXIF, false)
2384 AM_CONDITIONAL(USE_RESINDVD, false)
2385 AM_CONDITIONAL(USE_FAAC, false)
2386 AM_CONDITIONAL(USE_FAAD, false)
2387 AM_CONDITIONAL(USE_FBDEV, false)
2388 AM_CONDITIONAL(USE_FDK_AAC, false)
2389 AM_CONDITIONAL(USE_FLITE, false)
2390 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2391 AM_CONDITIONAL(USE_GL, false)
2392 AM_CONDITIONAL(USE_GSM, false)
2393 AM_CONDITIONAL(USE_HLS, false)
2394 AM_CONDITIONAL(USE_IQA, false)
2395 AM_CONDITIONAL(USE_KATE, false)
2396 AM_CONDITIONAL(USE_KMS, false)
2397 AM_CONDITIONAL(USE_TIGER, false)
2398 AM_CONDITIONAL(USE_LADSPA, false)
2399 AM_CONDITIONAL(USE_LCMS2, false)
2400 AM_CONDITIONAL(USE_LV2, false)
2401 AM_CONDITIONAL(USE_LIBDE265, false)
2402 AM_CONDITIONAL(USE_LIBMMS, false)
2403 AM_CONDITIONAL(USE_MODPLUG, false)
2404 AM_CONDITIONAL(USE_MPEG2ENC, false)
2405 AM_CONDITIONAL(USE_MPLEX, false)
2406 AM_CONDITIONAL(USE_MUSEPACK, false)
2407 AM_CONDITIONAL(USE_NEON, false)
2408 AM_CONDITIONAL(USE_OFA, false)
2409 AM_CONDITIONAL(USE_OPENAL, false)
2410 AM_CONDITIONAL(USE_OPENCV, false)
2411 AM_CONDITIONAL(USE_OPENEXR, false)
2412 AM_CONDITIONAL(USE_OPENGL, false)
2413 AM_CONDITIONAL(USE_OPENJPEG, false)
2414 AM_CONDITIONAL(USE_OPENMPT, false)
2415 AM_CONDITIONAL(USE_OPENNI2, false)
2416 AM_CONDITIONAL(USE_OPUS, false)
2417 AM_CONDITIONAL(USE_PANGO, false)
2418 AM_CONDITIONAL(USE_WILDMIDI, false)
2419 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2420 AM_CONDITIONAL(USE_SNDFILE, false)
2421 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2422 AM_CONDITIONAL(USE_SPANDSP, false)
2423 AM_CONDITIONAL(USE_SRTP, false)
2424 AM_CONDITIONAL(USE_SRT, false)
2425 AM_CONDITIONAL(USE_GME, false)
2426 AM_CONDITIONAL(USE_DVB, false)
2427 AM_CONDITIONAL(USE_VDPAU, false)
2428 AM_CONDITIONAL(USE_SBC, false)
2429 AM_CONDITIONAL(USE_ZBAR, false)
2430 AM_CONDITIONAL(USE_RSVG, false)
2431 AM_CONDITIONAL(USE_RTMP, false)
2432 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2433 AM_CONDITIONAL(USE_UVCH264, false)
2434 AM_CONDITIONAL(USE_WEBP, false)
2435 AM_CONDITIONAL(USE_WEBRTC, false)
2436 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2437 AM_CONDITIONAL(USE_OPENH264, false)
2438 AM_CONDITIONAL(USE_X265, false)
2439 AM_CONDITIONAL(USE_DTLS, false)
2440 AM_CONDITIONAL(USE_VULKAN, false)
2441 AM_CONDITIONAL(USE_TTML, false)
2442 AM_CONDITIONAL(USE_SCTP, false)
2444 fi dnl of EXT plugins
2446 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2449 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2450 dnl GST_*: flags shared by built objects to link against GStreamer
2451 dnl GST_ALL_LDFLAGS: linker flags shared by all
2452 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2453 dnl GST_LT_LDFLAGS: library versioning of our libraries
2454 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2456 dnl GST_OPTION_CFLAGS
2457 if test "x$USE_DEBUG" = xyes; then
2460 AC_SUBST(PROFILE_CFLAGS)
2462 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2463 dnl Define _only_ during CVS (not pre-releases or releases)
2464 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2466 DEPRECATED_CFLAGS=""
2468 AC_SUBST(DEPRECATED_CFLAGS)
2470 VISIBILITY_CFLAGS=""
2471 AS_COMPILER_FLAG([-fvisibility=hidden], [
2472 VISIBILITY_CFLAGS="-fvisibility=hidden"
2473 AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2475 VISIBILITY_CFLAGS=""
2476 AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2478 AC_SUBST(VISIBILITY_CFLAGS)
2480 VISIBILITY_CXXFLAGS=""
2481 if test "x$HAVE_CXX" = "xyes"; then
2482 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2484 AC_SUBST(VISIBILITY_CXXFLAGS)
2486 dnl disable strict aliasing
2487 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2488 AC_SUBST(EXTRA_CFLAGS)
2490 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2491 dnl at make time with e.g. make ERROR_CFLAGS=""
2492 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2493 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2494 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2495 AC_SUBST(GST_OPTION_CFLAGS)
2496 AC_SUBST(GST_OPTION_CXXFLAGS)
2497 AC_SUBST(GST_OPTION_OBJCFLAGS)
2499 dnl FIXME: do we want to rename to GST_ALL_* ?
2500 dnl prefer internal headers to already installed ones
2501 dnl also add builddir include for enumtypes and marshal
2502 dnl add GST_OPTION_CFLAGS, but overridable
2503 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2504 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2505 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2506 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2507 AC_SUBST(GST_CFLAGS)
2508 AC_SUBST(GST_CXXFLAGS)
2509 AC_SUBST(GST_OBJCFLAGS)
2511 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2512 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2513 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2514 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2515 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2516 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2518 dnl LDFLAGS really should only contain flags, not libs - they get added before
2519 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2520 GST_ALL_LDFLAGS="-no-undefined"
2521 if test "x${enable_Bsymbolic}" = "xyes"; then
2522 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2524 AC_SUBST(GST_ALL_LDFLAGS)
2527 dnl linker flags shared by all libraries
2528 dnl LDFLAGS modifier defining exported symbols from built libraries
2529 dnl (export _gst_foo but not __gst_foo)
2531 AC_SUBST(GST_LIB_LDFLAGS)
2533 dnl this really should only contain flags, not libs - they get added before
2534 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2535 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2536 AC_SUBST(GST_PLUGIN_LDFLAGS)
2538 dnl *** output files ***
2540 $MKDIR_P tests/check/orc
2549 gst/accurip/Makefile
2550 gst/adpcmdec/Makefile
2551 gst/adpcmenc/Makefile
2553 gst/videoframe_audiolevel/Makefile
2555 gst/audiobuffersplit/Makefile
2556 gst/audiofxbad/Makefile
2557 gst/audiolatency/Makefile
2558 gst/audiomixmatrix/Makefile
2559 gst/audiovisualizers/Makefile
2560 gst/autoconvert/Makefile
2562 gst/camerabin2/Makefile
2563 gst/coloreffects/Makefile
2564 gst/debugutils/Makefile
2565 gst/dvbsuboverlay/Makefile
2567 gst/faceoverlay/Makefile
2568 gst/festival/Makefile
2569 gst/fieldanalysis/Makefile
2570 gst/freeverb/Makefile
2572 gst/gaudieffects/Makefile
2573 gst/geometrictransform/Makefile
2577 gst/interlace/Makefile
2578 gst/ivfparse/Makefile
2580 gst/jp2kdecimator/Makefile
2581 gst/jpegformat/Makefile
2584 gst/mpegdemux/Makefile
2585 gst/mpegtsdemux/Makefile
2586 gst/mpegtsmux/Makefile
2587 gst/mpegtsmux/tsmux/Makefile
2588 gst/mpegpsmux/Makefile
2592 gst/pcapparse/Makefile
2595 gst/rawparse/Makefile
2596 gst/removesilence/Makefile
2598 gst/segmentclip/Makefile
2603 gst/timecode/Makefile
2604 gst/videofilters/Makefile
2605 gst/videoparsers/Makefile
2606 gst/videosignal/Makefile
2611 gst-libs/gst/Makefile
2612 gst-libs/gst/adaptivedemux/Makefile
2613 gst-libs/gst/basecamerabinsrc/Makefile
2614 gst-libs/gst/insertbin/Makefile
2615 gst-libs/gst/interfaces/Makefile
2616 gst-libs/gst/isoff/Makefile
2617 gst-libs/gst/codecparsers/Makefile
2618 gst-libs/gst/mpegts/Makefile
2619 gst-libs/gst/sctp/Makefile
2620 gst-libs/gst/uridownloader/Makefile
2621 gst-libs/gst/wayland/Makefile
2622 gst-libs/gst/webrtc/Makefile
2623 gst-libs/gst/player/Makefile
2624 gst-libs/gst/audio/Makefile
2625 gst-libs/gst/opencv/Makefile
2627 sys/dshowdecwrapper/Makefile
2628 sys/androidmedia/Makefile
2629 sys/applemedia/Makefile
2631 sys/d3dvideosink/Makefile
2632 sys/decklink/Makefile
2633 sys/directsound/Makefile
2634 sys/dshowsrcwrapper/Makefile
2635 sys/dshowvideosink/Makefile
2638 sys/ipcpipeline/Makefile
2643 sys/opensles/Makefile
2645 sys/tinyalsa/Makefile
2646 sys/uvch264/Makefile
2650 sys/winscreencap/Makefile
2652 tests/check/Makefile
2653 tests/files/Makefile
2654 tests/examples/Makefile
2655 tests/examples/avsamplesink/Makefile
2656 tests/examples/camerabin2/Makefile
2657 tests/examples/codecparsers/Makefile
2658 tests/examples/directfb/Makefile
2659 tests/examples/audiomixmatrix/Makefile
2660 tests/examples/ipcpipeline/Makefile
2661 tests/examples/mpegts/Makefile
2662 tests/examples/mxf/Makefile
2663 tests/examples/opencv/Makefile
2664 tests/examples/uvch264/Makefile
2665 tests/examples/waylandsink/Makefile
2666 tests/examples/webrtc/Makefile
2667 tests/icles/Makefile
2668 ext/voamrwbenc/Makefile
2669 ext/voaacenc/Makefile
2670 ext/assrender/Makefile
2674 ext/chromaprint/Makefile
2675 ext/closedcaption/Makefile
2676 ext/colormanagement/Makefile
2680 ext/directfb/Makefile
2681 ext/wayland/Makefile
2687 ext/fluidsynth/Makefile
2694 ext/libde265/Makefile
2697 ext/modplug/Makefile
2698 ext/mpeg2enc/Makefile
2700 ext/musepack/Makefile
2705 ext/openexr/Makefile
2706 ext/openh264/Makefile
2707 ext/openjpeg/Makefile
2708 ext/openmpt/Makefile
2709 ext/openni2/Makefile
2712 ext/resindvd/Makefile
2716 ext/smoothstreaming/Makefile
2717 ext/sndfile/Makefile
2718 ext/soundtouch/Makefile
2719 ext/spandsp/Makefile
2722 ext/teletextdec/Makefile
2724 ext/wildmidi/Makefile
2726 ext/vulkan/xcb/Makefile
2727 ext/vulkan/wayland/Makefile
2733 ext/webrtcdsp/Makefile
2738 docs/plugins/Makefile
2740 docs/version.entities
2742 pkgconfig/gstreamer-plugins-bad.pc
2743 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2744 pkgconfig/gstreamer-codecparsers.pc
2745 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2746 pkgconfig/gstreamer-insertbin.pc
2747 pkgconfig/gstreamer-insertbin-uninstalled.pc
2748 pkgconfig/gstreamer-mpegts.pc
2749 pkgconfig/gstreamer-mpegts-uninstalled.pc
2750 pkgconfig/gstreamer-player.pc
2751 pkgconfig/gstreamer-player-uninstalled.pc
2752 pkgconfig/gstreamer-sctp.pc
2753 pkgconfig/gstreamer-sctp-uninstalled.pc
2754 pkgconfig/gstreamer-wayland.pc
2755 pkgconfig/gstreamer-wayland-uninstalled.pc
2756 pkgconfig/gstreamer-webrtc.pc
2757 pkgconfig/gstreamer-webrtc-uninstalled.pc
2758 pkgconfig/gstreamer-bad-audio.pc
2759 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2766 AG_GST_OUTPUT_PLUGINS