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.15.0.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, 1500, 0, 1500)
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(compositor)
445 AG_GST_CHECK_PLUGIN(audiovisualizers)
446 AG_GST_CHECK_PLUGIN(autoconvert)
447 AG_GST_CHECK_PLUGIN(bayer)
448 AG_GST_CHECK_PLUGIN(camerabin2)
449 AG_GST_CHECK_PLUGIN(coloreffects)
450 AG_GST_CHECK_PLUGIN(debugutils)
451 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
452 AG_GST_CHECK_PLUGIN(dvdspu)
453 AG_GST_CHECK_PLUGIN(faceoverlay)
454 AG_GST_CHECK_PLUGIN(festival)
455 AG_GST_CHECK_PLUGIN(fieldanalysis)
456 AG_GST_CHECK_PLUGIN(freeverb)
457 AG_GST_CHECK_PLUGIN(frei0r)
458 AG_GST_CHECK_PLUGIN(gaudieffects)
459 AG_GST_CHECK_PLUGIN(geometrictransform)
460 AG_GST_CHECK_PLUGIN(gdp)
461 AG_GST_CHECK_PLUGIN(id3tag)
462 AG_GST_CHECK_PLUGIN(inter)
463 AG_GST_CHECK_PLUGIN(interlace)
464 AG_GST_CHECK_PLUGIN(ivfparse)
465 AG_GST_CHECK_PLUGIN(ivtc)
466 AG_GST_CHECK_PLUGIN(jp2kdecimator)
467 AG_GST_CHECK_PLUGIN(jpegformat)
468 AG_GST_CHECK_PLUGIN(librfb)
469 AG_GST_CHECK_PLUGIN(midi)
470 AG_GST_CHECK_PLUGIN(mpegdemux)
471 AG_GST_CHECK_PLUGIN(mpegtsdemux)
472 AG_GST_CHECK_PLUGIN(mpegtsmux)
473 AG_GST_CHECK_PLUGIN(mpegpsmux)
474 AG_GST_CHECK_PLUGIN(mxf)
475 AG_GST_CHECK_PLUGIN(netsim)
476 AG_GST_CHECK_PLUGIN(onvif)
477 AG_GST_CHECK_PLUGIN(pcapparse)
478 AG_GST_CHECK_PLUGIN(pnm)
479 AG_GST_CHECK_PLUGIN(proxy)
480 AG_GST_CHECK_PLUGIN(rawparse)
481 AG_GST_CHECK_PLUGIN(removesilence)
482 AG_GST_CHECK_PLUGIN(sdp)
483 AG_GST_CHECK_PLUGIN(segmentclip)
484 AG_GST_CHECK_PLUGIN(siren)
485 AG_GST_CHECK_PLUGIN(smooth)
486 AG_GST_CHECK_PLUGIN(speed)
487 AG_GST_CHECK_PLUGIN(subenc)
488 AG_GST_CHECK_PLUGIN(stereo)
489 AG_GST_CHECK_PLUGIN(timecode)
490 AG_GST_CHECK_PLUGIN(videofilters)
491 AG_GST_CHECK_PLUGIN(videoparsers)
492 AG_GST_CHECK_PLUGIN(videosignal)
493 AG_GST_CHECK_PLUGIN(vmnc)
494 AG_GST_CHECK_PLUGIN(y4m)
495 AG_GST_CHECK_PLUGIN(yadif)
497 dnl *** plug-ins to exclude ***
499 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
500 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
501 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
503 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
505 LIBS="$LIBS -framework VideoToolbox"
506 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
507 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
513 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
514 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
515 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
518 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
519 if test "x$HAVE_IOS" = "xyes"; then
520 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
523 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
524 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
525 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
528 dnl disable gst plugins we might not be able to build on this
529 dnl platform: (ugly but minimally invasive)
530 dnl FIXME: maybe move to sys, or make work with winsock2
531 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
532 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
534 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
535 WINSOCK2_LIBS="-lws2_32"
536 AC_SUBST(WINSOCK2_LIBS)
540 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
541 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
543 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
544 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
545 VULKAN_CONFIG_DEFINES="
546 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
547 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
549 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
550 outfile=vkconfig.h-tmp
551 cat > $outfile <<\_______EOF
554 * This is a generated file. Please modify `configure.ac'
557 #ifndef __GST_VULKAN_CONFIG_H__
558 #define __GST_VULKAN_CONFIG_H__
566 cat >>$outfile <<_______EOF
567 $vulkan_config_defines
570 cat >>$outfile <<_______EOF
574 #endif /* __GST_VULKAN_CONFIG_H__ */
578 if cmp -s $outfile ext/vulkan/vkconfig.h; then
579 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
582 mv $outfile ext/vulkan/vkconfig.h
585 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
588 dnl *** sys plug-ins ***
591 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
592 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
593 HAVE_DIRECTSOUND="no"
594 save_CFLAGS="$CFLAGS"
595 save_LDFLAGS="$LDFLAGS"
597 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
598 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
599 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
600 AC_MSG_CHECKING(for DirectSound LDFLAGS)
601 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
605 #include <mmsystem.h>
607 DXGetErrorString9 (0);
608 DirectSoundCreate(NULL, NULL, NULL);
610 [HAVE_DIRECTSOUND="yes"],
611 [HAVE_DIRECTSOUND="no"])
612 AC_MSG_RESULT($HAVE_DIRECTSOUND)
614 LDFLAGS=$save_LDFLAGS
617 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
618 dnl this is much more than we want
619 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
620 AC_SUBST(DIRECTX_CFLAGS)
621 AC_SUBST(DIRECTX_LDFLAGS)
622 AC_SUBST(DIRECTSOUND_LIBS)
624 AC_SUBST(HAVE_DIRECTSOUND)
628 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
629 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
631 save_CFLAGS="$CFLAGS"
632 save_LDFLAGS="$LDFLAGS"
634 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
635 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
636 LIBS="$LIBS -lole32 -lwinmm -lksuser"
637 AC_MSG_CHECKING(for WASAPI LDFLAGS)
638 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
641 #include <mmsystem.h>
642 #include <mmdeviceapi.h>
648 hr = CoInitialize(NULL);
650 printf("CoInitialize failed: hr = 0x%08x", hr);
655 // result = do_everything(argc, argv);
663 AC_MSG_RESULT($HAVE_WASAPI)
665 LDFLAGS=$save_LDFLAGS
668 if test "x$HAVE_WASAPI" = "xyes"; then
669 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
670 AC_SUBST(WASAPI_LIBS)
672 AC_SUBST(HAVE_WASAPI)
676 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
677 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
679 save_CFLAGS="$CFLAGS"
680 save_LDFLAGS="$LDFLAGS"
682 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
683 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
684 LIBS="$LIBS -ld3d9 -lgdi32"
685 AC_MSG_CHECKING(for Direct3D LDFLAGS)
686 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
690 Direct3DCreate9(D3D_SDK_VERSION);
692 [HAVE_DIRECT3D="yes"],
693 [HAVE_DIRECT3D="no"])
694 AC_MSG_RESULT($HAVE_DIRECT3D)
696 LDFLAGS=$save_LDFLAGS
699 if test "x$HAVE_DIRECT3D" = "xyes"; then
700 DIRECT3D_LIBS="-ld3d9 -lgdi32"
701 AC_SUBST(DIRECT3D_LIBS)
703 AC_SUBST(HAVE_DIRECT3D)
707 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
708 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
709 HAVE_WINSCREENCAP="no"
710 save_CFLAGS="$CFLAGS"
711 save_LDFLAGS="$LDFLAGS"
713 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
714 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
715 LIBS="$LIBS -ld3d9 -lgdi32"
716 AC_MSG_CHECKING(for Direct3D LDFLAGS)
717 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
721 Direct3DCreate9(D3D_SDK_VERSION);
723 [HAVE_WINSCREENCAP="yes"],
724 [HAVE_WINSCREENCAP="no"])
725 AC_MSG_RESULT($HAVE_WINSCREENCAP)
727 LDFLAGS=$save_LDFLAGS
730 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
731 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
732 AC_SUBST(WINSCREENCAP_LIBS)
734 AC_SUBST(HAVE_WINSCREENCAP)
738 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
739 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
741 save_CFLAGS="$CFLAGS"
742 save_LDFLAGS="$LDFLAGS"
744 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
745 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
746 LIBS="$LIBS -lole32 -luuid -lstrmiids"
747 AC_MSG_CHECKING(for Winks LDFLAGS)
748 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
754 IGraphBuilder *pGraph = NULL;
755 HRESULT hr = CoInitialize(NULL);
756 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
757 &IID_IGraphBuilder, (void **)&pGraph);
764 AC_MSG_RESULT($HAVE_WINKS)
766 LDFLAGS=$save_LDFLAGS
769 if test "x$HAVE_WINKS" = "xyes"; then
770 dnl this is much more than we want
771 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
772 AC_SUBST(DIRECTX_CFLAGS)
773 AC_SUBST(DIRECTX_LDFLAGS)
779 dnl *** Android Media ***
780 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
781 HAVE_ANDROID_MEDIA="no"
782 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
785 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
788 HAVE_ANDROID_MEDIA="no"
793 dnl *** AppleMedia (OS X and iOS) ***
794 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
795 HAVE_APPLE_MEDIA="no"
796 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
797 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
798 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
799 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
800 if test "x$HAVE_IOS" = "xno"; then
801 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
805 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
810 HAVE_APPLE_MEDIA="no"
815 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
816 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
817 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
818 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
819 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
821 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
830 dnl *** OS/X AVCVideoServices ***
831 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
833 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
835 save_CPPFLAGS="$CPPFLAGS"
836 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
838 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
839 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
841 CPPFLAGS=$save_CPPFLAGS
844 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
853 dnl check for shm_open (for shm plugin)
854 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
855 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
856 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
858 *-darwin* | *-macos10*)
859 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
866 AC_CHECK_LIB([rt], [shm_open],
867 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
868 #include <sys/socket.h>
871 AC_SUBST(SHM_LIBS, "-lrt")
879 dnl check for unix sockets (ipcpipeline plugin)
880 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
881 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
882 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
883 AC_CHECK_FUNC(pipe, [
884 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
893 dnl check for Video CD
894 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
895 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
896 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
899 dnl check for OpenSL ES
900 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
901 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
902 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
906 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
907 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
908 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
909 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
910 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
913 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
914 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
917 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
918 test "x$HAVE_GUDEV" = "xyes" && \
919 test "x$HAVE_LIBUSB" = "xyes"; then
925 AC_SUBST(LIBUDEV_CFLAGS)
926 AC_SUBST(LIBUDEV_LIBS)
927 AC_SUBST(LIBUSB_CFLAGS)
928 AC_SUBST(LIBUSB_LIBS)
931 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
932 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
933 AC_ARG_WITH([cuda-prefix],
934 AS_HELP_STRING([--with-cuda-prefix],
935 [Use the provided prefix for detecting the cuda installation]),
936 [AS_IF([test "x$with_cuda_prefix" != "x"],
937 [CUDA_PREFIX="$with_cuda_prefix"])],
941 if test "x$CUDA_PREFIX" != "x"; then
942 dnl only override if not already set
943 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
944 dnl this is an educated guess, user can always override these
945 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
946 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
949 PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
950 PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
951 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
952 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
953 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
954 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
955 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
956 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
957 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])
962 save_CPPFLAGS="$CPPFLAGS"
963 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
964 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
965 AC_MSG_WARN([Could not find cuda.h]))
966 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
967 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
968 CPPFLAGS=$save_CPPFLAGS
970 dnl libcuda and libcudart libraries
972 LIBS="$CUDA_LIBS $save_LIBS"
974 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
975 AC_MSG_WARN([Could not find cudart library])])
977 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
978 AC_MSG_WARN([Could not find cuda library])])
983 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
984 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
985 save_CPPFLAGS="$CPPFLAGS"
986 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
987 CPPFLAGS=$save_CPPFLAGS
991 LIBS="$CUDA_LIBS $save_LIBS"
992 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
993 AC_MSG_WARN([Could not find library nvcuvid]))
996 if test "x$HAVE_NVCUVID" = "xyes"; then
1004 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1005 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1006 dnl libnvnidia-encode library
1007 HAVE_NVENCODE_LIB=no
1008 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1010 LIBS="$NVENCODE_LIBS $saved_LIBS"
1011 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1012 AC_MSG_WARN([Could not find library nvidia-encode]))
1013 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1014 AC_SUBST(NVENCODE_LIBS)
1018 if test "x$HAVE_CUDA_H" = "xyes" \
1019 -a "x$HAVE_CUDART_H" = "xyes" \
1020 -a "x$HAVE_CUDA_LIB" = "xyes" \
1021 -a "x$HAVE_CUDART_LIB" = "xyes" \
1022 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1024 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1025 dnl cuda-gl interop header
1026 save_CPPFLAGS="$CPPFLAGS"
1027 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1028 AC_CHECK_HEADER([cuda_gl_interop.h], [
1029 USE_NVENC_GST_GL="yes"
1030 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1032 CPPFLAGS="$save_CPPFLAGS"
1038 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1040 dnl check for tinyalsa
1041 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1042 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1043 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1046 dnl check for intel mediasdk
1047 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1048 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1049 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1050 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1051 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1054 PKG_CHECK_MODULES(LIBMFX, libmfx,
1056 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1058 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1059 save_CPPFLAGS="$CPPFLAGS"
1060 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1061 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1062 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1063 AC_DEFINE(HAVE_MFX_MFXDEFS_H, 1, [Define if mfx/mfxdefs.h available])
1065 CPPFLAGS="$save_CPPFLAGS"
1067 AC_ARG_WITH([msdk-prefix],
1068 AS_HELP_STRING([--with-msdk-prefix],
1069 [Use the provided prefix for detecting the Intel MediaSDK]),
1070 [AS_IF([test "x$with_msdk_prefix" != "x"],
1071 [MSDK_PREFIX="$with_msdk_prefix"])],
1072 [AS_IF([test "x$MFX_HOME" != "x"],
1073 [MSDK_PREFIX="$MFX_HOME"],
1074 [MSDK_PREFIX="/opt/intel/media"])])
1075 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1076 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1077 AC_SUBST(MSDK_CFLAGS)
1080 save_CPPFLAGS="$CPPFLAGS"
1081 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1082 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1083 CPPFLAGS="$save_CPPFLAGS"
1086 LIBS="$MSDK_LIBS $LIBS"
1088 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1092 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1093 -a "x$HAVE_MFX_LIB" = "xyes"; then
1100 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1102 if test "x$HAVE_GUDEV" = "xyes" \
1103 -a "x$HAVE_MSDK" = "xyes" \
1104 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1110 dnl check the availability of vp9 apis
1112 save_CPPFLAGS="$CPPFLAGS"
1113 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1114 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1116 #include <mfxplugin.h>
1118 dnl check the availability of vp9 apis in PREFIX/include/mfx
1119 AC_CHECK_HEADER(mfx/mfxvp9.h, [HAVE_MFX_MFXVP9_H=1], [HAVE_MFX_MFXVP9_H=0],
1121 #include <mfx/mfxplugin.h>
1123 if test $HAVE_MFX_MFXVP9_H -eq 1; then
1124 AC_DEFINE(HAVE_MFX_MFXVP9_H, 1, [Define if mfx/mfxdefs.h available])
1127 if test $HAVE_MFXVP9_H -eq 1 \
1128 -o $HAVE_MFX_MFXVP9_H -eq 1; then
1130 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1132 ], [USE_MSDK_VP9_DEC=0])
1133 AM_CONDITIONAL(USE_MSDK_LIBVA,
1134 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1135 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1136 [test $USE_MSDK_VP9_DEC -eq 1])
1138 dnl *** ext plug-ins ***
1139 dnl keep this list sorted alphabetically !
1141 if test "x$BUILD_EXTERNAL" = "xyes"; then
1143 dnl *** assrender ***
1144 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1145 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1146 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1147 HAVE_ASSRENDER="yes" ], [
1151 AC_SUBST(ASSRENDER_CFLAGS)
1152 AC_SUBST(ASSRENDER_LIBS)
1155 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1156 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1157 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1160 dnl *** vo-amrwbenc ***
1161 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1162 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1163 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1166 dnl *** vo-aacenc ***
1167 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1168 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1169 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1173 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1174 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1175 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1178 AC_SUBST(BS2B_CFLAGS)
1183 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1184 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1187 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1188 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1189 AC_MSG_RESULT($HAVE_BZ2)
1191 if test "x$HAVE_BZ2" = "xyes"; then
1199 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1200 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1201 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1204 # AC_SUBST(CAIRO_CFLAGS)
1205 # AC_SUBST(CAIRO_LIBS)
1208 dnl *** chromaprint ***
1209 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1210 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1211 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1212 HAVE_CHROMAPRINT="no"
1214 AC_SUBST(CHROMAPRINT_CFLAGS)
1215 AC_SUBST(CHROMAPRINT_LIBS)
1219 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1220 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1221 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1223 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1224 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1226 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1227 [[#ifdef HAVE_SYS_TYPES_H
1228 # include <sys/types.h>
1230 #ifdef HAVE_NETINET_IN_H
1231 # include <netinet/in.h>
1234 AC_MSG_CHECKING([for socket support needed by curlsink])
1235 AC_MSG_RESULT($HAVE_CURL)
1239 AC_SUBST(CURL_CFLAGS)
1241 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1243 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1247 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1248 AC_SUBST(SSH2_CFLAGS)
1250 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1253 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1254 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1255 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1256 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1258 AC_SUBST(LIBXML2_CFLAGS)
1259 AC_SUBST(LIBXML2_LIBS)
1263 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1264 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1265 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1266 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1275 AC_SUBST(LIBDC1394_CFLAGS)
1276 AC_SUBST(LIBDC1394_LIBS)
1279 dnl *** decklink ***
1280 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1281 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1288 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1289 AC_CHECK_LIB(dl, dlopen,
1293 DECKLINK_LIBS="-lpthread -ldl"
1298 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1299 AC_CHECK_LIB(dl, dlopen,
1303 DECKLINK_LIBS="-lpthread -ldl"
1304 HAVE_DECKLINK_OSX=yes
1311 DECKLINK_LIBS="-lole32 -loleaut32"
1312 HAVE_DECKLINK_WIN=yes
1319 AC_SUBST(DECKLINK_CXXFLAGS)
1320 AC_SUBST(DECKLINK_LIBS)
1322 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1323 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1325 dnl **** DirectFB ****
1326 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1327 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1328 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1333 dnl **** Wayland ****
1334 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1335 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1336 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1337 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
1338 if test "x$wayland_scanner" != "x"; then
1340 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1342 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1351 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1352 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1353 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1354 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1356 AC_SUBST(WEBP_CFLAGS)
1361 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1362 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1364 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1365 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1366 if test $HAVE_DTS = "no"; then
1367 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1368 [ DTS_LIBS="-ldts_pic $LIBM"
1369 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1375 dnl *** resindvd ***
1376 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1377 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1378 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1383 dnl **** Free AAC Encoder (FAAC) ****
1384 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1385 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1386 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1387 FAAC_LIBS="-lfaac $LIBM")
1391 dnl **** Free AAC Decoder (FAAD2) ****
1392 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1393 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1394 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1395 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1396 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1398 #elif !defined(LATM)
1399 #error Not faad2 >= 2.7
1405 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1415 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1416 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1417 if test "x$HAVE_FBDEV" != "xyes"; then
1418 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1423 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1424 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1425 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1427 PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1428 AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1431 PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1432 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1437 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1438 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1439 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1440 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1442 AC_SUBST(FLITE_CFLAGS)
1443 AC_SUBST(FLITE_LIBS)
1447 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1448 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1449 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1450 if test $HAVE_GSM != "yes"; then
1451 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1452 if test $HAVE_GSM = "yes"; then
1453 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1459 dnl *** fluidSynth ***
1460 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1461 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1462 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1463 HAVE_FLUIDSYNTH="no"
1468 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1469 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1470 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1473 AC_SUBST(KATE_CFLAGS)
1475 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1478 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1484 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1485 AC_SUBST(TIGER_CFLAGS)
1486 AC_SUBST(TIGER_LIBS)
1487 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1490 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1491 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1492 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1493 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1497 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1498 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1499 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1501 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1502 if test $HAVE_LRDF = "yes"; then
1503 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1506 AC_SUBST(LRDF_CFLAGS)
1510 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1511 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1512 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1515 AC_SUBST(LCMS2_LIBS)
1519 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1520 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1521 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1523 HAVE_LILV_0_22="yes"
1524 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1526 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1528 AC_SUBST(LILV_CFLAGS)
1532 dnl *** libde265 ***
1533 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1534 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1535 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1536 AC_SUBST(LIBDE265_CFLAGS)
1537 AC_SUBST(LIBDE265_LIBS)
1541 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1542 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1543 dnl check with pkg-config first
1544 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1548 AC_SUBST(LIBMMS_LIBS)
1551 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1552 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1553 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1555 AC_SUBST(SRT_CFLAGS)
1559 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1560 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1562 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1563 if test x"$HAVE_SRTP" = x"yes"; then
1564 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1566 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1567 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1571 AC_SUBST(SRTP_CFLAGS)
1575 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1576 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1577 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1579 AC_SUBST(DTLS_CFLAGS)
1587 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1588 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1589 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1597 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1598 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1599 if test "x$HAVE_CXX" != "xyes"; then
1600 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1603 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1605 AC_SUBST(MODPLUG_CFLAGS)
1606 AC_SUBST(MODPLUG_LIBS)
1609 dnl *** mjpegtools version info ***
1610 dnl some may prefer older version (given quirks above)
1611 dnl hm, no version info seems available within mjpegtools headers
1612 dnl and API really moves along
1614 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1615 mjpegtools_api=10601
1617 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1618 mjpegtools_api=10800
1620 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1621 mjpegtools_api=20000
1623 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1624 dnl logging API changed in release candidates
1625 OLD_CFLAGS="$CFLAGS"
1627 CFLAGS="$MJPEG_CFLAGS"
1628 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1629 AC_CHECK_FUNC(mjpeg_loglev_t, [
1630 mjpegtools_api=10903
1632 mjpegtools_api=10900
1634 CFLAGS="$OLD_CFLAGS"
1642 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1643 [mjpegtools API evolution])
1645 dnl *** mpeg2enc ***
1646 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1647 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1649 dnl we require a c++ compiler for this one
1650 if [ test x$HAVE_CXX = xyes ]; then
1651 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1652 dnl since many distros include mjpegtools specifically without mplex
1653 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1654 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1655 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1657 dnl switch over to c++ to test things
1659 OLD_CPPFLAGS="$CPPFLAGS"
1661 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1662 CPPFLAGS="$CPPFLAGS_GOOD -I."
1664 mpeg2enc_headers_ok=no
1665 AC_CHECK_HEADER([mpeg2encoder.hh], [
1666 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1668 LIBS="$LIBS $MPEG2ENC_LIBS"
1669 AC_MSG_CHECKING([for valid mpeg2enc objects])
1670 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1671 #include <mpeg2encoder.hh>
1672 #include <mpeg2encoptions.hh>
1678 MPEG2EncOptions *options = new MPEG2EncOptions ();
1679 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1684 dnl so far so good, let's check more things:
1685 dnl mjpegtools-1.8.0 does not install the required
1686 dnl mpeg2syntaxcodes.h header by default, and a new release
1687 dnl is not in sight, so check for this oversight in case
1688 dnl distros or folks have fixed this themselves
1689 if test "$mjpegtools_api" -ge "10800"; then
1690 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1691 mpeg2enc_headers_ok=yes
1693 mpeg2enc_headers_ok=no
1696 mpeg2enc_headers_ok=yes
1698 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1701 CPPFLAGS="$CPPFLAGS_GOOD"
1702 AC_SUBST(MPEG2ENC_CFLAGS)
1703 AC_SUBST(MPEG2ENC_LIBS)
1710 CPPFLAGS="$OLD_CPPFLAGS"
1719 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1720 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1722 dnl we require a c++ compiler for this one
1723 if [ test x$HAVE_CXX = xyes ]; then
1724 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1725 dnl since many distros include mjpegtools specifically without mplex
1726 dnl and mpeg2enc, we check for mplex on its own, too.
1727 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1728 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1729 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1731 dnl switch over to c++ to test things
1733 OLD_CPPFLAGS="$CPPFLAGS"
1735 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1736 CPPFLAGS="$CPPFLAGS_GOOD -I."
1737 AC_CHECK_HEADER(interact.hpp, [
1738 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1740 LIBS="$LIBS $MPLEX_LIBS"
1741 OLD_LDFLAGS="$LDFLAGS"
1742 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1743 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1744 dnl don't want this here
1745 AC_MSG_CHECKING([for valid mplex objects])
1746 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1748 #include <interact.hpp>
1749 #include <outputstrm.hpp>
1750 #include <multiplexor.hpp>
1755 class TestOutputStream : public OutputStream {
1757 TestOutputStream () : OutputStream () { }
1758 void Write (uint8_t *a, unsigned int b) { }
1759 void NextSegment () { }
1760 uint64_t SegmentSize () { }
1764 MultiplexJob *job = new MultiplexJob ();
1765 vector<IBitStream *> inputs;
1766 job->SetupInputStreams (inputs);
1767 TestOutputStream *out = new TestOutputStream ();
1768 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1773 CPPFLAGS="$CPPFLAGS_GOOD"
1774 AC_SUBST(MPLEX_CFLAGS)
1775 AC_SUBST(MPLEX_LIBS)
1776 AC_SUBST(MPLEX_LDFLAGS)
1778 ],[AC_MSG_RESULT(no)],[])
1780 LDFLAGS="$OLD_LDFLAGS"
1782 CPPFLAGS="$OLD_CPPFLAGS"
1788 dnl *** musepack ***
1789 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1790 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1791 AC_CHECK_HEADER([mpc/mpcdec.h], [
1793 MUSEPACK_LIBS="-lmpcdec"
1794 AC_SUBST(MUSEPACK_LIBS)
1795 ], [HAVE_MUSEPACK="no"])
1799 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1800 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1801 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1804 AC_SUBST(NEON_CFLAGS)
1809 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1810 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1811 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1814 AC_SUBST(OFA_CFLAGS)
1819 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1820 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1821 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1824 AC_SUBST(OPENAL_CFLAGS)
1825 AC_SUBST(OPENAL_LIBS)
1829 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1830 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1831 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1832 dnl and don't want the build to break when a new opencv version comes out.
1833 dnl Need to adjust this upwards once we know that our code compiles fine with
1834 dnl a new version and the no-backward-compatibility define. (There doesn't
1835 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1837 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1840 OLD_CPPFLAGS=$CPPFLAGS
1841 CPPFLAGS=$OPENCV_CFLAGS
1842 something_not_found=no
1843 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1844 opencv2/calib3d.hpp \
1846 opencv2/imgcodecs/imgcodecs_c.h \
1847 opencv2/imgproc.hpp \
1848 opencv2/objdetect.hpp \
1849 opencv2/opencv.hpp \
1851 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1853 CPPFLAGS=$OLD_CPPFLAGS
1856 if test $something_not_found = "yes"; then
1857 AC_MSG_RESULT([not all opencv2 headers were found])
1863 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.1.0] , [
1866 OLD_CPPFLAGS=$CPPFLAGS
1867 CPPFLAGS=$OPENCV_CFLAGS
1868 something_not_found=no
1869 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1870 opencv2/calib3d.hpp \
1872 opencv2/imgcodecs/legacy/constants_c.h \
1873 opencv2/imgproc/imgproc_c.h \
1874 opencv2/core/types_c.h \
1875 opencv2/core/core_c.h \
1876 opencv2/imgproc.hpp \
1877 opencv2/objdetect.hpp \
1878 opencv2/opencv.hpp \
1880 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1882 CPPFLAGS=$OLD_CPPFLAGS
1885 if test $something_not_found = "yes"; then
1886 AC_MSG_RESULT([not all opencv2 headers were found])
1895 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1896 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1897 AC_SUBST(OPENCV_PREFIX)
1898 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1899 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1900 AC_SUBST(OPENCV_PREFIX)
1901 AC_SUBST(OPENCV_CFLAGS)
1902 AC_SUBST(OPENCV_LIBS)
1903 dnl the OpenCV prefix is used at runtime for some object properties, and also
1904 dnl used here to detect which directory is the correct one. For the second
1905 dnl case, make sure the right sysroot is used, ensuring correct behavior
1906 dnl during cross compilation.
1907 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1908 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1910 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1915 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1916 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1917 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1920 dnl *** openh264 ***
1921 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1922 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1923 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1926 dnl *** OpenJPEG ***
1927 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1928 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1930 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1931 if test x"$HAVE_OPENJPEG" != x"yes"; then
1934 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1935 HAVE_OPENJPEG="yes",
1936 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1938 if test x"$HAVE_OPENJPEG" = x"yes"; then
1939 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1942 AC_SUBST(OPENJPEG_CFLAGS)
1943 AC_SUBST(OPENJPEG_LIBS)
1947 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1948 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1949 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1950 AC_SUBST(OPENMPT_CFLAGS)
1951 AC_SUBST(OPENMPT_LIBS)
1955 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1956 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1957 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1958 AC_SUBST(OPENNI2_CFLAGS)
1959 AC_SUBST(OPENNI2_LIBS)
1963 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1964 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1965 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1966 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1971 AC_SUBST(OPUS_CFLAGS)
1976 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1977 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
1978 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
1982 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1983 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1984 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1989 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1990 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1991 if test "x$HAVE_GST_GL" = "xyes"; then
1995 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1996 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1999 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2000 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2001 AC_CHECK_HEADER(vulkan/vulkan.h, [
2002 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2003 VULKAN_LIBS="-lvulkan"
2004 AC_SUBST(VULKAN_LIBS)
2005 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2008 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2015 dnl *** teletextdec ***
2016 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2017 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2018 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2021 dnl *** wildmidi ***
2022 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2023 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2024 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2027 WILDMIDI_LIBS="-lWildMidi")
2030 if test "x$HAVE_WILDMIDI" = "xyes"; then
2031 AC_MSG_CHECKING([for wildmidi >= 4.0])
2032 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2033 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2034 #error "wildmidi too old"
2036 ]])], [ AC_MSG_RESULT(yes)
2039 WILDMIDI_LIBS=-lWildMidi
2040 ], [ AC_MSG_RESULT(no)
2044 AC_MSG_WARN([WildMidi library or development headers not found])
2046 AC_SUBST(WILDMIDI_CFLAGS)
2047 AC_SUBST(WILDMIDI_LIBS)
2050 dnl **** Smooth Streaming ****
2051 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2052 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2053 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2055 HAVE_SMOOTHSTREAMING="yes"],
2057 HAVE_SMOOTHSTREAMING="no"])
2058 AC_SUBST(LIBXML2_CFLAGS)
2059 AC_SUBST(LIBXML2_LIBS)
2063 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2064 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2065 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2066 AC_SUBST(SNDFILE_CFLAGS)
2067 AC_SUBST(SNDFILE_LIBS)
2070 dnl *** soundtouch ***
2071 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2072 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2073 dnl We only need -lBPM on soundtouch < 1.4
2074 dnl We check for libSoundTouch since Debian used it before upstream
2075 dnl added a pkgconfig file.
2076 HAVE_SOUNDTOUCH_1_4=yes
2077 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2078 [HAVE_SOUNDTOUCH=yes],
2079 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2080 [HAVE_SOUNDTOUCH=yes],
2081 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2082 [HAVE_SOUNDTOUCH=yes
2083 HAVE_SOUNDTOUCH_1_4=no
2084 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2085 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2086 [HAVE_SOUNDTOUCH=yes],
2087 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2088 [HAVE_SOUNDTOUCH=yes
2089 HAVE_SOUNDTOUCH_1_4=no
2090 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2091 HAVE_SOUNDTOUCH=no)])])])])
2092 AC_SUBST(SOUNDTOUCH_CFLAGS)
2093 AC_SUBST(SOUNDTOUCH_LIBS)
2094 if test "x$HAVE_CXX" != "xyes"; then
2095 USE_SOUNDTOUCH=false
2096 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2098 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2099 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2100 [Defined if the available libSoundTouch is >= 1.4])
2105 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2106 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2107 AC_CHECK_HEADER(gme/gme.h, [
2108 AC_CHECK_LIB(gme, gme_new_emu, [
2119 if test "x$HAVE_GME" = "xyes"; then
2120 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2121 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2127 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2128 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2129 AC_MSG_CHECKING([Checking for up to date dvb installation])
2130 AC_CHECK_HEADER(linux/dvb/version.h, [
2131 AC_MSG_CHECKING([for up-to-date dvb API])
2132 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2133 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2134 #error "Incompatible dvb API"
2136 ]])], [ AC_MSG_RESULT(yes)
2138 ], [ AC_MSG_RESULT(no)
2145 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2146 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2151 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2153 if test "$HAVE_VDPAU" = "no"; then
2154 saved_CPPFLAGS="$CPPFLAGS"
2155 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2157 if test -z "$HAVE_VDPAU_H"; then
2158 dnl Didn't find VDPAU header straight away.
2159 dnl Try /usr/include/nvidia. Need to clear caching vars first
2160 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2161 unset ac_cv_header_vdpau_vdpau_h
2162 unset ac_cv_header_vdpau_vdpau_x11_h
2163 VDPAU_CFLAGS="-I/usr/include/nvidia"
2164 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2165 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2166 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2169 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2171 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2172 dnl Found the headers - look for the lib
2173 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2175 LIBS="$VDPAU_LIBS $saved_LIBS"
2176 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2182 if test "$HAVE_VDPAU" = "yes"; then
2183 AC_MSG_NOTICE([Found up to date VDPAU installation])
2184 AC_SUBST(VDPAU_CFLAGS)
2185 AC_SUBST(VDPAU_LIBS)
2190 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2191 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2192 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2196 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2197 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2198 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2202 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2203 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2204 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2208 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2209 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2210 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2211 HAVE_SPANDSP="yes" ], [
2215 AC_SUBST(SPANDSP_CFLAGS)
2216 AC_SUBST(SPANDSP_LIBS)
2218 dnl *** hls-crypto ***
2219 AC_ARG_WITH([hls-crypto],
2220 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2221 which cryptographic library version to compile against for hls (default: auto)
2223 AS_CASE([$with_hls_crypto],
2227 [with_hls_crypto=auto]
2233 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2234 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2235 AS_CASE([$with_hls_crypto],
2237 PKG_CHECK_MODULES(NETTLE, nettle, [
2238 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2240 ],[AC_MSG_ERROR([Could not find nettle library])])
2243 AM_PATH_LIBGCRYPT([1.2.0], [
2244 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2246 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2249 PKG_CHECK_MODULES(OPENSSL, openssl, [
2250 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2252 ],[AC_MSG_ERROR([Could not find openssl library])])
2255 dnl Try to find a valid crypto library
2256 PKG_CHECK_MODULES(NETTLE, nettle, [
2257 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2260 AM_PATH_LIBGCRYPT([1.2.0], [
2261 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2264 PKG_CHECK_MODULES(OPENSSL, openssl, [
2265 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2276 dnl *** x265 (H.265/HEVC encoder) ***
2277 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2278 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2279 AG_GST_PKG_CHECK_MODULES(X265, x265)
2282 dnl *** WebRTC Audio Processing ***
2283 dnl Note: We test for a specific version as there is no API stability
2284 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2285 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2287 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2289 # On Android, C++ headers comes with the STL implementation
2290 AS_CASE(["${host}"],
2293 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2294 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2295 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2297 AC_SUBST([WEBRTCDSP_CFLAGS])
2298 AC_SUBST([WEBRTCDSP_LIBS])
2301 old_CPPFLAGS=$CPPFLAGS
2302 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2303 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2304 CPPFLAGS=$old_CPPFLAGS
2309 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2310 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2311 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2312 HAVE_WEBRTC="yes" ], [
2318 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2319 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2320 AC_CHECK_HEADER(usrsctp.h, [
2321 AC_CHECK_LIB(usrsctp, usrsctp_init, [
2322 USRSCTP_LIBS="-lusrsctp"
2323 AC_SUBST(USRSCTP_LIBS)
2335 dnl not building plugins with external dependencies,
2336 dnl but we still need to set the conditionals
2338 AM_CONDITIONAL(USE_ASSRENDER, false)
2339 AM_CONDITIONAL(USE_AOM, false)
2340 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2341 AM_CONDITIONAL(USE_VOAACENC, false)
2342 AM_CONDITIONAL(USE_BS2B, false)
2343 AM_CONDITIONAL(USE_BZ2, false)
2344 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2345 AM_CONDITIONAL(USE_CURL, false)
2346 AM_CONDITIONAL(USE_SSH2, false)
2347 AM_CONDITIONAL(USE_DASH, false)
2348 AM_CONDITIONAL(USE_DC1394, false)
2349 AM_CONDITIONAL(USE_DECKLINK, false)
2350 AM_CONDITIONAL(DECKLINK_OSX, false)
2351 AM_CONDITIONAL(DECKLINK_WIN, false)
2352 AM_CONDITIONAL(USE_DIRECTFB, false)
2353 AM_CONDITIONAL(USE_WAYLAND, false)
2354 AM_CONDITIONAL(USE_DTS, false)
2355 AM_CONDITIONAL(USE_EXIF, false)
2356 AM_CONDITIONAL(USE_RESINDVD, false)
2357 AM_CONDITIONAL(USE_FAAC, false)
2358 AM_CONDITIONAL(USE_FAAD, false)
2359 AM_CONDITIONAL(USE_FBDEV, false)
2360 AM_CONDITIONAL(USE_FDK_AAC, false)
2361 AM_CONDITIONAL(USE_FLITE, false)
2362 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2363 AM_CONDITIONAL(USE_GL, false)
2364 AM_CONDITIONAL(USE_GSM, false)
2365 AM_CONDITIONAL(USE_HLS, false)
2366 AM_CONDITIONAL(USE_IQA, false)
2367 AM_CONDITIONAL(USE_KATE, false)
2368 AM_CONDITIONAL(USE_KMS, false)
2369 AM_CONDITIONAL(USE_TIGER, false)
2370 AM_CONDITIONAL(USE_LADSPA, false)
2371 AM_CONDITIONAL(USE_LCMS2, false)
2372 AM_CONDITIONAL(USE_LV2, false)
2373 AM_CONDITIONAL(USE_LIBDE265, false)
2374 AM_CONDITIONAL(USE_LIBMMS, false)
2375 AM_CONDITIONAL(USE_MODPLUG, false)
2376 AM_CONDITIONAL(USE_MPEG2ENC, false)
2377 AM_CONDITIONAL(USE_MPLEX, false)
2378 AM_CONDITIONAL(USE_MUSEPACK, false)
2379 AM_CONDITIONAL(USE_NEON, false)
2380 AM_CONDITIONAL(USE_OFA, false)
2381 AM_CONDITIONAL(USE_OPENAL, false)
2382 AM_CONDITIONAL(USE_OPENCV, false)
2383 AM_CONDITIONAL(USE_OPENEXR, false)
2384 AM_CONDITIONAL(USE_OPENGL, false)
2385 AM_CONDITIONAL(USE_OPENJPEG, false)
2386 AM_CONDITIONAL(USE_OPENMPT, false)
2387 AM_CONDITIONAL(USE_OPENNI2, false)
2388 AM_CONDITIONAL(USE_OPUS, false)
2389 AM_CONDITIONAL(USE_PANGO, false)
2390 AM_CONDITIONAL(USE_WILDMIDI, false)
2391 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2392 AM_CONDITIONAL(USE_SNDFILE, false)
2393 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2394 AM_CONDITIONAL(USE_SPANDSP, false)
2395 AM_CONDITIONAL(USE_SRTP, false)
2396 AM_CONDITIONAL(USE_SRT, false)
2397 AM_CONDITIONAL(USE_GME, false)
2398 AM_CONDITIONAL(USE_DVB, false)
2399 AM_CONDITIONAL(USE_VDPAU, false)
2400 AM_CONDITIONAL(USE_SBC, false)
2401 AM_CONDITIONAL(USE_ZBAR, false)
2402 AM_CONDITIONAL(USE_RSVG, false)
2403 AM_CONDITIONAL(USE_RTMP, false)
2404 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2405 AM_CONDITIONAL(USE_UVCH264, false)
2406 AM_CONDITIONAL(USE_WEBP, false)
2407 AM_CONDITIONAL(USE_WEBRTC, false)
2408 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2409 AM_CONDITIONAL(USE_OPENH264, false)
2410 AM_CONDITIONAL(USE_X265, false)
2411 AM_CONDITIONAL(USE_DTLS, false)
2412 AM_CONDITIONAL(USE_VULKAN, false)
2413 AM_CONDITIONAL(USE_TTML, false)
2414 AM_CONDITIONAL(USE_SCTP, false)
2416 fi dnl of EXT plugins
2418 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2421 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2422 dnl GST_*: flags shared by built objects to link against GStreamer
2423 dnl GST_ALL_LDFLAGS: linker flags shared by all
2424 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2425 dnl GST_LT_LDFLAGS: library versioning of our libraries
2426 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2428 dnl GST_OPTION_CFLAGS
2429 if test "x$USE_DEBUG" = xyes; then
2432 AC_SUBST(PROFILE_CFLAGS)
2434 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2435 dnl Define _only_ during CVS (not pre-releases or releases)
2436 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2438 DEPRECATED_CFLAGS=""
2440 AC_SUBST(DEPRECATED_CFLAGS)
2442 VISIBILITY_CFLAGS=""
2443 AS_COMPILER_FLAG([-fvisibility=hidden], [
2444 VISIBILITY_CFLAGS="-fvisibility=hidden"
2445 AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2447 VISIBILITY_CFLAGS=""
2448 AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2450 AC_SUBST(VISIBILITY_CFLAGS)
2452 VISIBILITY_CXXFLAGS=""
2453 if test "x$HAVE_CXX" = "xyes"; then
2454 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2456 AC_SUBST(VISIBILITY_CXXFLAGS)
2458 dnl disable strict aliasing
2459 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2460 AC_SUBST(EXTRA_CFLAGS)
2462 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2463 dnl at make time with e.g. make ERROR_CFLAGS=""
2464 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2465 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2466 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2467 AC_SUBST(GST_OPTION_CFLAGS)
2468 AC_SUBST(GST_OPTION_CXXFLAGS)
2469 AC_SUBST(GST_OPTION_OBJCFLAGS)
2471 dnl FIXME: do we want to rename to GST_ALL_* ?
2472 dnl prefer internal headers to already installed ones
2473 dnl also add builddir include for enumtypes and marshal
2474 dnl add GST_OPTION_CFLAGS, but overridable
2475 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2476 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2477 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2478 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2479 AC_SUBST(GST_CFLAGS)
2480 AC_SUBST(GST_CXXFLAGS)
2481 AC_SUBST(GST_OBJCFLAGS)
2483 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2484 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2485 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2486 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2487 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2488 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2490 dnl LDFLAGS really should only contain flags, not libs - they get added before
2491 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2492 GST_ALL_LDFLAGS="-no-undefined"
2493 if test "x${enable_Bsymbolic}" = "xyes"; then
2494 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2496 AC_SUBST(GST_ALL_LDFLAGS)
2499 dnl linker flags shared by all libraries
2500 dnl LDFLAGS modifier defining exported symbols from built libraries
2501 dnl (export _gst_foo but not __gst_foo)
2503 AC_SUBST(GST_LIB_LDFLAGS)
2505 dnl this really should only contain flags, not libs - they get added before
2506 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2507 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2508 AC_SUBST(GST_PLUGIN_LDFLAGS)
2510 dnl *** output files ***
2512 $MKDIR_P tests/check/orc
2521 gst/accurip/Makefile
2522 gst/adpcmdec/Makefile
2523 gst/adpcmenc/Makefile
2525 gst/videoframe_audiolevel/Makefile
2527 gst/audiobuffersplit/Makefile
2528 gst/audiofxbad/Makefile
2529 gst/audiolatency/Makefile
2530 gst/audiomixmatrix/Makefile
2531 gst/audiovisualizers/Makefile
2532 gst/autoconvert/Makefile
2534 gst/camerabin2/Makefile
2535 gst/coloreffects/Makefile
2536 gst/debugutils/Makefile
2537 gst/dvbsuboverlay/Makefile
2539 gst/faceoverlay/Makefile
2540 gst/festival/Makefile
2541 gst/fieldanalysis/Makefile
2542 gst/freeverb/Makefile
2544 gst/gaudieffects/Makefile
2545 gst/geometrictransform/Makefile
2549 gst/interlace/Makefile
2550 gst/ivfparse/Makefile
2552 gst/jp2kdecimator/Makefile
2553 gst/jpegformat/Makefile
2556 gst/mpegdemux/Makefile
2557 gst/mpegtsdemux/Makefile
2558 gst/mpegtsmux/Makefile
2559 gst/mpegtsmux/tsmux/Makefile
2560 gst/mpegpsmux/Makefile
2564 gst/pcapparse/Makefile
2567 gst/rawparse/Makefile
2568 gst/removesilence/Makefile
2570 gst/segmentclip/Makefile
2576 gst/timecode/Makefile
2577 gst/videofilters/Makefile
2578 gst/videoparsers/Makefile
2579 gst/videosignal/Makefile
2583 gst/compositor/Makefile
2585 gst-libs/gst/Makefile
2586 gst-libs/gst/adaptivedemux/Makefile
2587 gst-libs/gst/basecamerabinsrc/Makefile
2588 gst-libs/gst/insertbin/Makefile
2589 gst-libs/gst/interfaces/Makefile
2590 gst-libs/gst/isoff/Makefile
2591 gst-libs/gst/codecparsers/Makefile
2592 gst-libs/gst/mpegts/Makefile
2593 gst-libs/gst/sctp/Makefile
2594 gst-libs/gst/uridownloader/Makefile
2595 gst-libs/gst/wayland/Makefile
2596 gst-libs/gst/webrtc/Makefile
2597 gst-libs/gst/player/Makefile
2598 gst-libs/gst/video/Makefile
2599 gst-libs/gst/audio/Makefile
2600 gst-libs/gst/opencv/Makefile
2602 sys/dshowdecwrapper/Makefile
2603 sys/androidmedia/Makefile
2604 sys/applemedia/Makefile
2606 sys/d3dvideosink/Makefile
2607 sys/decklink/Makefile
2608 sys/directsound/Makefile
2609 sys/dshowsrcwrapper/Makefile
2610 sys/dshowvideosink/Makefile
2613 sys/ipcpipeline/Makefile
2618 sys/opensles/Makefile
2620 sys/tinyalsa/Makefile
2621 sys/uvch264/Makefile
2626 sys/winscreencap/Makefile
2628 tests/check/Makefile
2629 tests/files/Makefile
2630 tests/examples/Makefile
2631 tests/examples/avsamplesink/Makefile
2632 tests/examples/camerabin2/Makefile
2633 tests/examples/codecparsers/Makefile
2634 tests/examples/compositor/Makefile
2635 tests/examples/directfb/Makefile
2636 tests/examples/audiomixmatrix/Makefile
2637 tests/examples/ipcpipeline/Makefile
2638 tests/examples/mpegts/Makefile
2639 tests/examples/mxf/Makefile
2640 tests/examples/opencv/Makefile
2641 tests/examples/uvch264/Makefile
2642 tests/examples/waylandsink/Makefile
2643 tests/examples/webrtc/Makefile
2644 tests/icles/Makefile
2645 ext/voamrwbenc/Makefile
2646 ext/voaacenc/Makefile
2647 ext/assrender/Makefile
2651 ext/chromaprint/Makefile
2652 ext/closedcaption/Makefile
2653 ext/colormanagement/Makefile
2657 ext/directfb/Makefile
2658 ext/wayland/Makefile
2664 ext/fluidsynth/Makefile
2672 ext/libde265/Makefile
2675 ext/modplug/Makefile
2676 ext/mpeg2enc/Makefile
2678 ext/musepack/Makefile
2683 ext/openexr/Makefile
2684 ext/openh264/Makefile
2685 ext/openjpeg/Makefile
2686 ext/openmpt/Makefile
2687 ext/openni2/Makefile
2690 ext/resindvd/Makefile
2694 ext/smoothstreaming/Makefile
2695 ext/sndfile/Makefile
2696 ext/soundtouch/Makefile
2697 ext/spandsp/Makefile
2700 ext/teletextdec/Makefile
2702 ext/wildmidi/Makefile
2704 ext/vulkan/xcb/Makefile
2705 ext/vulkan/wayland/Makefile
2711 ext/webrtcdsp/Makefile
2715 docs/plugins/Makefile
2717 docs/version.entities
2719 pkgconfig/gstreamer-plugins-bad.pc
2720 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2721 pkgconfig/gstreamer-codecparsers.pc
2722 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2723 pkgconfig/gstreamer-insertbin.pc
2724 pkgconfig/gstreamer-insertbin-uninstalled.pc
2725 pkgconfig/gstreamer-mpegts.pc
2726 pkgconfig/gstreamer-mpegts-uninstalled.pc
2727 pkgconfig/gstreamer-player.pc
2728 pkgconfig/gstreamer-player-uninstalled.pc
2729 pkgconfig/gstreamer-sctp.pc
2730 pkgconfig/gstreamer-sctp-uninstalled.pc
2731 pkgconfig/gstreamer-wayland.pc
2732 pkgconfig/gstreamer-wayland-uninstalled.pc
2733 pkgconfig/gstreamer-webrtc.pc
2734 pkgconfig/gstreamer-webrtc-uninstalled.pc
2735 pkgconfig/gstreamer-bad-video.pc
2736 pkgconfig/gstreamer-bad-video-uninstalled.pc
2737 pkgconfig/gstreamer-bad-audio.pc
2738 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2745 AG_GST_OUTPUT_PLUGINS