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-9.2 cudart-9.2],, [
950 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
951 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
952 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
953 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
954 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
955 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
956 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])
962 save_CPPFLAGS="$CPPFLAGS"
963 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
964 AC_CHECK_HEADER([dynlink_cuda.h], [HAVE_CUDA_DYN_H=yes],
965 AC_MSG_WARN([Could not find dynlink_cuda.h]))
966 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
967 AC_MSG_WARN([Could not find cuda.h]))
968 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
969 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
970 CPPFLAGS=$save_CPPFLAGS
972 dnl libcuda and libcudart libraries
974 LIBS="$CUDA_LIBS $save_LIBS"
976 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
977 AC_MSG_WARN([Could not find cudart library])])
979 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
980 AC_MSG_WARN([Could not find cuda library])])
985 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
986 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
989 save_CPPFLAGS="$CPPFLAGS"
990 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
991 AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
992 AC_MSG_WARN([Could not find nvcuvid.h]))
993 AC_CHECK_HEADER([dynlink_nvcuvid.h], [HAVE_NVCUVID_DYN_H=yes],
994 AC_MSG_WARN([Could not find dynlink_nvcuvid.h]))
996 CPPFLAGS=$save_CPPFLAGS
1000 LIBS="$CUDA_LIBS $save_LIBS"
1001 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
1002 AC_MSG_WARN([Could not find library nvcuvid]))
1005 AM_CONDITIONAL(USE_DYNLINK_NVDEC, false)
1006 if test "x$HAVE_NVCUVID_DYN_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
1008 AM_CONDITIONAL(USE_DYNLINK_NVDEC, true)
1009 AC_DEFINE(HAVE_DYNLINK_HEADERS_NVDEC, 1, [Define if dynlink headers for nvdec are available])
1010 elif test "x$HAVE_NVCUVID_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
1018 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1019 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1020 dnl nvEncodeAPI.h header
1021 HAVE_NVENCODEAPI_H=no
1022 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1023 save_CPPFLAGS="$CPPFLAGS"
1024 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1025 AC_CHECK_HEADER([nvEncodeAPI.h], [
1026 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1027 #if NVENCAPI_MAJOR_VERSION < 5
1028 #error "Need nvEncodeAPI.h >= 5.0"
1031 HAVE_NVENCODEAPI_H=yes
1033 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1036 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1037 AC_SUBST(NVENCODE_CFLAGS)
1038 CPPFLAGS="$save_CPPFLAGS"
1040 dnl libnvnidia-encode library
1041 HAVE_NVENCODE_LIB=no
1042 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1044 LIBS="$NVENCODE_LIBS $saved_LIBS"
1045 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1046 AC_MSG_WARN([Could not find library nvidia-encode]))
1047 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1048 AC_SUBST(NVENCODE_LIBS)
1052 if test "x$HAVE_CUDA_H" = "xyes" \
1053 -a "x$HAVE_CUDART_H" = "xyes" \
1054 -a "x$HAVE_CUDA_LIB" = "xyes" \
1055 -a "x$HAVE_CUDART_LIB" = "xyes" \
1056 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1057 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1059 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1060 dnl cuda-gl interop header
1061 save_CPPFLAGS="$CPPFLAGS"
1062 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1063 AC_CHECK_HEADER([cuda_gl_interop.h], [
1064 USE_NVENC_GST_GL="yes"
1065 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1067 CPPFLAGS="$save_CPPFLAGS"
1073 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1075 dnl check for tinyalsa
1076 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1077 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1078 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1081 dnl check for intel mediasdk
1082 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1083 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1084 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1085 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1088 PKG_CHECK_MODULES(LIBMFX, libmfx,
1090 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1092 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1093 save_CPPFLAGS="$CPPFLAGS"
1094 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1095 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1096 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1097 AC_DEFINE(HAVE_MFX_MFXDEFS_H, 1, [Define if mfx/mfxdefs.h available])
1099 CPPFLAGS="$save_CPPFLAGS"
1101 AC_ARG_WITH([msdk-prefix],
1102 AS_HELP_STRING([--with-msdk-prefix],
1103 [Use the provided prefix for detecting the Intel MediaSDK]),
1104 [AS_IF([test "x$with_msdk_prefix" != "x"],
1105 [MSDK_PREFIX="$with_msdk_prefix"])],
1106 [AS_IF([test "x$MFX_HOME" != "x"],
1107 [MSDK_PREFIX="$MFX_HOME"],
1108 [MSDK_PREFIX="/opt/intel/media"])])
1109 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1110 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1111 AC_SUBST(MSDK_CFLAGS)
1114 save_CPPFLAGS="$CPPFLAGS"
1115 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1116 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1117 CPPFLAGS="$save_CPPFLAGS"
1120 LIBS="$MSDK_LIBS $LIBS"
1122 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1126 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1127 -a "x$HAVE_MFX_LIB" = "xyes"; then
1134 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1136 if test "x$HAVE_GUDEV" = "xyes" \
1137 -a "x$HAVE_MSDK" = "xyes" \
1138 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1144 dnl check the availability of vp9 apis
1146 save_CPPFLAGS="$CPPFLAGS"
1147 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1148 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1150 #include <mfxplugin.h>
1152 dnl check the availability of vp9 apis in PREFIX/include/mfx
1153 AC_CHECK_HEADER(mfx/mfxvp9.h, [HAVE_MFX_MFXVP9_H=1], [HAVE_MFX_MFXVP9_H=0],
1155 #include <mfx/mfxplugin.h>
1157 if test $HAVE_MFX_MFXVP9_H -eq 1; then
1158 AC_DEFINE(HAVE_MFX_MFXVP9_H, 1, [Define if mfx/mfxdefs.h available])
1161 if test $HAVE_MFXVP9_H -eq 1 \
1162 -o $HAVE_MFX_MFXVP9_H -eq 1; then
1164 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1166 ], [USE_MSDK_VP9_DEC=0])
1167 AM_CONDITIONAL(USE_MSDK_LIBVA,
1168 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1169 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1170 [test $USE_MSDK_VP9_DEC -eq 1])
1172 dnl *** ext plug-ins ***
1173 dnl keep this list sorted alphabetically !
1175 if test "x$BUILD_EXTERNAL" = "xyes"; then
1177 dnl *** assrender ***
1178 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1179 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1180 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1181 HAVE_ASSRENDER="yes" ], [
1185 AC_SUBST(ASSRENDER_CFLAGS)
1186 AC_SUBST(ASSRENDER_LIBS)
1189 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1190 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1191 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1194 dnl *** vo-amrwbenc ***
1195 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1196 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1197 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1200 dnl *** vo-aacenc ***
1201 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1202 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1203 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1207 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1208 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1209 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1212 AC_SUBST(BS2B_CFLAGS)
1217 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1218 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1221 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1222 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1223 AC_MSG_RESULT($HAVE_BZ2)
1225 if test "x$HAVE_BZ2" = "xyes"; then
1233 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1234 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1235 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1238 # AC_SUBST(CAIRO_CFLAGS)
1239 # AC_SUBST(CAIRO_LIBS)
1242 dnl *** chromaprint ***
1243 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1244 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1245 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1246 HAVE_CHROMAPRINT="no"
1248 AC_SUBST(CHROMAPRINT_CFLAGS)
1249 AC_SUBST(CHROMAPRINT_LIBS)
1253 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1254 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1255 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1257 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1258 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1260 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1261 [[#ifdef HAVE_SYS_TYPES_H
1262 # include <sys/types.h>
1264 #ifdef HAVE_NETINET_IN_H
1265 # include <netinet/in.h>
1268 AC_MSG_CHECKING([for socket support needed by curlsink])
1269 AC_MSG_RESULT($HAVE_CURL)
1273 AC_SUBST(CURL_CFLAGS)
1275 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1277 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1281 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1282 AC_SUBST(SSH2_CFLAGS)
1284 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1287 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1288 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1289 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1290 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1292 AC_SUBST(LIBXML2_CFLAGS)
1293 AC_SUBST(LIBXML2_LIBS)
1297 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1298 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1299 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1300 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1309 AC_SUBST(LIBDC1394_CFLAGS)
1310 AC_SUBST(LIBDC1394_LIBS)
1313 dnl *** decklink ***
1314 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1315 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1322 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1323 AC_CHECK_LIB(dl, dlopen,
1327 DECKLINK_LIBS="-lpthread -ldl"
1332 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1333 AC_CHECK_LIB(dl, dlopen,
1337 DECKLINK_LIBS="-lpthread -ldl"
1338 HAVE_DECKLINK_OSX=yes
1345 DECKLINK_LIBS="-lole32 -loleaut32"
1346 HAVE_DECKLINK_WIN=yes
1353 AC_SUBST(DECKLINK_CXXFLAGS)
1354 AC_SUBST(DECKLINK_LIBS)
1356 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1357 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1359 dnl **** DirectFB ****
1360 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1361 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1362 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1367 dnl **** Wayland ****
1368 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1369 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1370 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1371 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
1372 if test "x$wayland_scanner" != "x"; then
1374 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1376 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1385 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1386 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1387 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1388 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1390 AC_SUBST(WEBP_CFLAGS)
1395 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1396 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1397 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1398 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1403 AC_SUBST(DAALA_CFLAGS)
1404 AC_SUBST(DAALA_LIBS)
1409 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1410 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1412 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1413 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1414 if test $HAVE_DTS = "no"; then
1415 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1416 [ DTS_LIBS="-ldts_pic $LIBM"
1417 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1423 dnl *** resindvd ***
1424 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1425 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1426 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1431 dnl **** Free AAC Encoder (FAAC) ****
1432 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1433 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1434 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1435 FAAC_LIBS="-lfaac $LIBM")
1439 dnl **** Free AAC Decoder (FAAD2) ****
1440 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1441 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1442 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1443 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1444 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1446 #elif !defined(LATM)
1447 #error Not faad2 >= 2.7
1453 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1463 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1464 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1465 if test "x$HAVE_FBDEV" != "xyes"; then
1466 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1471 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1472 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1473 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
1475 HAVE_FDK_AAC_0_1_4="yes"
1476 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1478 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1483 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1484 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1485 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1486 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1488 AC_SUBST(FLITE_CFLAGS)
1489 AC_SUBST(FLITE_LIBS)
1493 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1494 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1495 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1496 if test $HAVE_GSM != "yes"; then
1497 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1498 if test $HAVE_GSM = "yes"; then
1499 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1505 dnl *** fluidSynth ***
1506 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1507 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1508 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1509 HAVE_FLUIDSYNTH="no"
1514 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1515 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1516 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1519 AC_SUBST(KATE_CFLAGS)
1521 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1524 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1530 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1531 AC_SUBST(TIGER_CFLAGS)
1532 AC_SUBST(TIGER_LIBS)
1533 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1536 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1537 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1538 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1539 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1543 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1544 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1545 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1547 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1548 if test $HAVE_LRDF = "yes"; then
1549 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1552 AC_SUBST(LRDF_CFLAGS)
1556 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1557 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1558 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1561 AC_SUBST(LCMS2_LIBS)
1565 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1566 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1567 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1569 HAVE_LILV_0_22="yes"
1570 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1572 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1574 AC_SUBST(LILV_CFLAGS)
1578 dnl *** libde265 ***
1579 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1580 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1581 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1582 AC_SUBST(LIBDE265_CFLAGS)
1583 AC_SUBST(LIBDE265_LIBS)
1587 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1588 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1589 dnl check with pkg-config first
1590 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1594 AC_SUBST(LIBMMS_LIBS)
1597 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1598 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1599 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1601 AC_SUBST(SRT_CFLAGS)
1605 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1606 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1608 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1609 if test x"$HAVE_SRTP" = x"yes"; then
1610 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1612 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1613 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1617 AC_SUBST(SRTP_CFLAGS)
1621 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1622 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1623 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1625 AC_SUBST(DTLS_CFLAGS)
1633 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1634 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1635 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1643 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1644 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1645 if test "x$HAVE_CXX" != "xyes"; then
1646 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1649 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1651 AC_SUBST(MODPLUG_CFLAGS)
1652 AC_SUBST(MODPLUG_LIBS)
1655 dnl *** mjpegtools version info ***
1656 dnl some may prefer older version (given quirks above)
1657 dnl hm, no version info seems available within mjpegtools headers
1658 dnl and API really moves along
1660 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1661 mjpegtools_api=10601
1663 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1664 mjpegtools_api=10800
1666 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1667 mjpegtools_api=20000
1669 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1670 dnl logging API changed in release candidates
1671 OLD_CFLAGS="$CFLAGS"
1673 CFLAGS="$MJPEG_CFLAGS"
1674 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1675 AC_CHECK_FUNC(mjpeg_loglev_t, [
1676 mjpegtools_api=10903
1678 mjpegtools_api=10900
1680 CFLAGS="$OLD_CFLAGS"
1688 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1689 [mjpegtools API evolution])
1691 dnl *** mpeg2enc ***
1692 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1693 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1695 dnl we require a c++ compiler for this one
1696 if [ test x$HAVE_CXX = xyes ]; then
1697 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1698 dnl since many distros include mjpegtools specifically without mplex
1699 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1700 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1701 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1703 dnl switch over to c++ to test things
1705 OLD_CPPFLAGS="$CPPFLAGS"
1707 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1708 CPPFLAGS="$CPPFLAGS_GOOD -I."
1710 mpeg2enc_headers_ok=no
1711 AC_CHECK_HEADER([mpeg2encoder.hh], [
1712 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1714 LIBS="$LIBS $MPEG2ENC_LIBS"
1715 AC_MSG_CHECKING([for valid mpeg2enc objects])
1716 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1717 #include <mpeg2encoder.hh>
1718 #include <mpeg2encoptions.hh>
1724 MPEG2EncOptions *options = new MPEG2EncOptions ();
1725 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1730 dnl so far so good, let's check more things:
1731 dnl mjpegtools-1.8.0 does not install the required
1732 dnl mpeg2syntaxcodes.h header by default, and a new release
1733 dnl is not in sight, so check for this oversight in case
1734 dnl distros or folks have fixed this themselves
1735 if test "$mjpegtools_api" -ge "10800"; then
1736 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1737 mpeg2enc_headers_ok=yes
1739 mpeg2enc_headers_ok=no
1742 mpeg2enc_headers_ok=yes
1744 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1747 CPPFLAGS="$CPPFLAGS_GOOD"
1748 AC_SUBST(MPEG2ENC_CFLAGS)
1749 AC_SUBST(MPEG2ENC_LIBS)
1756 CPPFLAGS="$OLD_CPPFLAGS"
1765 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1766 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1768 dnl we require a c++ compiler for this one
1769 if [ test x$HAVE_CXX = xyes ]; then
1770 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1771 dnl since many distros include mjpegtools specifically without mplex
1772 dnl and mpeg2enc, we check for mplex on its own, too.
1773 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1774 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1775 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1777 dnl switch over to c++ to test things
1779 OLD_CPPFLAGS="$CPPFLAGS"
1781 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1782 CPPFLAGS="$CPPFLAGS_GOOD -I."
1783 AC_CHECK_HEADER(interact.hpp, [
1784 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1786 LIBS="$LIBS $MPLEX_LIBS"
1787 OLD_LDFLAGS="$LDFLAGS"
1788 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1789 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1790 dnl don't want this here
1791 AC_MSG_CHECKING([for valid mplex objects])
1792 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1794 #include <interact.hpp>
1795 #include <outputstrm.hpp>
1796 #include <multiplexor.hpp>
1801 class TestOutputStream : public OutputStream {
1803 TestOutputStream () : OutputStream () { }
1804 void Write (uint8_t *a, unsigned int b) { }
1805 void NextSegment () { }
1806 uint64_t SegmentSize () { }
1810 MultiplexJob *job = new MultiplexJob ();
1811 vector<IBitStream *> inputs;
1812 job->SetupInputStreams (inputs);
1813 TestOutputStream *out = new TestOutputStream ();
1814 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1819 CPPFLAGS="$CPPFLAGS_GOOD"
1820 AC_SUBST(MPLEX_CFLAGS)
1821 AC_SUBST(MPLEX_LIBS)
1822 AC_SUBST(MPLEX_LDFLAGS)
1824 ],[AC_MSG_RESULT(no)],[])
1826 LDFLAGS="$OLD_LDFLAGS"
1828 CPPFLAGS="$OLD_CPPFLAGS"
1834 dnl *** musepack ***
1835 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1836 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1837 AC_CHECK_HEADER([mpc/mpcdec.h], [
1839 MUSEPACK_LIBS="-lmpcdec"
1840 AC_SUBST(MUSEPACK_LIBS)
1841 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1843 MUSEPACK_LIBS="-lmpcdec"
1844 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1845 AC_SUBST(MUSEPACK_LIBS)
1846 ], [HAVE_MUSEPACK="no"])])
1850 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1851 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1852 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1855 AC_SUBST(NEON_CFLAGS)
1860 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1861 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1862 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1865 AC_SUBST(OFA_CFLAGS)
1870 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1871 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1872 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1875 AC_SUBST(OPENAL_CFLAGS)
1876 AC_SUBST(OPENAL_LIBS)
1880 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1881 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1882 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1883 dnl and don't want the build to break when a new opencv version comes out.
1884 dnl Need to adjust this upwards once we know that our code compiles fine with
1885 dnl a new version and the no-backward-compatibility define. (There doesn't
1886 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1888 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 3.5.0 , [
1891 OLD_CPPFLAGS=$CPPFLAGS
1892 CPPFLAGS=$OPENCV_CFLAGS
1893 something_not_found=no
1894 AC_CHECK_HEADERS([opencv2/core/core_c.h \
1895 opencv2/core/version.hpp \
1896 opencv2/highgui/highgui_c.h \
1897 opencv2/imgproc/imgproc.hpp \
1898 opencv2/imgproc/imgproc_c.h \
1899 opencv2/objdetect/objdetect.hpp \
1900 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
1902 dnl Only required for OpenCV >= 3, we have compat code for older versions
1903 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
1904 dnl check opencv_contrib headers (not always present in opencv distributions)
1905 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
1906 [NOT_A_PROBLEM=yes])
1908 CPPFLAGS=$OLD_CPPFLAGS
1911 if test $something_not_found = "yes"; then
1912 AC_MSG_RESULT([not all opencv2 headers were found])
1920 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1921 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1922 AC_SUBST(OPENCV_PREFIX)
1923 AC_SUBST(OPENCV_CFLAGS)
1924 AC_SUBST(OPENCV_LIBS)
1925 dnl the OpenCV prefix is used at runtime for some object properties, and also
1926 dnl used here to detect which directory is the correct one. For the second
1927 dnl case, make sure the right sysroot is used, ensuring correct behavior
1928 dnl during cross compilation.
1929 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1930 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1932 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1937 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1938 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1939 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1942 dnl *** openh264 ***
1943 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1944 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1945 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1948 dnl *** OpenJPEG ***
1949 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1950 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1952 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1953 if test x"$HAVE_OPENJPEG" != x"yes"; then
1956 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1957 HAVE_OPENJPEG="yes",
1958 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1960 if test x"$HAVE_OPENJPEG" = x"yes"; then
1961 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1964 AC_SUBST(OPENJPEG_CFLAGS)
1965 AC_SUBST(OPENJPEG_LIBS)
1969 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1970 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1971 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1972 AC_SUBST(OPENMPT_CFLAGS)
1973 AC_SUBST(OPENMPT_LIBS)
1977 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1978 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1979 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1980 AC_SUBST(OPENNI2_CFLAGS)
1981 AC_SUBST(OPENNI2_LIBS)
1985 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1986 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1987 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1988 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1993 AC_SUBST(OPUS_CFLAGS)
1998 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1999 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
2000 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
2004 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2005 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2006 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2011 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2012 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2013 if test "x$HAVE_GST_GL" = "xyes"; then
2017 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
2018 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
2021 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2022 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2023 AC_CHECK_HEADER(vulkan/vulkan.h, [
2024 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2025 VULKAN_LIBS="-lvulkan"
2026 AC_SUBST(VULKAN_LIBS)
2027 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2030 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2037 dnl *** teletextdec ***
2038 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2039 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2040 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2043 dnl *** wildmidi ***
2044 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2045 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2046 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2049 WILDMIDI_LIBS="-lWildMidi")
2052 if test "x$HAVE_WILDMIDI" = "xyes"; then
2053 AC_MSG_CHECKING([for wildmidi >= 4.0])
2054 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2055 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2056 #error "wildmidi too old"
2058 ]])], [ AC_MSG_RESULT(yes)
2061 WILDMIDI_LIBS=-lWildMidi
2062 ], [ AC_MSG_RESULT(no)
2066 AC_MSG_WARN([WildMidi library or development headers not found])
2068 AC_SUBST(WILDMIDI_CFLAGS)
2069 AC_SUBST(WILDMIDI_LIBS)
2072 dnl **** Smooth Streaming ****
2073 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2074 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2075 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2077 HAVE_SMOOTHSTREAMING="yes"],
2079 HAVE_SMOOTHSTREAMING="no"])
2080 AC_SUBST(LIBXML2_CFLAGS)
2081 AC_SUBST(LIBXML2_LIBS)
2085 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2086 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2087 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2088 AC_SUBST(SNDFILE_CFLAGS)
2089 AC_SUBST(SNDFILE_LIBS)
2092 dnl *** soundtouch ***
2093 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2094 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2095 dnl We only need -lBPM on soundtouch < 1.4
2096 dnl We check for libSoundTouch since Debian used it before upstream
2097 dnl added a pkgconfig file.
2098 HAVE_SOUNDTOUCH_1_4=yes
2099 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2100 [HAVE_SOUNDTOUCH=yes],
2101 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2102 [HAVE_SOUNDTOUCH=yes],
2103 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2104 [HAVE_SOUNDTOUCH=yes
2105 HAVE_SOUNDTOUCH_1_4=no
2106 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2107 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2108 [HAVE_SOUNDTOUCH=yes],
2109 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2110 [HAVE_SOUNDTOUCH=yes
2111 HAVE_SOUNDTOUCH_1_4=no
2112 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2113 HAVE_SOUNDTOUCH=no)])])])])
2114 AC_SUBST(SOUNDTOUCH_CFLAGS)
2115 AC_SUBST(SOUNDTOUCH_LIBS)
2116 if test "x$HAVE_CXX" != "xyes"; then
2117 USE_SOUNDTOUCH=false
2118 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2120 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2121 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2122 [Defined if the available libSoundTouch is >= 1.4])
2127 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2128 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2129 AC_CHECK_HEADER(openspc.h, [
2130 AC_CHECK_LIB(openspc, OSPC_Init, [
2131 SPC_LIBS="-lopenspc"
2143 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2144 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2145 AC_CHECK_HEADER(gme/gme.h, [
2146 AC_CHECK_LIB(gme, gme_new_emu, [
2157 if test "x$HAVE_GME" = "xyes"; then
2158 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2159 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2165 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2166 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2167 AC_MSG_CHECKING([Checking for up to date dvb installation])
2168 AC_CHECK_HEADER(linux/dvb/version.h, [
2169 AC_MSG_CHECKING([for up-to-date dvb API])
2170 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2171 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2172 #error "Incompatible dvb API"
2174 ]])], [ AC_MSG_RESULT(yes)
2176 ], [ AC_MSG_RESULT(no)
2183 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2184 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2185 AC_MSG_CHECKING([Checking for ACM support])
2186 AC_CHECK_HEADERS([windows.h msacm.h],
2188 AC_SUBST(ACMENC_CFLAGS)
2189 AC_SUBST(ACMMP3DEC_CFLAGS)
2191 [AC_INCLUDES_DEFAULT
2192 #include <windows.h>])
2196 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2197 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2202 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2204 if test "$HAVE_VDPAU" = "no"; then
2205 saved_CPPFLAGS="$CPPFLAGS"
2206 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2208 if test -z "$HAVE_VDPAU_H"; then
2209 dnl Didn't find VDPAU header straight away.
2210 dnl Try /usr/include/nvidia. Need to clear caching vars first
2211 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2212 unset ac_cv_header_vdpau_vdpau_h
2213 unset ac_cv_header_vdpau_vdpau_x11_h
2214 VDPAU_CFLAGS="-I/usr/include/nvidia"
2215 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2216 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2217 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2220 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2222 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2223 dnl Found the headers - look for the lib
2224 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2226 LIBS="$VDPAU_LIBS $saved_LIBS"
2227 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2233 if test "$HAVE_VDPAU" = "yes"; then
2234 AC_MSG_NOTICE([Found up to date VDPAU installation])
2235 AC_SUBST(VDPAU_CFLAGS)
2236 AC_SUBST(VDPAU_LIBS)
2241 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2242 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2243 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2247 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2248 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2249 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2253 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2254 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2255 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2259 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2260 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2261 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2262 HAVE_SPANDSP="yes" ], [
2266 AC_SUBST(SPANDSP_CFLAGS)
2267 AC_SUBST(SPANDSP_LIBS)
2269 dnl *** hls-crypto ***
2270 AC_ARG_WITH([hls-crypto],
2271 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2272 which cryptographic library version to compile against for hls (default: auto)
2274 AS_CASE([$with_hls_crypto],
2278 [with_hls_crypto=auto]
2284 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2285 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2286 AS_CASE([$with_hls_crypto],
2288 PKG_CHECK_MODULES(NETTLE, nettle, [
2289 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2291 ],[AC_MSG_ERROR([Could not find nettle library])])
2294 AM_PATH_LIBGCRYPT([1.2.0], [
2295 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2297 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2300 PKG_CHECK_MODULES(OPENSSL, openssl, [
2301 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2303 ],[AC_MSG_ERROR([Could not find openssl library])])
2306 dnl Try to find a valid crypto library
2307 PKG_CHECK_MODULES(NETTLE, nettle, [
2308 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2311 AM_PATH_LIBGCRYPT([1.2.0], [
2312 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2315 PKG_CHECK_MODULES(OPENSSL, openssl, [
2316 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2327 dnl *** x265 (H.265/HEVC encoder) ***
2328 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2329 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2330 AG_GST_PKG_CHECK_MODULES(X265, x265)
2333 dnl *** WebRTC Audio Processing ***
2334 dnl Note: We test for a specific version as there is no API stability
2335 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2336 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2338 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2340 # On Android, C++ headers comes with the STL implementation
2341 AS_CASE(["${host}"],
2344 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2345 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2346 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2348 AC_SUBST([WEBRTCDSP_CFLAGS])
2349 AC_SUBST([WEBRTCDSP_LIBS])
2352 old_CPPFLAGS=$CPPFLAGS
2353 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2354 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2355 CPPFLAGS=$old_CPPFLAGS
2360 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2361 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2362 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2363 HAVE_WEBRTC="yes" ], [
2370 dnl not building plugins with external dependencies,
2371 dnl but we still need to set the conditionals
2373 AM_CONDITIONAL(USE_ASSRENDER, false)
2374 AM_CONDITIONAL(USE_AOM, false)
2375 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2376 AM_CONDITIONAL(USE_VOAACENC, false)
2377 AM_CONDITIONAL(USE_BS2B, false)
2378 AM_CONDITIONAL(USE_BZ2, false)
2379 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2380 AM_CONDITIONAL(USE_CURL, false)
2381 AM_CONDITIONAL(USE_SSH2, false)
2382 AM_CONDITIONAL(USE_DASH, false)
2383 AM_CONDITIONAL(USE_DC1394, false)
2384 AM_CONDITIONAL(USE_DECKLINK, false)
2385 AM_CONDITIONAL(DECKLINK_OSX, false)
2386 AM_CONDITIONAL(DECKLINK_WIN, false)
2387 AM_CONDITIONAL(USE_DIRECTFB, false)
2388 AM_CONDITIONAL(USE_WAYLAND, false)
2389 AM_CONDITIONAL(USE_DAALA, false)
2390 AM_CONDITIONAL(USE_DTS, false)
2391 AM_CONDITIONAL(USE_EXIF, false)
2392 AM_CONDITIONAL(USE_RESINDVD, false)
2393 AM_CONDITIONAL(USE_FAAC, false)
2394 AM_CONDITIONAL(USE_FAAD, false)
2395 AM_CONDITIONAL(USE_FBDEV, false)
2396 AM_CONDITIONAL(USE_FDK_AAC, false)
2397 AM_CONDITIONAL(USE_FLITE, false)
2398 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2399 AM_CONDITIONAL(USE_GL, false)
2400 AM_CONDITIONAL(USE_GSM, false)
2401 AM_CONDITIONAL(USE_HLS, false)
2402 AM_CONDITIONAL(USE_IQA, false)
2403 AM_CONDITIONAL(USE_KATE, false)
2404 AM_CONDITIONAL(USE_KMS, false)
2405 AM_CONDITIONAL(USE_TIGER, false)
2406 AM_CONDITIONAL(USE_LADSPA, false)
2407 AM_CONDITIONAL(USE_LCMS2, false)
2408 AM_CONDITIONAL(USE_LV2, false)
2409 AM_CONDITIONAL(USE_LIBDE265, false)
2410 AM_CONDITIONAL(USE_LIBMMS, false)
2411 AM_CONDITIONAL(USE_MODPLUG, false)
2412 AM_CONDITIONAL(USE_MPEG2ENC, false)
2413 AM_CONDITIONAL(USE_MPLEX, false)
2414 AM_CONDITIONAL(USE_MUSEPACK, false)
2415 AM_CONDITIONAL(USE_NEON, false)
2416 AM_CONDITIONAL(USE_OFA, false)
2417 AM_CONDITIONAL(USE_OPENAL, false)
2418 AM_CONDITIONAL(USE_OPENCV, false)
2419 AM_CONDITIONAL(USE_OPENEXR, false)
2420 AM_CONDITIONAL(USE_OPENGL, false)
2421 AM_CONDITIONAL(USE_OPENJPEG, false)
2422 AM_CONDITIONAL(USE_OPENMPT, false)
2423 AM_CONDITIONAL(USE_OPENNI2, false)
2424 AM_CONDITIONAL(USE_OPUS, false)
2425 AM_CONDITIONAL(USE_PANGO, false)
2426 AM_CONDITIONAL(USE_WILDMIDI, false)
2427 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2428 AM_CONDITIONAL(USE_SNDFILE, false)
2429 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2430 AM_CONDITIONAL(USE_SPANDSP, false)
2431 AM_CONDITIONAL(USE_SPC, false)
2432 AM_CONDITIONAL(USE_SRTP, false)
2433 AM_CONDITIONAL(USE_SRT, false)
2434 AM_CONDITIONAL(USE_GME, false)
2435 AM_CONDITIONAL(USE_DVB, false)
2436 AM_CONDITIONAL(USE_ACM, false)
2437 AM_CONDITIONAL(USE_VDPAU, false)
2438 AM_CONDITIONAL(USE_SBC, false)
2439 AM_CONDITIONAL(USE_ZBAR, false)
2440 AM_CONDITIONAL(USE_RSVG, false)
2441 AM_CONDITIONAL(USE_RTMP, false)
2442 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2443 AM_CONDITIONAL(USE_UVCH264, false)
2444 AM_CONDITIONAL(USE_WEBP, false)
2445 AM_CONDITIONAL(USE_WEBRTC, false)
2446 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2447 AM_CONDITIONAL(USE_OPENH264, false)
2448 AM_CONDITIONAL(USE_X265, false)
2449 AM_CONDITIONAL(USE_DTLS, false)
2450 AM_CONDITIONAL(USE_VULKAN, false)
2451 AM_CONDITIONAL(USE_TTML, false)
2453 fi dnl of EXT plugins
2455 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2458 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2459 dnl GST_*: flags shared by built objects to link against GStreamer
2460 dnl GST_ALL_LDFLAGS: linker flags shared by all
2461 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2462 dnl GST_LT_LDFLAGS: library versioning of our libraries
2463 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2465 dnl GST_OPTION_CFLAGS
2466 if test "x$USE_DEBUG" = xyes; then
2469 AC_SUBST(PROFILE_CFLAGS)
2471 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2472 dnl Define _only_ during CVS (not pre-releases or releases)
2473 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2475 DEPRECATED_CFLAGS=""
2477 AC_SUBST(DEPRECATED_CFLAGS)
2479 VISIBILITY_CFLAGS=""
2480 AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
2481 AC_SUBST(VISIBILITY_CFLAGS)
2483 VISIBILITY_CXXFLAGS=""
2484 if test "x$HAVE_CXX" = "xyes"; then
2485 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2487 AC_SUBST(VISIBILITY_CXXFLAGS)
2489 dnl disable strict aliasing
2490 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2491 AC_SUBST(EXTRA_CFLAGS)
2493 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2494 dnl at make time with e.g. make ERROR_CFLAGS=""
2495 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2496 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2497 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2498 AC_SUBST(GST_OPTION_CFLAGS)
2499 AC_SUBST(GST_OPTION_CXXFLAGS)
2500 AC_SUBST(GST_OPTION_OBJCFLAGS)
2502 dnl FIXME: do we want to rename to GST_ALL_* ?
2503 dnl prefer internal headers to already installed ones
2504 dnl also add builddir include for enumtypes and marshal
2505 dnl add GST_OPTION_CFLAGS, but overridable
2506 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2507 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2508 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2509 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2510 AC_SUBST(GST_CFLAGS)
2511 AC_SUBST(GST_CXXFLAGS)
2512 AC_SUBST(GST_OBJCFLAGS)
2514 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2515 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2516 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2517 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2518 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2519 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2521 dnl LDFLAGS really should only contain flags, not libs - they get added before
2522 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2523 GST_ALL_LDFLAGS="-no-undefined"
2524 if test "x${enable_Bsymbolic}" = "xyes"; then
2525 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2527 AC_SUBST(GST_ALL_LDFLAGS)
2530 dnl linker flags shared by all libraries
2531 dnl LDFLAGS modifier defining exported symbols from built libraries
2532 dnl (export _gst_foo but not __gst_foo)
2534 AC_SUBST(GST_LIB_LDFLAGS)
2536 dnl this really should only contain flags, not libs - they get added before
2537 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2538 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2539 AC_SUBST(GST_PLUGIN_LDFLAGS)
2541 dnl *** output files ***
2543 $MKDIR_P tests/check/orc
2552 gst/accurip/Makefile
2553 gst/adpcmdec/Makefile
2554 gst/adpcmenc/Makefile
2556 gst/videoframe_audiolevel/Makefile
2558 gst/audiobuffersplit/Makefile
2559 gst/audiofxbad/Makefile
2560 gst/audiolatency/Makefile
2561 gst/audiomixmatrix/Makefile
2562 gst/audiovisualizers/Makefile
2563 gst/autoconvert/Makefile
2565 gst/camerabin2/Makefile
2566 gst/coloreffects/Makefile
2567 gst/debugutils/Makefile
2568 gst/dvbsuboverlay/Makefile
2570 gst/faceoverlay/Makefile
2571 gst/festival/Makefile
2572 gst/fieldanalysis/Makefile
2573 gst/freeverb/Makefile
2575 gst/gaudieffects/Makefile
2576 gst/geometrictransform/Makefile
2580 gst/interlace/Makefile
2581 gst/ivfparse/Makefile
2583 gst/jp2kdecimator/Makefile
2584 gst/jpegformat/Makefile
2587 gst/mpegdemux/Makefile
2588 gst/mpegtsdemux/Makefile
2589 gst/mpegtsmux/Makefile
2590 gst/mpegtsmux/tsmux/Makefile
2591 gst/mpegpsmux/Makefile
2595 gst/pcapparse/Makefile
2598 gst/rawparse/Makefile
2599 gst/removesilence/Makefile
2601 gst/segmentclip/Makefile
2607 gst/timecode/Makefile
2608 gst/videofilters/Makefile
2609 gst/videoparsers/Makefile
2610 gst/videosignal/Makefile
2614 gst/compositor/Makefile
2616 gst-libs/gst/Makefile
2617 gst-libs/gst/adaptivedemux/Makefile
2618 gst-libs/gst/basecamerabinsrc/Makefile
2619 gst-libs/gst/insertbin/Makefile
2620 gst-libs/gst/interfaces/Makefile
2621 gst-libs/gst/isoff/Makefile
2622 gst-libs/gst/codecparsers/Makefile
2623 gst-libs/gst/mpegts/Makefile
2624 gst-libs/gst/uridownloader/Makefile
2625 gst-libs/gst/wayland/Makefile
2626 gst-libs/gst/webrtc/Makefile
2627 gst-libs/gst/player/Makefile
2628 gst-libs/gst/video/Makefile
2629 gst-libs/gst/audio/Makefile
2630 gst-libs/gst/opencv/Makefile
2632 sys/dshowdecwrapper/Makefile
2634 sys/acmmp3dec/Makefile
2635 sys/androidmedia/Makefile
2636 sys/applemedia/Makefile
2638 sys/d3dvideosink/Makefile
2639 sys/decklink/Makefile
2640 sys/directsound/Makefile
2641 sys/dshowsrcwrapper/Makefile
2642 sys/dshowvideosink/Makefile
2645 sys/ipcpipeline/Makefile
2650 sys/opensles/Makefile
2652 sys/tinyalsa/Makefile
2653 sys/uvch264/Makefile
2658 sys/winscreencap/Makefile
2660 tests/check/Makefile
2661 tests/files/Makefile
2662 tests/examples/Makefile
2663 tests/examples/avsamplesink/Makefile
2664 tests/examples/camerabin2/Makefile
2665 tests/examples/codecparsers/Makefile
2666 tests/examples/compositor/Makefile
2667 tests/examples/directfb/Makefile
2668 tests/examples/audiomixmatrix/Makefile
2669 tests/examples/ipcpipeline/Makefile
2670 tests/examples/mpegts/Makefile
2671 tests/examples/mxf/Makefile
2672 tests/examples/opencv/Makefile
2673 tests/examples/uvch264/Makefile
2674 tests/examples/waylandsink/Makefile
2675 tests/examples/webrtc/Makefile
2676 tests/icles/Makefile
2677 ext/voamrwbenc/Makefile
2678 ext/voaacenc/Makefile
2679 ext/assrender/Makefile
2683 ext/chromaprint/Makefile
2684 ext/closedcaption/Makefile
2685 ext/colormanagement/Makefile
2689 ext/directfb/Makefile
2690 ext/wayland/Makefile
2697 ext/fluidsynth/Makefile
2705 ext/libde265/Makefile
2708 ext/modplug/Makefile
2709 ext/mpeg2enc/Makefile
2711 ext/musepack/Makefile
2716 ext/openexr/Makefile
2717 ext/openh264/Makefile
2718 ext/openjpeg/Makefile
2719 ext/openmpt/Makefile
2720 ext/openni2/Makefile
2723 ext/resindvd/Makefile
2726 ext/smoothstreaming/Makefile
2727 ext/sndfile/Makefile
2728 ext/soundtouch/Makefile
2729 ext/spandsp/Makefile
2732 ext/teletextdec/Makefile
2735 ext/wildmidi/Makefile
2737 ext/vulkan/xcb/Makefile
2738 ext/vulkan/wayland/Makefile
2744 ext/webrtcdsp/Makefile
2748 docs/plugins/Makefile
2750 docs/version.entities
2752 pkgconfig/gstreamer-plugins-bad.pc
2753 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2754 pkgconfig/gstreamer-codecparsers.pc
2755 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2756 pkgconfig/gstreamer-insertbin.pc
2757 pkgconfig/gstreamer-insertbin-uninstalled.pc
2758 pkgconfig/gstreamer-mpegts.pc
2759 pkgconfig/gstreamer-mpegts-uninstalled.pc
2760 pkgconfig/gstreamer-player.pc
2761 pkgconfig/gstreamer-player-uninstalled.pc
2762 pkgconfig/gstreamer-wayland.pc
2763 pkgconfig/gstreamer-wayland-uninstalled.pc
2764 pkgconfig/gstreamer-webrtc.pc
2765 pkgconfig/gstreamer-webrtc-uninstalled.pc
2766 pkgconfig/gstreamer-bad-video.pc
2767 pkgconfig/gstreamer-bad-video-uninstalled.pc
2768 pkgconfig/gstreamer-bad-audio.pc
2769 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2776 AG_GST_OUTPUT_PLUGINS