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.17.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([gst/aiff/aiff.c])
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, 1700, 0, 1700)
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 *** checks for libraries ***
143 dnl check for libm, for sin() etc.
149 dnl check for pthreads
152 dnl *** checks for header files ***
154 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
155 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
157 if test "x$HAVE_UNISTD_H" != "xyes"; then
158 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
161 AC_CHECK_HEADERS([sys/time.h])
166 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
167 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
169 dnl *** checks for types/defines ***
171 dnl *** checks for structures ***
173 dnl *** checks for compiler characteristics ***
175 dnl *** checks for library functions ***
176 AC_CHECK_FUNCS([gmtime_r pipe2])
178 dnl *** checks for headers ***
179 AC_CHECK_HEADERS([sys/utsname.h])
181 dnl *** checks for dependency libraries ***
183 dnl *** checks for socket and nsl libraries ***
184 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
185 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
189 AG_GST_GLIB_CHECK([$GLIB_REQ])
191 dnl Needed by plugins that use g_module_*() API
192 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
194 dnl checks for gstreamer
195 dnl uninstalled is selected preferentially -- see pkg-config(1)
196 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
197 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
198 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
199 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GSTPB_REQ], yes)
202 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GSTPB_REQ], yes)
203 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GSTPB_REQ], yes)
204 AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GSTPB_REQ], no)
205 AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-[$GST_API_VERSION], [$GSTPB_REQ], yes)
207 if test "x$HAVE_GST_GL" = "xyes"; then
209 AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
210 GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
211 AC_MSG_RESULT([$GST_GL_WINSYS])
212 GST_GL_HAVE_WINDOW_X11=""
213 GST_GL_HAVE_WINDOW_WAYLAND=""
214 GST_GL_HAVE_WINDOW_ANDROID=""
215 GST_GL_HAVE_WINDOW_COCOA=""
216 GST_GL_HAVE_WINDOW_EAGL=""
217 case "$GST_GL_WINSYS" in *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
218 case "$GST_GL_WINSYS" in *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
219 case "$GST_GL_WINSYS" in *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
220 case "$GST_GL_WINSYS" in *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
221 case "$GST_GL_WINSYS" in *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
223 AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
224 GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
225 AC_MSG_RESULT([$GST_GL_PLATFORMS])
226 GST_GL_HAVE_PLATFORM_GLX=""
227 GST_GL_HAVE_PLATFORM_EGL=""
228 GST_GL_HAVE_PLATFORM_CGL=""
229 GST_GL_HAVE_PLATFORM_EAGL=""
230 case "$GST_GL_PLATFORMS" in *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
231 case "$GST_GL_PLATFORMS" in *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
232 case "$GST_GL_PLATFORMS" in *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
233 case "$GST_GL_PLATFORMS" in *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
235 AC_MSG_CHECKING([GStreamer OpenGL apis ...])
236 GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
237 AC_MSG_RESULT([$GST_GL_APIS])
238 GST_GL_HAVE_API_GLES2=""
239 GST_GL_HAVE_API_GL=""
240 case "$GST_GL_APIS" in *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
241 case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
243 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
245 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
247 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
249 dnl check for uninstalled plugin directories for unit tests
250 AG_GST_CHECK_UNINSTALLED_SETUP([
251 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [$GSTPB_REQ])
252 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [$GSTPB_REQ])
253 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [$GSTPB_REQ])
256 dnl Check for documentation xrefs
257 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
258 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
259 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
260 AC_SUBST(GLIB_PREFIX)
262 AC_SUBST(GSTPB_PREFIX)
264 dnl GTK is optional and used in examples
268 if test "x$BUILD_EXAMPLES" = "xyes"; then
269 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
271 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
273 2.0) GTK_REQ=$GTK2_REQ ;;
274 3.0) GTK_REQ=$GTK3_REQ ;;
275 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
279 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
280 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
284 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
286 dnl Check for -Bsymbolic-functions linker flag used to avoid
287 dnl intra-library PLT jumps, if available.
288 AC_ARG_ENABLE(Bsymbolic,
289 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
290 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
291 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
292 LDFLAGS=-Wl,-Bsymbolic-functions
294 AC_TRY_LINK([], [return 0],
296 enable_Bsymbolic=yes,
299 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
301 dnl *** set variables based on configure arguments ***
303 dnl GTK is optional and used in examples
306 if test "x$BUILD_EXAMPLES" = "xyes"; then
307 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
308 if test "x$HAVE_GTK3" = "xyes"; then
310 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
311 AC_SUBST(GTK_VERSION)
312 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
313 AC_SUBST(GTK_BASE_DIR)
314 GTK3_TARGETS=`$PKG_CONFIG --variable=targets gtk+-3.0`
315 case "$GTK3_TARGETS" in *wayland*) HAVE_GTK3_WAYLAND="1" ;; esac
319 AC_SUBST(GTK3_CFLAGS)
321 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
322 AM_CONDITIONAL(HAVE_GTK3_WAYLAND, test "x$HAVE_GTK3_WAYLAND" = "x1")
324 dnl x11 is optional for librfb
326 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
330 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
331 if test "x$HAVE_X11" = "xyes"; then
332 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
335 dnl exif (used on jifmux tests) ****
336 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
338 AC_SUBST(EXIF_CFLAGS)
339 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
341 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
342 PKG_CHECK_MODULES(DSSIM, dssim, [
350 if test "x$HAVE_DSSIM" = "xyes"; then
351 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
354 AC_SUBST(DSSIM_CFLAGS)
356 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
361 dnl set license and copyright notice
363 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
364 AC_SUBST(GST_LICENSE)
366 dnl define LIBDIR so we can inform people where we live
367 AS_AC_EXPAND(LIBDIR, $libdir)
368 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
370 dnl set location of plugin directory
373 dnl set release date/time
374 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
375 ["${srcdir}/gst-plugins-bad.doap"],
376 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
378 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
379 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
380 if test x$enable_static = xyes -a x$enable_shared = xno; then
381 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
384 AC_ARG_WITH([player-tests],
385 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
386 if test x$with_player_tests = xyes; then
387 AC_PATH_PROG([WGET], [wget], no)
388 if test x$WGET = xno; then
389 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
393 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
395 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
396 dnl make sure it doesn't complain about unused variables if debugging is disabled
398 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
400 dnl define an ERROR_CFLAGS Makefile variable
401 dnl -Waggregate-return - libexif returns aggregates
402 dnl -Wundef - Windows headers check _MSC_VER unconditionally
403 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
404 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
405 -Wwrite-strings -Wformat-security -Wold-style-definition
406 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
407 -Wnested-externs $NO_WARNINGS])
409 dnl define an ERROR_CXXFLAGS Makefile variable
410 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
411 -Wmissing-declarations -Wredundant-decls
412 -Wwrite-strings -Wformat-nonliteral -Wformat-security
413 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
415 dnl define an ERROR_OBJCFLAGS Makefile variable
416 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
417 -Wmissing-declarations -Wredundant-decls
418 -Wwrite-strings -Wformat-nonliteral -Wformat-security
419 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
421 dnl define correct level for debugging messages
422 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
425 AG_GST_DEFAULT_ELEMENTS
427 dnl *** plug-ins to include ***
429 dnl these are all the gst plug-ins, compilable without additional libs
430 AG_GST_CHECK_PLUGIN(accurip)
431 AG_GST_CHECK_PLUGIN(adpcmdec)
432 AG_GST_CHECK_PLUGIN(adpcmenc)
433 AG_GST_CHECK_PLUGIN(aiff)
434 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
435 AG_GST_CHECK_PLUGIN(asfmux)
436 AG_GST_CHECK_PLUGIN(audiobuffersplit)
437 AG_GST_CHECK_PLUGIN(audiofxbad)
438 AG_GST_CHECK_PLUGIN(audiolatency)
439 AG_GST_CHECK_PLUGIN(audiomixmatrix)
440 AG_GST_CHECK_PLUGIN(audiovisualizers)
441 AG_GST_CHECK_PLUGIN(autoconvert)
442 AG_GST_CHECK_PLUGIN(bayer)
443 AG_GST_CHECK_PLUGIN(camerabin2)
444 AG_GST_CHECK_PLUGIN(coloreffects)
445 AG_GST_CHECK_PLUGIN(debugutils)
446 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
447 AG_GST_CHECK_PLUGIN(dvdspu)
448 AG_GST_CHECK_PLUGIN(faceoverlay)
449 AG_GST_CHECK_PLUGIN(festival)
450 AG_GST_CHECK_PLUGIN(fieldanalysis)
451 AG_GST_CHECK_PLUGIN(freeverb)
452 AG_GST_CHECK_PLUGIN(frei0r)
453 AG_GST_CHECK_PLUGIN(gaudieffects)
454 AG_GST_CHECK_PLUGIN(geometrictransform)
455 AG_GST_CHECK_PLUGIN(gdp)
456 AG_GST_CHECK_PLUGIN(id3tag)
457 AG_GST_CHECK_PLUGIN(inter)
458 AG_GST_CHECK_PLUGIN(interlace)
459 AG_GST_CHECK_PLUGIN(ivfparse)
460 AG_GST_CHECK_PLUGIN(ivtc)
461 AG_GST_CHECK_PLUGIN(jp2kdecimator)
462 AG_GST_CHECK_PLUGIN(jpegformat)
463 AG_GST_CHECK_PLUGIN(librfb)
464 AG_GST_CHECK_PLUGIN(midi)
465 AG_GST_CHECK_PLUGIN(mpegdemux)
466 AG_GST_CHECK_PLUGIN(mpegtsdemux)
467 AG_GST_CHECK_PLUGIN(mpegtsmux)
468 AG_GST_CHECK_PLUGIN(mpegpsmux)
469 AG_GST_CHECK_PLUGIN(mxf)
470 AG_GST_CHECK_PLUGIN(netsim)
471 AG_GST_CHECK_PLUGIN(onvif)
472 AG_GST_CHECK_PLUGIN(pcapparse)
473 AG_GST_CHECK_PLUGIN(pnm)
474 AG_GST_CHECK_PLUGIN(proxy)
475 AG_GST_CHECK_PLUGIN(rawparse)
476 AG_GST_CHECK_PLUGIN(removesilence)
477 AG_GST_CHECK_PLUGIN(rist)
478 AG_GST_CHECK_PLUGIN(rtp)
479 AG_GST_CHECK_PLUGIN(sdp)
480 AG_GST_CHECK_PLUGIN(segmentclip)
481 AG_GST_CHECK_PLUGIN(siren)
482 AG_GST_CHECK_PLUGIN(smooth)
483 AG_GST_CHECK_PLUGIN(speed)
484 AG_GST_CHECK_PLUGIN(subenc)
485 AG_GST_CHECK_PLUGIN(timecode)
486 AG_GST_CHECK_PLUGIN(videofilters)
487 AG_GST_CHECK_PLUGIN(videoparsers)
488 AG_GST_CHECK_PLUGIN(videosignal)
489 AG_GST_CHECK_PLUGIN(vmnc)
490 AG_GST_CHECK_PLUGIN(y4m)
491 AG_GST_CHECK_PLUGIN(yadif)
493 dnl *** plug-ins to exclude ***
495 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
496 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
497 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
499 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
501 LIBS="$LIBS -framework VideoToolbox"
502 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
503 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
509 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
510 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
511 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
514 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
515 if test "x$HAVE_IOS" = "xyes"; then
516 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
519 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
520 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
521 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
524 dnl disable gst plugins we might not be able to build on this
525 dnl platform: (ugly but minimally invasive)
526 dnl FIXME: maybe move to sys, or make work with winsock2
527 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
528 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
530 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
531 WINSOCK2_LIBS="-lws2_32"
532 AC_SUBST(WINSOCK2_LIBS)
536 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
537 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
539 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
540 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
541 VULKAN_CONFIG_DEFINES="
542 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
543 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
545 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
546 outfile=vkconfig.h-tmp
547 cat > $outfile <<\_______EOF
550 * This is a generated file. Please modify `configure.ac'
553 #ifndef __GST_VULKAN_CONFIG_H__
554 #define __GST_VULKAN_CONFIG_H__
562 cat >>$outfile <<_______EOF
563 $vulkan_config_defines
566 cat >>$outfile <<_______EOF
570 #endif /* __GST_VULKAN_CONFIG_H__ */
574 if cmp -s $outfile ext/vulkan/vkconfig.h; then
575 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
578 mv $outfile ext/vulkan/vkconfig.h
581 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
584 dnl *** sys plug-ins ***
587 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
588 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
589 HAVE_DIRECTSOUND="no"
590 save_CFLAGS="$CFLAGS"
591 save_LDFLAGS="$LDFLAGS"
593 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
594 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
595 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
596 AC_MSG_CHECKING(for DirectSound LDFLAGS)
597 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
601 #include <mmsystem.h>
603 DXGetErrorString9 (0);
604 DirectSoundCreate(NULL, NULL, NULL);
606 [HAVE_DIRECTSOUND="yes"],
607 [HAVE_DIRECTSOUND="no"])
608 AC_MSG_RESULT($HAVE_DIRECTSOUND)
610 LDFLAGS=$save_LDFLAGS
613 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
614 dnl this is much more than we want
615 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
616 AC_SUBST(DIRECTX_CFLAGS)
617 AC_SUBST(DIRECTX_LDFLAGS)
618 AC_SUBST(DIRECTSOUND_LIBS)
620 AC_SUBST(HAVE_DIRECTSOUND)
624 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
625 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
627 save_CFLAGS="$CFLAGS"
628 save_LDFLAGS="$LDFLAGS"
630 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
631 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
632 LIBS="$LIBS -lole32 -lwinmm -lksuser"
633 AC_MSG_CHECKING(for WASAPI LDFLAGS)
634 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
637 #include <mmsystem.h>
638 #include <mmdeviceapi.h>
644 hr = CoInitialize(NULL);
646 printf("CoInitialize failed: hr = 0x%08x", hr);
651 // result = do_everything(argc, argv);
659 AC_MSG_RESULT($HAVE_WASAPI)
661 LDFLAGS=$save_LDFLAGS
664 if test "x$HAVE_WASAPI" = "xyes"; then
665 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
666 AC_SUBST(WASAPI_LIBS)
668 AC_SUBST(HAVE_WASAPI)
672 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
673 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
675 save_CFLAGS="$CFLAGS"
676 save_LDFLAGS="$LDFLAGS"
678 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
679 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
680 LIBS="$LIBS -ld3d9 -lgdi32"
681 AC_MSG_CHECKING(for Direct3D LDFLAGS)
682 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
686 Direct3DCreate9(D3D_SDK_VERSION);
688 [HAVE_DIRECT3D="yes"],
689 [HAVE_DIRECT3D="no"])
690 AC_MSG_RESULT($HAVE_DIRECT3D)
692 LDFLAGS=$save_LDFLAGS
695 if test "x$HAVE_DIRECT3D" = "xyes"; then
696 DIRECT3D_LIBS="-ld3d9 -lgdi32"
697 AC_SUBST(DIRECT3D_LIBS)
699 AC_SUBST(HAVE_DIRECT3D)
703 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
704 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
705 HAVE_WINSCREENCAP="no"
706 save_CFLAGS="$CFLAGS"
707 save_LDFLAGS="$LDFLAGS"
709 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
710 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
711 LIBS="$LIBS -ld3d9 -lgdi32"
712 AC_MSG_CHECKING(for Direct3D LDFLAGS)
713 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
717 Direct3DCreate9(D3D_SDK_VERSION);
719 [HAVE_WINSCREENCAP="yes"],
720 [HAVE_WINSCREENCAP="no"])
721 AC_MSG_RESULT($HAVE_WINSCREENCAP)
723 LDFLAGS=$save_LDFLAGS
726 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
727 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
728 AC_SUBST(WINSCREENCAP_LIBS)
730 AC_SUBST(HAVE_WINSCREENCAP)
734 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
735 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
737 save_CFLAGS="$CFLAGS"
738 save_LDFLAGS="$LDFLAGS"
740 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
741 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
742 LIBS="$LIBS -lole32 -luuid -lstrmiids"
743 AC_MSG_CHECKING(for Winks LDFLAGS)
744 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
750 IGraphBuilder *pGraph = NULL;
751 HRESULT hr = CoInitialize(NULL);
752 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
753 &IID_IGraphBuilder, (void **)&pGraph);
760 AC_MSG_RESULT($HAVE_WINKS)
762 LDFLAGS=$save_LDFLAGS
765 if test "x$HAVE_WINKS" = "xyes"; then
766 dnl this is much more than we want
767 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
768 AC_SUBST(DIRECTX_CFLAGS)
769 AC_SUBST(DIRECTX_LDFLAGS)
775 dnl *** Android Media ***
776 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
777 HAVE_ANDROID_MEDIA="no"
778 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
781 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
784 HAVE_ANDROID_MEDIA="no"
789 dnl *** AppleMedia (OS X and iOS) ***
790 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
791 HAVE_APPLE_MEDIA="no"
792 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
793 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
794 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
795 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
796 if test "x$HAVE_IOS" = "xno"; then
797 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
801 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
806 HAVE_APPLE_MEDIA="no"
811 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
812 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
813 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
814 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
815 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
817 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
826 dnl *** OS/X AVCVideoServices ***
827 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
829 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
831 save_CPPFLAGS="$CPPFLAGS"
832 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
834 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
835 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
837 CPPFLAGS=$save_CPPFLAGS
840 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
849 dnl check for shm_open (for shm plugin)
850 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
851 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
852 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
854 *-darwin* | *-macos10*)
855 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
862 AC_CHECK_LIB([rt], [shm_open],
863 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
864 #include <sys/socket.h>
867 AC_SUBST(SHM_LIBS, "-lrt")
875 dnl check for unix sockets (ipcpipeline plugin)
876 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
877 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
878 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
879 AC_CHECK_FUNC(pipe, [
880 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
889 dnl check for OpenSL ES
890 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
891 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
892 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
896 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
897 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
898 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
899 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
900 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
903 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
904 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
907 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
908 test "x$HAVE_GUDEV" = "xyes" && \
909 test "x$HAVE_LIBUSB" = "xyes"; then
915 AC_SUBST(LIBUDEV_CFLAGS)
916 AC_SUBST(LIBUDEV_LIBS)
917 AC_SUBST(LIBUSB_CFLAGS)
918 AC_SUBST(LIBUSB_LIBS)
921 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
922 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
923 AC_ARG_WITH([cuda-prefix],
924 AS_HELP_STRING([--with-cuda-prefix],
925 [Use the provided prefix for detecting the cuda installation]),
926 [AS_IF([test "x$with_cuda_prefix" != "x"],
927 [CUDA_PREFIX="$with_cuda_prefix"])],
931 if test "x$CUDA_PREFIX" != "x"; then
932 dnl only override if not already set
933 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
934 dnl this is an educated guess, user can always override these
935 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
936 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
939 PKG_CHECK_MODULES([CUDA], [cuda-10.1 cudart-10.1],, [
940 PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
941 PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
942 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
943 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
944 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
945 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
946 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
947 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
948 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])])
953 save_CPPFLAGS="$CPPFLAGS"
954 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
955 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
956 AC_MSG_WARN([Could not find cuda.h]))
957 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
958 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
959 CPPFLAGS=$save_CPPFLAGS
961 dnl libcuda and libcudart libraries
963 LIBS="$CUDA_LIBS $save_LIBS"
965 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
966 AC_MSG_WARN([Could not find cudart library])])
968 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
969 AC_MSG_WARN([Could not find cuda library])])
974 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
975 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
976 save_CPPFLAGS="$CPPFLAGS"
977 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
978 CPPFLAGS=$save_CPPFLAGS
982 LIBS="$CUDA_LIBS $save_LIBS"
983 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
984 AC_MSG_WARN([Could not find library nvcuvid]))
987 if test "x$HAVE_NVCUVID" = "xyes"; then
995 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
996 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
997 dnl libnvnidia-encode library
999 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1001 LIBS="$NVENCODE_LIBS $saved_LIBS"
1002 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1003 AC_MSG_WARN([Could not find library nvidia-encode]))
1004 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1005 AC_SUBST(NVENCODE_LIBS)
1009 if test "x$HAVE_CUDA_H" = "xyes" \
1010 -a "x$HAVE_CUDART_H" = "xyes" \
1011 -a "x$HAVE_CUDA_LIB" = "xyes" \
1012 -a "x$HAVE_CUDART_LIB" = "xyes" \
1013 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1015 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1016 dnl cuda-gl interop header
1017 save_CPPFLAGS="$CPPFLAGS"
1018 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1019 AC_CHECK_HEADER([cuda_gl_interop.h], [
1020 USE_NVENC_GST_GL="yes"
1021 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1023 CPPFLAGS="$save_CPPFLAGS"
1029 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1031 dnl check for tinyalsa
1032 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1033 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1034 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1037 dnl check for intel mediasdk
1038 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1039 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1040 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1041 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1042 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1045 PKG_CHECK_MODULES(LIBMFX, libmfx,
1047 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1049 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1050 save_CPPFLAGS="$CPPFLAGS"
1051 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1052 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1053 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1054 MFX_INCDIR="`$PKG_CONFIG --variable=includedir libmfx`"
1055 MSDK_CFLAGS="-I$MFX_INCDIR/mfx"
1056 AC_SUBST(MSDK_CFLAGS)
1058 CPPFLAGS="$save_CPPFLAGS"
1060 AC_ARG_WITH([msdk-prefix],
1061 AS_HELP_STRING([--with-msdk-prefix],
1062 [Use the provided prefix for detecting the Intel MediaSDK]),
1063 [AS_IF([test "x$with_msdk_prefix" != "x"],
1064 [MSDK_PREFIX="$with_msdk_prefix"])],
1065 [AS_IF([test "x$MFX_HOME" != "x"],
1066 [MSDK_PREFIX="$MFX_HOME"],
1067 [MSDK_PREFIX="/opt/intel/media"])])
1068 MSDK_CFLAGS="-I$MSDK_PREFIX/include -I$MSDK_PREFIX/include/mfx"
1069 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -L$MSDK_PREFIX/lib/x64 -L$MSDK_PREFIX/lib64 -L$MSDK_PREFIX/lib -lmfx -ldl"
1070 AC_SUBST(MSDK_CFLAGS)
1073 save_CPPFLAGS="$CPPFLAGS"
1074 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1075 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1076 CPPFLAGS="$save_CPPFLAGS"
1079 LIBS="$MSDK_LIBS $LIBS"
1081 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1085 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1086 -a "x$HAVE_MFX_LIB" = "xyes"; then
1093 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1095 if test "x$HAVE_GUDEV" = "xyes" \
1096 -a "x$HAVE_MSDK" = "xyes" \
1097 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1103 dnl check the availability of vp9 apis
1105 save_CPPFLAGS="$CPPFLAGS"
1106 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1107 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1109 #include <mfxplugin.h>
1112 if test $HAVE_MFXVP9_H -eq 1; then
1114 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1116 ], [USE_MSDK_VP9_DEC=0])
1117 AM_CONDITIONAL(USE_MSDK_LIBVA,
1118 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1119 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1120 [test $USE_MSDK_VP9_DEC -eq 1])
1122 dnl *** ext plug-ins ***
1123 dnl keep this list sorted alphabetically !
1125 if test "x$BUILD_EXTERNAL" = "xyes"; then
1127 dnl *** assrender ***
1128 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1129 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1130 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1131 HAVE_ASSRENDER="yes" ], [
1135 AC_SUBST(ASSRENDER_CFLAGS)
1136 AC_SUBST(ASSRENDER_LIBS)
1139 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1140 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1141 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1144 dnl *** vo-amrwbenc ***
1145 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1146 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1147 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1150 dnl *** vo-aacenc ***
1151 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1152 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1153 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1157 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1158 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1159 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1162 AC_SUBST(BS2B_CFLAGS)
1167 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1168 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1171 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1172 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1173 AC_MSG_RESULT($HAVE_BZ2)
1175 if test "x$HAVE_BZ2" = "xyes"; then
1183 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1184 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1185 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1188 # AC_SUBST(CAIRO_CFLAGS)
1189 # AC_SUBST(CAIRO_LIBS)
1192 dnl *** chromaprint ***
1193 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1194 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1195 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1196 HAVE_CHROMAPRINT="no"
1198 AC_SUBST(CHROMAPRINT_CFLAGS)
1199 AC_SUBST(CHROMAPRINT_LIBS)
1203 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1204 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1205 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1207 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1208 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1210 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1211 [[#ifdef HAVE_SYS_TYPES_H
1212 # include <sys/types.h>
1214 #ifdef HAVE_NETINET_IN_H
1215 # include <netinet/in.h>
1218 AC_MSG_CHECKING([for socket support needed by curlsink])
1219 AC_MSG_RESULT($HAVE_CURL)
1223 AC_SUBST(CURL_CFLAGS)
1225 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1227 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1231 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1232 AC_SUBST(SSH2_CFLAGS)
1234 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1237 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1238 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1239 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1240 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1242 AC_SUBST(LIBXML2_CFLAGS)
1243 AC_SUBST(LIBXML2_LIBS)
1247 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1248 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1249 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1250 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1259 AC_SUBST(LIBDC1394_CFLAGS)
1260 AC_SUBST(LIBDC1394_LIBS)
1263 dnl *** decklink ***
1264 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1265 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1272 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1273 AC_CHECK_LIB(dl, dlopen,
1277 DECKLINK_LIBS="-lpthread -ldl"
1282 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1283 AC_CHECK_LIB(dl, dlopen,
1287 DECKLINK_LIBS="-lpthread -ldl"
1288 HAVE_DECKLINK_OSX=yes
1295 DECKLINK_LIBS="-lole32 -loleaut32"
1296 HAVE_DECKLINK_WIN=yes
1303 AC_SUBST(DECKLINK_CXXFLAGS)
1304 AC_SUBST(DECKLINK_LIBS)
1306 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1307 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1309 dnl **** DirectFB ****
1310 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1311 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1312 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1317 dnl **** Wayland ****
1318 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1319 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1320 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1321 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.15, [
1322 if test "x$wayland_scanner" != "x"; then
1324 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1326 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1335 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1336 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1337 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1338 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1340 AC_SUBST(WEBP_CFLAGS)
1345 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1346 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1348 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1349 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1350 if test $HAVE_DTS = "no"; then
1351 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1352 [ DTS_LIBS="-ldts_pic $LIBM"
1353 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1359 dnl *** resindvd ***
1360 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1361 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1362 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1367 dnl **** Free AAC Encoder (FAAC) ****
1368 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1369 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1370 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1371 FAAC_LIBS="-lfaac $LIBM")
1375 dnl **** Free AAC Decoder (FAAD2) ****
1376 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1377 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1378 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1379 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1380 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1382 #elif !defined(LATM)
1383 #error Not faad2 >= 2.7
1389 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1399 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1400 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1401 if test "x$HAVE_FBDEV" != "xyes"; then
1402 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1407 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1408 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1409 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1411 PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1412 AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1415 PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1416 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1421 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1422 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1423 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1424 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1426 AC_SUBST(FLITE_CFLAGS)
1427 AC_SUBST(FLITE_LIBS)
1431 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1432 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1433 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1434 if test $HAVE_GSM != "yes"; then
1435 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1436 if test $HAVE_GSM = "yes"; then
1437 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1443 dnl *** fluidSynth ***
1444 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1445 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1446 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1447 HAVE_FLUIDSYNTH="no"
1452 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1453 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1454 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1457 AC_SUBST(KATE_CFLAGS)
1459 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1462 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1468 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1469 AC_SUBST(TIGER_CFLAGS)
1470 AC_SUBST(TIGER_LIBS)
1471 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1474 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1475 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1476 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1477 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1481 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1482 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1483 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1485 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1486 if test $HAVE_LRDF = "yes"; then
1487 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1490 AC_SUBST(LRDF_CFLAGS)
1494 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1495 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1496 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1499 AC_SUBST(LCMS2_LIBS)
1503 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1504 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1505 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1507 HAVE_LILV_0_22="yes"
1508 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1510 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1512 AC_SUBST(LILV_CFLAGS)
1516 dnl *** libde265 ***
1517 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1518 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1519 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1520 AC_SUBST(LIBDE265_CFLAGS)
1521 AC_SUBST(LIBDE265_LIBS)
1525 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1526 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1527 dnl check with pkg-config first
1528 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1532 AC_SUBST(LIBMMS_LIBS)
1535 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1536 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1537 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1539 AC_SUBST(SRT_CFLAGS)
1543 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1544 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1546 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1547 if test x"$HAVE_SRTP" = x"yes"; then
1548 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1550 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1551 AG_GST_CHECK_LIBHEADER(SRTP, srtp, crypto_policy_set_aes_gcm_128_16_auth, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1555 AC_SUBST(SRTP_CFLAGS)
1559 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1560 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1561 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1563 AC_SUBST(DTLS_CFLAGS)
1571 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1572 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1573 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1581 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1582 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1583 if test "x$HAVE_CXX" != "xyes"; then
1584 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1587 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1589 AC_SUBST(MODPLUG_CFLAGS)
1590 AC_SUBST(MODPLUG_LIBS)
1593 dnl *** mjpegtools version info ***
1594 dnl some may prefer older version (given quirks above)
1595 dnl hm, no version info seems available within mjpegtools headers
1596 dnl and API really moves along
1598 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1599 mjpegtools_api=10601
1601 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1602 mjpegtools_api=10800
1604 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1605 mjpegtools_api=20000
1607 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1608 dnl logging API changed in release candidates
1609 OLD_CFLAGS="$CFLAGS"
1611 CFLAGS="$MJPEG_CFLAGS"
1612 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1613 AC_CHECK_FUNC(mjpeg_loglev_t, [
1614 mjpegtools_api=10903
1616 mjpegtools_api=10900
1618 CFLAGS="$OLD_CFLAGS"
1626 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1627 [mjpegtools API evolution])
1629 dnl *** mpeg2enc ***
1630 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1631 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1633 dnl we require a c++ compiler for this one
1634 if [ test x$HAVE_CXX = xyes ]; then
1635 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1636 dnl since many distros include mjpegtools specifically without mplex
1637 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1638 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1639 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1641 dnl switch over to c++ to test things
1643 OLD_CPPFLAGS="$CPPFLAGS"
1645 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1646 CPPFLAGS="$CPPFLAGS_GOOD -I."
1648 mpeg2enc_headers_ok=no
1649 AC_CHECK_HEADER([mpeg2encoder.hh], [
1650 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1652 LIBS="$LIBS $MPEG2ENC_LIBS"
1653 AC_MSG_CHECKING([for valid mpeg2enc objects])
1654 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1655 #include <mpeg2encoder.hh>
1656 #include <mpeg2encoptions.hh>
1662 MPEG2EncOptions *options = new MPEG2EncOptions ();
1663 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1668 dnl so far so good, let's check more things:
1669 dnl mjpegtools-1.8.0 does not install the required
1670 dnl mpeg2syntaxcodes.h header by default, and a new release
1671 dnl is not in sight, so check for this oversight in case
1672 dnl distros or folks have fixed this themselves
1673 if test "$mjpegtools_api" -ge "10800"; then
1674 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1675 mpeg2enc_headers_ok=yes
1677 mpeg2enc_headers_ok=no
1680 mpeg2enc_headers_ok=yes
1682 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1685 CPPFLAGS="$CPPFLAGS_GOOD"
1686 AC_SUBST(MPEG2ENC_CFLAGS)
1687 AC_SUBST(MPEG2ENC_LIBS)
1694 CPPFLAGS="$OLD_CPPFLAGS"
1703 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1704 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1706 dnl we require a c++ compiler for this one
1707 if [ test x$HAVE_CXX = xyes ]; then
1708 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1709 dnl since many distros include mjpegtools specifically without mplex
1710 dnl and mpeg2enc, we check for mplex on its own, too.
1711 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1712 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1713 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1715 dnl switch over to c++ to test things
1717 OLD_CPPFLAGS="$CPPFLAGS"
1719 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1720 CPPFLAGS="$CPPFLAGS_GOOD -I."
1721 AC_CHECK_HEADER(interact.hpp, [
1722 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1724 LIBS="$LIBS $MPLEX_LIBS"
1725 OLD_LDFLAGS="$LDFLAGS"
1726 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1727 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1728 dnl don't want this here
1729 AC_MSG_CHECKING([for valid mplex objects])
1730 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1732 #include <interact.hpp>
1733 #include <outputstrm.hpp>
1734 #include <multiplexor.hpp>
1739 class TestOutputStream : public OutputStream {
1741 TestOutputStream () : OutputStream () { }
1742 void Write (uint8_t *a, unsigned int b) { }
1743 void NextSegment () { }
1744 uint64_t SegmentSize () { }
1748 MultiplexJob *job = new MultiplexJob ();
1749 vector<IBitStream *> inputs;
1750 job->SetupInputStreams (inputs);
1751 TestOutputStream *out = new TestOutputStream ();
1752 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1757 CPPFLAGS="$CPPFLAGS_GOOD"
1758 AC_SUBST(MPLEX_CFLAGS)
1759 AC_SUBST(MPLEX_LIBS)
1760 AC_SUBST(MPLEX_LDFLAGS)
1762 ],[AC_MSG_RESULT(no)],[])
1764 LDFLAGS="$OLD_LDFLAGS"
1766 CPPFLAGS="$OLD_CPPFLAGS"
1772 dnl *** musepack ***
1773 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1774 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1775 AC_CHECK_HEADER([mpc/mpcdec.h], [
1777 MUSEPACK_LIBS="-lmpcdec"
1778 AC_SUBST(MUSEPACK_LIBS)
1779 ], [HAVE_MUSEPACK="no"])
1783 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1784 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1785 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1788 AC_SUBST(NEON_CFLAGS)
1793 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1794 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1795 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1798 AC_SUBST(OFA_CFLAGS)
1803 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1804 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1805 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1808 AC_SUBST(OPENAL_CFLAGS)
1809 AC_SUBST(OPENAL_LIBS)
1813 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1814 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1815 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1816 dnl and don't want the build to break when a new opencv version comes out.
1817 dnl Need to adjust this upwards once we know that our code compiles fine with
1818 dnl a new version and the no-backward-compatibility define. (There doesn't
1819 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1821 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1824 OLD_CPPFLAGS=$CPPFLAGS
1825 CPPFLAGS=$OPENCV_CFLAGS
1826 something_not_found=no
1827 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1828 opencv2/calib3d.hpp \
1830 opencv2/imgproc.hpp \
1831 opencv2/objdetect.hpp \
1832 opencv2/opencv.hpp \
1834 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1836 CPPFLAGS=$OLD_CPPFLAGS
1839 if test $something_not_found = "yes"; then
1840 AC_MSG_RESULT([not all opencv2 headers were found])
1846 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [
1849 OLD_CPPFLAGS=$CPPFLAGS
1850 CPPFLAGS=$OPENCV_CFLAGS
1851 something_not_found=no
1852 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1853 opencv2/calib3d.hpp \
1855 opencv2/imgproc.hpp \
1856 opencv2/objdetect.hpp \
1857 opencv2/opencv.hpp \
1859 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1861 CPPFLAGS=$OLD_CPPFLAGS
1864 if test $something_not_found = "yes"; then
1865 AC_MSG_RESULT([not all opencv2 headers were found])
1874 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1875 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1876 AC_SUBST(OPENCV_PREFIX)
1877 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1878 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1879 AC_SUBST(OPENCV_PREFIX)
1880 AC_SUBST(OPENCV_CFLAGS)
1881 AC_SUBST(OPENCV_LIBS)
1882 dnl the OpenCV prefix is used at runtime for some object properties, and also
1883 dnl used here to detect which directory is the correct one. For the second
1884 dnl case, make sure the right sysroot is used, ensuring correct behavior
1885 dnl during cross compilation.
1886 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1887 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1889 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1894 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1895 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1896 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1899 dnl *** openh264 ***
1900 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1901 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1902 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1905 dnl *** OpenJPEG ***
1906 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1907 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1909 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1910 if test x"$HAVE_OPENJPEG" != x"yes"; then
1913 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1914 HAVE_OPENJPEG="yes",
1915 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1917 if test x"$HAVE_OPENJPEG" = x"yes"; then
1918 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1921 AC_SUBST(OPENJPEG_CFLAGS)
1922 AC_SUBST(OPENJPEG_LIBS)
1926 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1927 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1928 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1929 AC_SUBST(OPENMPT_CFLAGS)
1930 AC_SUBST(OPENMPT_LIBS)
1934 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1935 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1936 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1937 AC_SUBST(OPENNI2_CFLAGS)
1938 AC_SUBST(OPENNI2_LIBS)
1942 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1943 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1944 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1945 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1950 AC_SUBST(OPUS_CFLAGS)
1955 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1956 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
1957 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
1961 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1962 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1963 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1968 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1969 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1970 if test "x$HAVE_GST_GL" = "xyes"; then
1974 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1975 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1978 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
1979 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
1980 AC_CHECK_HEADER(vulkan/vulkan.h, [
1981 AC_CHECK_LIB(vulkan, vkCreateDevice, [
1982 VULKAN_LIBS="-lvulkan"
1983 AC_SUBST(VULKAN_LIBS)
1984 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
1987 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
1994 dnl *** teletextdec ***
1995 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1996 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1997 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2000 dnl *** wildmidi ***
2001 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2002 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2003 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2006 WILDMIDI_LIBS="-lWildMidi")
2009 if test "x$HAVE_WILDMIDI" = "xyes"; then
2010 AC_MSG_CHECKING([for wildmidi >= 4.0])
2011 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2012 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2013 #error "wildmidi too old"
2015 ]])], [ AC_MSG_RESULT(yes)
2018 WILDMIDI_LIBS=-lWildMidi
2019 ], [ AC_MSG_RESULT(no)
2023 AC_MSG_WARN([WildMidi library or development headers not found])
2025 AC_SUBST(WILDMIDI_CFLAGS)
2026 AC_SUBST(WILDMIDI_LIBS)
2029 dnl **** Smooth Streaming ****
2030 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2031 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2032 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2034 HAVE_SMOOTHSTREAMING="yes"],
2036 HAVE_SMOOTHSTREAMING="no"])
2037 AC_SUBST(LIBXML2_CFLAGS)
2038 AC_SUBST(LIBXML2_LIBS)
2042 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2043 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2044 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2045 AC_SUBST(SNDFILE_CFLAGS)
2046 AC_SUBST(SNDFILE_LIBS)
2049 dnl *** soundtouch ***
2050 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2051 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2052 dnl We only need -lBPM on soundtouch < 1.4
2053 dnl We check for libSoundTouch since Debian used it before upstream
2054 dnl added a pkgconfig file.
2055 HAVE_SOUNDTOUCH_1_4=yes
2056 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2057 [HAVE_SOUNDTOUCH=yes],
2058 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2059 [HAVE_SOUNDTOUCH=yes],
2060 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2061 [HAVE_SOUNDTOUCH=yes
2062 HAVE_SOUNDTOUCH_1_4=no
2063 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2064 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2065 [HAVE_SOUNDTOUCH=yes],
2066 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2067 [HAVE_SOUNDTOUCH=yes
2068 HAVE_SOUNDTOUCH_1_4=no
2069 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2070 HAVE_SOUNDTOUCH=no)])])])])
2071 AC_SUBST(SOUNDTOUCH_CFLAGS)
2072 AC_SUBST(SOUNDTOUCH_LIBS)
2073 if test "x$HAVE_CXX" != "xyes"; then
2074 USE_SOUNDTOUCH=false
2075 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2077 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2078 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2079 [Defined if the available libSoundTouch is >= 1.4])
2084 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2085 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2086 AC_CHECK_HEADER(gme/gme.h, [
2087 AC_CHECK_LIB(gme, gme_new_emu, [
2098 if test "x$HAVE_GME" = "xyes"; then
2099 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2100 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2106 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2107 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2108 AC_MSG_CHECKING([Checking for up to date dvb installation])
2109 AC_CHECK_HEADER(linux/dvb/version.h, [
2110 AC_MSG_CHECKING([for up-to-date dvb API])
2111 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2112 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2113 #error "Incompatible dvb API"
2115 ]])], [ AC_MSG_RESULT(yes)
2117 ], [ AC_MSG_RESULT(no)
2124 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2125 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2130 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2132 if test "$HAVE_VDPAU" = "no"; then
2133 saved_CPPFLAGS="$CPPFLAGS"
2134 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2136 if test -z "$HAVE_VDPAU_H"; then
2137 dnl Didn't find VDPAU header straight away.
2138 dnl Try /usr/include/nvidia. Need to clear caching vars first
2139 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2140 unset ac_cv_header_vdpau_vdpau_h
2141 unset ac_cv_header_vdpau_vdpau_x11_h
2142 VDPAU_CFLAGS="-I/usr/include/nvidia"
2143 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2144 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2145 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2148 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2150 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2151 dnl Found the headers - look for the lib
2152 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2154 LIBS="$VDPAU_LIBS $saved_LIBS"
2155 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2161 if test "$HAVE_VDPAU" = "yes"; then
2162 AC_MSG_NOTICE([Found up to date VDPAU installation])
2163 AC_SUBST(VDPAU_CFLAGS)
2164 AC_SUBST(VDPAU_LIBS)
2169 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2170 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2171 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2175 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2176 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2177 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2181 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2182 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2183 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2187 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2188 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2189 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2190 HAVE_SPANDSP="yes" ], [
2194 AC_SUBST(SPANDSP_CFLAGS)
2195 AC_SUBST(SPANDSP_LIBS)
2197 dnl *** hls-crypto ***
2198 AC_ARG_WITH([hls-crypto],
2199 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2200 which cryptographic library version to compile against for hls (default: auto)
2202 AS_CASE([$with_hls_crypto],
2206 [with_hls_crypto=auto]
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2213 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2214 AS_CASE([$with_hls_crypto],
2216 PKG_CHECK_MODULES(NETTLE, nettle, [
2217 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2219 ],[AC_MSG_ERROR([Could not find nettle library])])
2222 AM_PATH_LIBGCRYPT([1.2.0], [
2223 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2225 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2228 PKG_CHECK_MODULES(OPENSSL, openssl, [
2229 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2231 ],[AC_MSG_ERROR([Could not find openssl library])])
2234 dnl Try to find a valid crypto library
2235 PKG_CHECK_MODULES(NETTLE, nettle, [
2236 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2239 AM_PATH_LIBGCRYPT([1.2.0], [
2240 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2243 PKG_CHECK_MODULES(OPENSSL, openssl, [
2244 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2255 dnl *** x265 (H.265/HEVC encoder) ***
2256 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2257 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2258 AG_GST_PKG_CHECK_MODULES(X265, x265)
2261 dnl *** WebRTC Audio Processing ***
2262 dnl Note: We test for a specific version as there is no API stability
2263 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2264 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2266 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2268 # On Android, C++ headers comes with the STL implementation
2269 AS_CASE(["${host}"],
2272 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2273 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2274 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2276 AC_SUBST([WEBRTCDSP_CFLAGS])
2277 AC_SUBST([WEBRTCDSP_LIBS])
2280 old_CPPFLAGS=$CPPFLAGS
2281 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2282 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2283 CPPFLAGS=$old_CPPFLAGS
2288 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2289 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2290 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2291 HAVE_WEBRTC="yes" ], [
2297 translit(dnm, m, l) AM_CONDITIONAL(USE_WPE, true)
2298 AG_GST_CHECK_FEATURE(WPE, [WPE plug-in], wpe, [
2299 PKG_CHECK_MODULES(WPE, [ wpe-webkit-1.0 >= 2.24 wpebackend-fdo-1.0 egl xkbcommon ], [
2306 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2307 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2308 AC_CHECK_HEADER(usrsctp.h, [
2309 AC_CHECK_LIB(usrsctp, usrsctp_init, [
2310 USRSCTP_LIBS="-lusrsctp"
2311 AC_SUBST(USRSCTP_LIBS)
2323 dnl not building plugins with external dependencies,
2324 dnl but we still need to set the conditionals
2326 AM_CONDITIONAL(USE_ASSRENDER, false)
2327 AM_CONDITIONAL(USE_AOM, false)
2328 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2329 AM_CONDITIONAL(USE_VOAACENC, false)
2330 AM_CONDITIONAL(USE_BS2B, false)
2331 AM_CONDITIONAL(USE_BZ2, false)
2332 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2333 AM_CONDITIONAL(USE_CURL, false)
2334 AM_CONDITIONAL(USE_SSH2, false)
2335 AM_CONDITIONAL(USE_DASH, false)
2336 AM_CONDITIONAL(USE_DC1394, false)
2337 AM_CONDITIONAL(USE_DECKLINK, false)
2338 AM_CONDITIONAL(DECKLINK_OSX, false)
2339 AM_CONDITIONAL(DECKLINK_WIN, false)
2340 AM_CONDITIONAL(USE_DIRECTFB, false)
2341 AM_CONDITIONAL(USE_WAYLAND, false)
2342 AM_CONDITIONAL(USE_DTS, false)
2343 AM_CONDITIONAL(USE_EXIF, false)
2344 AM_CONDITIONAL(USE_RESINDVD, false)
2345 AM_CONDITIONAL(USE_FAAC, false)
2346 AM_CONDITIONAL(USE_FAAD, false)
2347 AM_CONDITIONAL(USE_FBDEV, false)
2348 AM_CONDITIONAL(USE_FDK_AAC, false)
2349 AM_CONDITIONAL(USE_FLITE, false)
2350 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2351 AM_CONDITIONAL(USE_GL, false)
2352 AM_CONDITIONAL(USE_GSM, false)
2353 AM_CONDITIONAL(USE_HLS, false)
2354 AM_CONDITIONAL(USE_IQA, false)
2355 AM_CONDITIONAL(USE_KATE, false)
2356 AM_CONDITIONAL(USE_KMS, false)
2357 AM_CONDITIONAL(USE_TIGER, false)
2358 AM_CONDITIONAL(USE_LADSPA, false)
2359 AM_CONDITIONAL(USE_LCMS2, false)
2360 AM_CONDITIONAL(USE_LV2, false)
2361 AM_CONDITIONAL(USE_LIBDE265, false)
2362 AM_CONDITIONAL(USE_LIBMMS, false)
2363 AM_CONDITIONAL(USE_MODPLUG, false)
2364 AM_CONDITIONAL(USE_MPEG2ENC, false)
2365 AM_CONDITIONAL(USE_MPLEX, false)
2366 AM_CONDITIONAL(USE_MUSEPACK, false)
2367 AM_CONDITIONAL(USE_NEON, false)
2368 AM_CONDITIONAL(USE_OFA, false)
2369 AM_CONDITIONAL(USE_OPENAL, false)
2370 AM_CONDITIONAL(USE_OPENCV, false)
2371 AM_CONDITIONAL(USE_OPENEXR, false)
2372 AM_CONDITIONAL(USE_OPENGL, false)
2373 AM_CONDITIONAL(USE_OPENJPEG, false)
2374 AM_CONDITIONAL(USE_OPENMPT, false)
2375 AM_CONDITIONAL(USE_OPENNI2, false)
2376 AM_CONDITIONAL(USE_OPUS, false)
2377 AM_CONDITIONAL(USE_PANGO, false)
2378 AM_CONDITIONAL(USE_WILDMIDI, false)
2379 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2380 AM_CONDITIONAL(USE_SNDFILE, false)
2381 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2382 AM_CONDITIONAL(USE_SPANDSP, false)
2383 AM_CONDITIONAL(USE_SRTP, false)
2384 AM_CONDITIONAL(USE_SRT, false)
2385 AM_CONDITIONAL(USE_GME, false)
2386 AM_CONDITIONAL(USE_DVB, false)
2387 AM_CONDITIONAL(USE_VDPAU, false)
2388 AM_CONDITIONAL(USE_SBC, false)
2389 AM_CONDITIONAL(USE_ZBAR, false)
2390 AM_CONDITIONAL(USE_RSVG, false)
2391 AM_CONDITIONAL(USE_RTMP, false)
2392 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2393 AM_CONDITIONAL(USE_UVCH264, false)
2394 AM_CONDITIONAL(USE_WEBP, false)
2395 AM_CONDITIONAL(USE_WEBRTC, false)
2396 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2397 AM_CONDITIONAL(USE_OPENH264, false)
2398 AM_CONDITIONAL(USE_X265, false)
2399 AM_CONDITIONAL(USE_DTLS, false)
2400 AM_CONDITIONAL(USE_VULKAN, false)
2401 AM_CONDITIONAL(USE_TTML, false)
2402 AM_CONDITIONAL(USE_SCTP, false)
2404 fi dnl of EXT plugins
2406 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2409 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2410 dnl GST_*: flags shared by built objects to link against GStreamer
2411 dnl GST_ALL_LDFLAGS: linker flags shared by all
2412 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2413 dnl GST_LT_LDFLAGS: library versioning of our libraries
2414 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2416 dnl GST_OPTION_CFLAGS
2417 if test "x$USE_DEBUG" = xyes; then
2420 AC_SUBST(PROFILE_CFLAGS)
2422 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2423 dnl Define _only_ during CVS (not pre-releases or releases)
2424 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2426 DEPRECATED_CFLAGS=""
2428 AC_SUBST(DEPRECATED_CFLAGS)
2430 VISIBILITY_CFLAGS=""
2431 AS_COMPILER_FLAG([-fvisibility=hidden], [
2432 VISIBILITY_CFLAGS="-fvisibility=hidden"
2433 AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2435 VISIBILITY_CFLAGS=""
2436 AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2438 AC_SUBST(VISIBILITY_CFLAGS)
2440 VISIBILITY_CXXFLAGS=""
2441 if test "x$HAVE_CXX" = "xyes"; then
2442 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2444 AC_SUBST(VISIBILITY_CXXFLAGS)
2446 dnl disable strict aliasing
2447 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2448 AC_SUBST(EXTRA_CFLAGS)
2450 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2451 dnl at make time with e.g. make ERROR_CFLAGS=""
2452 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2453 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2454 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2455 AC_SUBST(GST_OPTION_CFLAGS)
2456 AC_SUBST(GST_OPTION_CXXFLAGS)
2457 AC_SUBST(GST_OPTION_OBJCFLAGS)
2459 dnl FIXME: do we want to rename to GST_ALL_* ?
2460 dnl prefer internal headers to already installed ones
2461 dnl also add builddir include for enumtypes and marshal
2462 dnl add GST_OPTION_CFLAGS, but overridable
2463 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2464 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2465 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2466 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2467 AC_SUBST(GST_CFLAGS)
2468 AC_SUBST(GST_CXXFLAGS)
2469 AC_SUBST(GST_OBJCFLAGS)
2471 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2472 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2473 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2474 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2475 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2476 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2478 dnl LDFLAGS really should only contain flags, not libs - they get added before
2479 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2480 GST_ALL_LDFLAGS="-no-undefined"
2481 if test "x${enable_Bsymbolic}" = "xyes"; then
2482 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2484 AC_SUBST(GST_ALL_LDFLAGS)
2487 dnl linker flags shared by all libraries
2488 dnl LDFLAGS modifier defining exported symbols from built libraries
2489 dnl (export _gst_foo but not __gst_foo)
2491 AC_SUBST(GST_LIB_LDFLAGS)
2493 dnl this really should only contain flags, not libs - they get added before
2494 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2495 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2496 AC_SUBST(GST_PLUGIN_LDFLAGS)
2498 dnl *** output files ***
2500 $MKDIR_P tests/check/orc
2509 gst/accurip/Makefile
2510 gst/adpcmdec/Makefile
2511 gst/adpcmenc/Makefile
2513 gst/videoframe_audiolevel/Makefile
2515 gst/audiobuffersplit/Makefile
2516 gst/audiofxbad/Makefile
2517 gst/audiolatency/Makefile
2518 gst/audiomixmatrix/Makefile
2519 gst/audiovisualizers/Makefile
2520 gst/autoconvert/Makefile
2522 gst/camerabin2/Makefile
2523 gst/coloreffects/Makefile
2524 gst/debugutils/Makefile
2525 gst/dvbsuboverlay/Makefile
2527 gst/faceoverlay/Makefile
2528 gst/festival/Makefile
2529 gst/fieldanalysis/Makefile
2530 gst/freeverb/Makefile
2532 gst/gaudieffects/Makefile
2533 gst/geometrictransform/Makefile
2537 gst/interlace/Makefile
2538 gst/ivfparse/Makefile
2540 gst/jp2kdecimator/Makefile
2541 gst/jpegformat/Makefile
2544 gst/mpegdemux/Makefile
2545 gst/mpegtsdemux/Makefile
2546 gst/mpegtsmux/Makefile
2547 gst/mpegtsmux/tsmux/Makefile
2548 gst/mpegpsmux/Makefile
2552 gst/pcapparse/Makefile
2555 gst/rawparse/Makefile
2556 gst/removesilence/Makefile
2560 gst/segmentclip/Makefile
2565 gst/timecode/Makefile
2566 gst/videofilters/Makefile
2567 gst/videoparsers/Makefile
2568 gst/videosignal/Makefile
2573 gst-libs/gst/Makefile
2574 gst-libs/gst/adaptivedemux/Makefile
2575 gst-libs/gst/basecamerabinsrc/Makefile
2576 gst-libs/gst/insertbin/Makefile
2577 gst-libs/gst/interfaces/Makefile
2578 gst-libs/gst/isoff/Makefile
2579 gst-libs/gst/codecparsers/Makefile
2580 gst-libs/gst/mpegts/Makefile
2581 gst-libs/gst/sctp/Makefile
2582 gst-libs/gst/uridownloader/Makefile
2583 gst-libs/gst/wayland/Makefile
2584 gst-libs/gst/webrtc/Makefile
2585 gst-libs/gst/player/Makefile
2586 gst-libs/gst/audio/Makefile
2587 gst-libs/gst/opencv/Makefile
2589 sys/dshowdecwrapper/Makefile
2590 sys/androidmedia/Makefile
2591 sys/applemedia/Makefile
2593 sys/d3dvideosink/Makefile
2594 sys/decklink/Makefile
2595 sys/directsound/Makefile
2596 sys/dshowsrcwrapper/Makefile
2597 sys/dshowvideosink/Makefile
2600 sys/ipcpipeline/Makefile
2605 sys/opensles/Makefile
2607 sys/tinyalsa/Makefile
2608 sys/uvch264/Makefile
2612 sys/winscreencap/Makefile
2614 tests/check/Makefile
2615 tests/files/Makefile
2616 tests/examples/Makefile
2617 tests/examples/avsamplesink/Makefile
2618 tests/examples/camerabin2/Makefile
2619 tests/examples/codecparsers/Makefile
2620 tests/examples/directfb/Makefile
2621 tests/examples/audiomixmatrix/Makefile
2622 tests/examples/ipcpipeline/Makefile
2623 tests/examples/mpegts/Makefile
2624 tests/examples/mxf/Makefile
2625 tests/examples/opencv/Makefile
2626 tests/examples/uvch264/Makefile
2627 tests/examples/waylandsink/Makefile
2628 tests/examples/webrtc/Makefile
2629 tests/icles/Makefile
2630 ext/voamrwbenc/Makefile
2631 ext/voaacenc/Makefile
2632 ext/assrender/Makefile
2636 ext/chromaprint/Makefile
2637 ext/closedcaption/Makefile
2638 ext/colormanagement/Makefile
2642 ext/directfb/Makefile
2643 ext/wayland/Makefile
2649 ext/fluidsynth/Makefile
2656 ext/libde265/Makefile
2659 ext/modplug/Makefile
2660 ext/mpeg2enc/Makefile
2662 ext/musepack/Makefile
2667 ext/openexr/Makefile
2668 ext/openh264/Makefile
2669 ext/openjpeg/Makefile
2670 ext/openmpt/Makefile
2671 ext/openni2/Makefile
2674 ext/resindvd/Makefile
2678 ext/smoothstreaming/Makefile
2679 ext/sndfile/Makefile
2680 ext/soundtouch/Makefile
2681 ext/spandsp/Makefile
2684 ext/teletextdec/Makefile
2686 ext/wildmidi/Makefile
2688 ext/vulkan/xcb/Makefile
2689 ext/vulkan/wayland/Makefile
2695 ext/webrtcdsp/Makefile
2700 pkgconfig/gstreamer-plugins-bad.pc
2701 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2702 pkgconfig/gstreamer-codecparsers.pc
2703 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2704 pkgconfig/gstreamer-insertbin.pc
2705 pkgconfig/gstreamer-insertbin-uninstalled.pc
2706 pkgconfig/gstreamer-mpegts.pc
2707 pkgconfig/gstreamer-mpegts-uninstalled.pc
2708 pkgconfig/gstreamer-player.pc
2709 pkgconfig/gstreamer-player-uninstalled.pc
2710 pkgconfig/gstreamer-sctp.pc
2711 pkgconfig/gstreamer-sctp-uninstalled.pc
2712 pkgconfig/gstreamer-wayland.pc
2713 pkgconfig/gstreamer-wayland-uninstalled.pc
2714 pkgconfig/gstreamer-webrtc.pc
2715 pkgconfig/gstreamer-webrtc-uninstalled.pc
2716 pkgconfig/gstreamer-bad-audio.pc
2717 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2724 AG_GST_OUTPUT_PLUGINS