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(sdp)
479 AG_GST_CHECK_PLUGIN(segmentclip)
480 AG_GST_CHECK_PLUGIN(siren)
481 AG_GST_CHECK_PLUGIN(smooth)
482 AG_GST_CHECK_PLUGIN(speed)
483 AG_GST_CHECK_PLUGIN(subenc)
484 AG_GST_CHECK_PLUGIN(timecode)
485 AG_GST_CHECK_PLUGIN(videofilters)
486 AG_GST_CHECK_PLUGIN(videoparsers)
487 AG_GST_CHECK_PLUGIN(videosignal)
488 AG_GST_CHECK_PLUGIN(vmnc)
489 AG_GST_CHECK_PLUGIN(y4m)
490 AG_GST_CHECK_PLUGIN(yadif)
492 dnl *** plug-ins to exclude ***
494 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
495 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
496 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
498 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
500 LIBS="$LIBS -framework VideoToolbox"
501 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
502 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
508 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
509 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
510 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
513 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
514 if test "x$HAVE_IOS" = "xyes"; then
515 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
518 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
519 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
520 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
523 dnl disable gst plugins we might not be able to build on this
524 dnl platform: (ugly but minimally invasive)
525 dnl FIXME: maybe move to sys, or make work with winsock2
526 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
527 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
529 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
530 WINSOCK2_LIBS="-lws2_32"
531 AC_SUBST(WINSOCK2_LIBS)
535 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
536 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
538 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
539 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
540 VULKAN_CONFIG_DEFINES="
541 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
542 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
544 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
545 outfile=vkconfig.h-tmp
546 cat > $outfile <<\_______EOF
549 * This is a generated file. Please modify `configure.ac'
552 #ifndef __GST_VULKAN_CONFIG_H__
553 #define __GST_VULKAN_CONFIG_H__
561 cat >>$outfile <<_______EOF
562 $vulkan_config_defines
565 cat >>$outfile <<_______EOF
569 #endif /* __GST_VULKAN_CONFIG_H__ */
573 if cmp -s $outfile ext/vulkan/vkconfig.h; then
574 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
577 mv $outfile ext/vulkan/vkconfig.h
580 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
583 dnl *** sys plug-ins ***
586 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
587 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
588 HAVE_DIRECTSOUND="no"
589 save_CFLAGS="$CFLAGS"
590 save_LDFLAGS="$LDFLAGS"
592 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
593 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
594 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
595 AC_MSG_CHECKING(for DirectSound LDFLAGS)
596 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
600 #include <mmsystem.h>
602 DXGetErrorString9 (0);
603 DirectSoundCreate(NULL, NULL, NULL);
605 [HAVE_DIRECTSOUND="yes"],
606 [HAVE_DIRECTSOUND="no"])
607 AC_MSG_RESULT($HAVE_DIRECTSOUND)
609 LDFLAGS=$save_LDFLAGS
612 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
613 dnl this is much more than we want
614 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
615 AC_SUBST(DIRECTX_CFLAGS)
616 AC_SUBST(DIRECTX_LDFLAGS)
617 AC_SUBST(DIRECTSOUND_LIBS)
619 AC_SUBST(HAVE_DIRECTSOUND)
623 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
624 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
626 save_CFLAGS="$CFLAGS"
627 save_LDFLAGS="$LDFLAGS"
629 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
630 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
631 LIBS="$LIBS -lole32 -lwinmm -lksuser"
632 AC_MSG_CHECKING(for WASAPI LDFLAGS)
633 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
636 #include <mmsystem.h>
637 #include <mmdeviceapi.h>
643 hr = CoInitialize(NULL);
645 printf("CoInitialize failed: hr = 0x%08x", hr);
650 // result = do_everything(argc, argv);
658 AC_MSG_RESULT($HAVE_WASAPI)
660 LDFLAGS=$save_LDFLAGS
663 if test "x$HAVE_WASAPI" = "xyes"; then
664 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
665 AC_SUBST(WASAPI_LIBS)
667 AC_SUBST(HAVE_WASAPI)
671 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
672 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
674 save_CFLAGS="$CFLAGS"
675 save_LDFLAGS="$LDFLAGS"
677 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
678 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
679 LIBS="$LIBS -ld3d9 -lgdi32"
680 AC_MSG_CHECKING(for Direct3D LDFLAGS)
681 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
685 Direct3DCreate9(D3D_SDK_VERSION);
687 [HAVE_DIRECT3D="yes"],
688 [HAVE_DIRECT3D="no"])
689 AC_MSG_RESULT($HAVE_DIRECT3D)
691 LDFLAGS=$save_LDFLAGS
694 if test "x$HAVE_DIRECT3D" = "xyes"; then
695 DIRECT3D_LIBS="-ld3d9 -lgdi32"
696 AC_SUBST(DIRECT3D_LIBS)
698 AC_SUBST(HAVE_DIRECT3D)
702 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
703 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
704 HAVE_WINSCREENCAP="no"
705 save_CFLAGS="$CFLAGS"
706 save_LDFLAGS="$LDFLAGS"
708 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
709 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
710 LIBS="$LIBS -ld3d9 -lgdi32"
711 AC_MSG_CHECKING(for Direct3D LDFLAGS)
712 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
716 Direct3DCreate9(D3D_SDK_VERSION);
718 [HAVE_WINSCREENCAP="yes"],
719 [HAVE_WINSCREENCAP="no"])
720 AC_MSG_RESULT($HAVE_WINSCREENCAP)
722 LDFLAGS=$save_LDFLAGS
725 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
726 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
727 AC_SUBST(WINSCREENCAP_LIBS)
729 AC_SUBST(HAVE_WINSCREENCAP)
733 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
734 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
736 save_CFLAGS="$CFLAGS"
737 save_LDFLAGS="$LDFLAGS"
739 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
740 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
741 LIBS="$LIBS -lole32 -luuid -lstrmiids"
742 AC_MSG_CHECKING(for Winks LDFLAGS)
743 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
749 IGraphBuilder *pGraph = NULL;
750 HRESULT hr = CoInitialize(NULL);
751 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
752 &IID_IGraphBuilder, (void **)&pGraph);
759 AC_MSG_RESULT($HAVE_WINKS)
761 LDFLAGS=$save_LDFLAGS
764 if test "x$HAVE_WINKS" = "xyes"; then
765 dnl this is much more than we want
766 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
767 AC_SUBST(DIRECTX_CFLAGS)
768 AC_SUBST(DIRECTX_LDFLAGS)
774 dnl *** Android Media ***
775 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
776 HAVE_ANDROID_MEDIA="no"
777 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
780 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
783 HAVE_ANDROID_MEDIA="no"
788 dnl *** AppleMedia (OS X and iOS) ***
789 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
790 HAVE_APPLE_MEDIA="no"
791 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
792 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
793 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
794 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
795 if test "x$HAVE_IOS" = "xno"; then
796 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
800 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
805 HAVE_APPLE_MEDIA="no"
810 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
811 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
812 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
813 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
814 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
816 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
825 dnl *** OS/X AVCVideoServices ***
826 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
828 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
830 save_CPPFLAGS="$CPPFLAGS"
831 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
833 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
834 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
836 CPPFLAGS=$save_CPPFLAGS
839 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
848 dnl check for shm_open (for shm plugin)
849 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
850 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
851 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
853 *-darwin* | *-macos10*)
854 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
861 AC_CHECK_LIB([rt], [shm_open],
862 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
863 #include <sys/socket.h>
866 AC_SUBST(SHM_LIBS, "-lrt")
874 dnl check for unix sockets (ipcpipeline plugin)
875 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
876 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
877 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
878 AC_CHECK_FUNC(pipe, [
879 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
888 dnl check for OpenSL ES
889 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
890 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
891 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
895 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
896 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
897 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
898 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
899 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
902 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
903 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
906 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
907 test "x$HAVE_GUDEV" = "xyes" && \
908 test "x$HAVE_LIBUSB" = "xyes"; then
914 AC_SUBST(LIBUDEV_CFLAGS)
915 AC_SUBST(LIBUDEV_LIBS)
916 AC_SUBST(LIBUSB_CFLAGS)
917 AC_SUBST(LIBUSB_LIBS)
920 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
921 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
922 AC_ARG_WITH([cuda-prefix],
923 AS_HELP_STRING([--with-cuda-prefix],
924 [Use the provided prefix for detecting the cuda installation]),
925 [AS_IF([test "x$with_cuda_prefix" != "x"],
926 [CUDA_PREFIX="$with_cuda_prefix"])],
930 if test "x$CUDA_PREFIX" != "x"; then
931 dnl only override if not already set
932 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
933 dnl this is an educated guess, user can always override these
934 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
935 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
938 PKG_CHECK_MODULES([CUDA], [cuda-10.1 cudart-10.1],, [
939 PKG_CHECK_MODULES([CUDA], [cuda-10.0 cudart-10.0],, [
940 PKG_CHECK_MODULES([CUDA], [cuda-9.2 cudart-9.2],, [
941 PKG_CHECK_MODULES([CUDA], [cuda-9.1 cudart-9.1],, [
942 PKG_CHECK_MODULES([CUDA], [cuda-9.0 cudart-9.0],, [
943 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
944 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
945 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
946 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
947 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])])])])])])
952 save_CPPFLAGS="$CPPFLAGS"
953 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
954 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
955 AC_MSG_WARN([Could not find cuda.h]))
956 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
957 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
958 CPPFLAGS=$save_CPPFLAGS
960 dnl libcuda and libcudart libraries
962 LIBS="$CUDA_LIBS $save_LIBS"
964 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
965 AC_MSG_WARN([Could not find cudart library])])
967 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
968 AC_MSG_WARN([Could not find cuda library])])
973 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
974 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
975 save_CPPFLAGS="$CPPFLAGS"
976 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
977 CPPFLAGS=$save_CPPFLAGS
981 LIBS="$CUDA_LIBS $save_LIBS"
982 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
983 AC_MSG_WARN([Could not find library nvcuvid]))
986 if test "x$HAVE_NVCUVID" = "xyes"; then
994 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
995 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
996 dnl libnvnidia-encode library
998 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1000 LIBS="$NVENCODE_LIBS $saved_LIBS"
1001 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1002 AC_MSG_WARN([Could not find library nvidia-encode]))
1003 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1004 AC_SUBST(NVENCODE_LIBS)
1008 if test "x$HAVE_CUDA_H" = "xyes" \
1009 -a "x$HAVE_CUDART_H" = "xyes" \
1010 -a "x$HAVE_CUDA_LIB" = "xyes" \
1011 -a "x$HAVE_CUDART_LIB" = "xyes" \
1012 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1014 if test "x$GST_GL_HAVE_API_GL" = "x1"; then
1015 dnl cuda-gl interop header
1016 save_CPPFLAGS="$CPPFLAGS"
1017 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1018 AC_CHECK_HEADER([cuda_gl_interop.h], [
1019 USE_NVENC_GST_GL="yes"
1020 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1022 CPPFLAGS="$save_CPPFLAGS"
1028 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1030 dnl check for tinyalsa
1031 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1032 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1033 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1036 dnl check for intel mediasdk
1037 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1038 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1039 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1040 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1041 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1044 PKG_CHECK_MODULES(LIBMFX, libmfx,
1046 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1048 dnl external msdk dispatchers sometimes install headers into prefix/mfx/
1049 save_CPPFLAGS="$CPPFLAGS"
1050 CPPFLAGS="$LIBMFX_CFLAGS $save_CPPFLAGS"
1051 AC_CHECK_HEADER(mfx/mfxdefs.h, [HAVE_MFX_MFXDEFS_H=1], [HAVE_MFX_MFXDEFS_H=0])
1052 if test $HAVE_MFX_MFXDEFS_H -eq 1; then
1053 MFX_INCDIR="`$PKG_CONFIG --variable=includedir libmfx`"
1054 MSDK_CFLAGS="-I$MFX_INCDIR/mfx"
1055 AC_SUBST(MSDK_CFLAGS)
1057 CPPFLAGS="$save_CPPFLAGS"
1059 AC_ARG_WITH([msdk-prefix],
1060 AS_HELP_STRING([--with-msdk-prefix],
1061 [Use the provided prefix for detecting the Intel MediaSDK]),
1062 [AS_IF([test "x$with_msdk_prefix" != "x"],
1063 [MSDK_PREFIX="$with_msdk_prefix"])],
1064 [AS_IF([test "x$MFX_HOME" != "x"],
1065 [MSDK_PREFIX="$MFX_HOME"],
1066 [MSDK_PREFIX="/opt/intel/media"])])
1067 MSDK_CFLAGS="-I$MSDK_PREFIX/include -I$MSDK_PREFIX/include/mfx"
1068 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -L$MSDK_PREFIX/lib/x64 -L$MSDK_PREFIX/lib64 -L$MSDK_PREFIX/lib -lmfx -ldl"
1069 AC_SUBST(MSDK_CFLAGS)
1072 save_CPPFLAGS="$CPPFLAGS"
1073 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1074 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1075 CPPFLAGS="$save_CPPFLAGS"
1078 LIBS="$MSDK_LIBS $LIBS"
1080 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1084 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1085 -a "x$HAVE_MFX_LIB" = "xyes"; then
1092 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1094 if test "x$HAVE_GUDEV" = "xyes" \
1095 -a "x$HAVE_MSDK" = "xyes" \
1096 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1102 dnl check the availability of vp9 apis
1104 save_CPPFLAGS="$CPPFLAGS"
1105 CPPFLAGS="$LIBMFX_CFLAGS $MSDK_CFLAGS $save_CPPFLAGS"
1106 AC_CHECK_HEADER(mfxvp9.h, [HAVE_MFXVP9_H=1], [HAVE_MFXVP9_H=0],
1108 #include <mfxplugin.h>
1111 if test $HAVE_MFXVP9_H -eq 1; then
1113 AC_DEFINE(USE_MSDK_VP9_DEC, 1, [Define if MediaSDK VP9 decoder api is available])
1115 ], [USE_MSDK_VP9_DEC=0])
1116 AM_CONDITIONAL(USE_MSDK_LIBVA,
1117 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1118 AM_CONDITIONAL([USE_MSDK_VP9_DEC],
1119 [test $USE_MSDK_VP9_DEC -eq 1])
1121 dnl *** ext plug-ins ***
1122 dnl keep this list sorted alphabetically !
1124 if test "x$BUILD_EXTERNAL" = "xyes"; then
1126 dnl *** assrender ***
1127 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1128 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1129 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1130 HAVE_ASSRENDER="yes" ], [
1134 AC_SUBST(ASSRENDER_CFLAGS)
1135 AC_SUBST(ASSRENDER_LIBS)
1138 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1139 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1140 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1143 dnl *** vo-amrwbenc ***
1144 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1145 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1146 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1149 dnl *** vo-aacenc ***
1150 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1151 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1152 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1156 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1157 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1158 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1161 AC_SUBST(BS2B_CFLAGS)
1166 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1167 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1170 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1171 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1172 AC_MSG_RESULT($HAVE_BZ2)
1174 if test "x$HAVE_BZ2" = "xyes"; then
1182 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1183 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1184 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1187 # AC_SUBST(CAIRO_CFLAGS)
1188 # AC_SUBST(CAIRO_LIBS)
1191 dnl *** chromaprint ***
1192 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1193 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1194 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1195 HAVE_CHROMAPRINT="no"
1197 AC_SUBST(CHROMAPRINT_CFLAGS)
1198 AC_SUBST(CHROMAPRINT_LIBS)
1202 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1203 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1204 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1206 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1207 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1209 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1210 [[#ifdef HAVE_SYS_TYPES_H
1211 # include <sys/types.h>
1213 #ifdef HAVE_NETINET_IN_H
1214 # include <netinet/in.h>
1217 AC_MSG_CHECKING([for socket support needed by curlsink])
1218 AC_MSG_RESULT($HAVE_CURL)
1222 AC_SUBST(CURL_CFLAGS)
1224 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1226 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1230 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1231 AC_SUBST(SSH2_CFLAGS)
1233 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1236 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1237 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1238 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1239 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1241 AC_SUBST(LIBXML2_CFLAGS)
1242 AC_SUBST(LIBXML2_LIBS)
1246 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1247 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1248 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1249 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1258 AC_SUBST(LIBDC1394_CFLAGS)
1259 AC_SUBST(LIBDC1394_LIBS)
1262 dnl *** decklink ***
1263 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1264 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1271 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1272 AC_CHECK_LIB(dl, dlopen,
1276 DECKLINK_LIBS="-lpthread -ldl"
1281 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1282 AC_CHECK_LIB(dl, dlopen,
1286 DECKLINK_LIBS="-lpthread -ldl"
1287 HAVE_DECKLINK_OSX=yes
1294 DECKLINK_LIBS="-lole32 -loleaut32"
1295 HAVE_DECKLINK_WIN=yes
1302 AC_SUBST(DECKLINK_CXXFLAGS)
1303 AC_SUBST(DECKLINK_LIBS)
1305 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1306 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1308 dnl **** DirectFB ****
1309 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1310 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1311 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1316 dnl **** Wayland ****
1317 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1318 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1319 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1320 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.11.0 libdrm >= 2.4.55 wayland-protocols >= 1.15, [
1321 if test "x$wayland_scanner" != "x"; then
1323 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1325 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1334 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1335 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1336 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1337 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1339 AC_SUBST(WEBP_CFLAGS)
1344 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1345 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1347 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1348 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1349 if test $HAVE_DTS = "no"; then
1350 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1351 [ DTS_LIBS="-ldts_pic $LIBM"
1352 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1358 dnl *** resindvd ***
1359 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1360 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1361 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1366 dnl **** Free AAC Encoder (FAAC) ****
1367 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1368 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1369 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1370 FAAC_LIBS="-lfaac $LIBM")
1374 dnl **** Free AAC Decoder (FAAD2) ****
1375 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1376 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1377 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1378 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1379 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1381 #elif !defined(LATM)
1382 #error Not faad2 >= 2.7
1388 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1398 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1399 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1400 if test "x$HAVE_FBDEV" != "xyes"; then
1401 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1406 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1407 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1408 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1410 PKG_CHECK_EXISTS(fdk-aac >= 2.0.0, [
1411 AC_DEFINE(HAVE_FDK_AAC_2_0_0, 1, [Define if we have fdk-aac >= 2.0.0])
1414 PKG_CHECK_EXISTS(fdk-aac >= 0.1.4, [
1415 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1420 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1421 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1422 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1423 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1425 AC_SUBST(FLITE_CFLAGS)
1426 AC_SUBST(FLITE_LIBS)
1430 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1431 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1432 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1433 if test $HAVE_GSM != "yes"; then
1434 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1435 if test $HAVE_GSM = "yes"; then
1436 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1442 dnl *** fluidSynth ***
1443 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1444 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1445 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1446 HAVE_FLUIDSYNTH="no"
1451 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1452 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1453 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1456 AC_SUBST(KATE_CFLAGS)
1458 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1461 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1467 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1468 AC_SUBST(TIGER_CFLAGS)
1469 AC_SUBST(TIGER_LIBS)
1470 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1473 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1474 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1475 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1476 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1480 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1481 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1482 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1484 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1485 if test $HAVE_LRDF = "yes"; then
1486 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1489 AC_SUBST(LRDF_CFLAGS)
1493 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1494 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1495 PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1498 AC_SUBST(LCMS2_LIBS)
1502 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1503 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1504 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1506 HAVE_LILV_0_22="yes"
1507 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1509 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1511 AC_SUBST(LILV_CFLAGS)
1515 dnl *** libde265 ***
1516 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1517 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1518 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1519 AC_SUBST(LIBDE265_CFLAGS)
1520 AC_SUBST(LIBDE265_LIBS)
1524 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1525 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1526 dnl check with pkg-config first
1527 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1531 AC_SUBST(LIBMMS_LIBS)
1534 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1535 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1536 PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1538 AC_SUBST(SRT_CFLAGS)
1542 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1543 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1545 AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1546 if test x"$HAVE_SRTP" = x"yes"; then
1547 AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1549 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1550 AG_GST_CHECK_LIBHEADER(SRTP, srtp, crypto_policy_set_aes_gcm_128_16_auth, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1554 AC_SUBST(SRTP_CFLAGS)
1558 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1559 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1560 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
1562 AC_SUBST(DTLS_CFLAGS)
1570 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1571 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1572 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1580 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1581 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1582 if test "x$HAVE_CXX" != "xyes"; then
1583 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1586 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1588 AC_SUBST(MODPLUG_CFLAGS)
1589 AC_SUBST(MODPLUG_LIBS)
1592 dnl *** mjpegtools version info ***
1593 dnl some may prefer older version (given quirks above)
1594 dnl hm, no version info seems available within mjpegtools headers
1595 dnl and API really moves along
1597 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1598 mjpegtools_api=10601
1600 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1601 mjpegtools_api=10800
1603 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1604 mjpegtools_api=20000
1606 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1607 dnl logging API changed in release candidates
1608 OLD_CFLAGS="$CFLAGS"
1610 CFLAGS="$MJPEG_CFLAGS"
1611 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1612 AC_CHECK_FUNC(mjpeg_loglev_t, [
1613 mjpegtools_api=10903
1615 mjpegtools_api=10900
1617 CFLAGS="$OLD_CFLAGS"
1625 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1626 [mjpegtools API evolution])
1628 dnl *** mpeg2enc ***
1629 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1630 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1632 dnl we require a c++ compiler for this one
1633 if [ test x$HAVE_CXX = xyes ]; then
1634 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1635 dnl since many distros include mjpegtools specifically without mplex
1636 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1637 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1638 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1640 dnl switch over to c++ to test things
1642 OLD_CPPFLAGS="$CPPFLAGS"
1644 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1645 CPPFLAGS="$CPPFLAGS_GOOD -I."
1647 mpeg2enc_headers_ok=no
1648 AC_CHECK_HEADER([mpeg2encoder.hh], [
1649 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1651 LIBS="$LIBS $MPEG2ENC_LIBS"
1652 AC_MSG_CHECKING([for valid mpeg2enc objects])
1653 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1654 #include <mpeg2encoder.hh>
1655 #include <mpeg2encoptions.hh>
1661 MPEG2EncOptions *options = new MPEG2EncOptions ();
1662 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1667 dnl so far so good, let's check more things:
1668 dnl mjpegtools-1.8.0 does not install the required
1669 dnl mpeg2syntaxcodes.h header by default, and a new release
1670 dnl is not in sight, so check for this oversight in case
1671 dnl distros or folks have fixed this themselves
1672 if test "$mjpegtools_api" -ge "10800"; then
1673 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1674 mpeg2enc_headers_ok=yes
1676 mpeg2enc_headers_ok=no
1679 mpeg2enc_headers_ok=yes
1681 if test "x$mpeg2enc_headers_ok" = "xyes"; then
1684 CPPFLAGS="$CPPFLAGS_GOOD"
1685 AC_SUBST(MPEG2ENC_CFLAGS)
1686 AC_SUBST(MPEG2ENC_LIBS)
1693 CPPFLAGS="$OLD_CPPFLAGS"
1702 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1703 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1705 dnl we require a c++ compiler for this one
1706 if [ test x$HAVE_CXX = xyes ]; then
1707 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1708 dnl since many distros include mjpegtools specifically without mplex
1709 dnl and mpeg2enc, we check for mplex on its own, too.
1710 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1711 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1712 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1714 dnl switch over to c++ to test things
1716 OLD_CPPFLAGS="$CPPFLAGS"
1718 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1719 CPPFLAGS="$CPPFLAGS_GOOD -I."
1720 AC_CHECK_HEADER(interact.hpp, [
1721 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1723 LIBS="$LIBS $MPLEX_LIBS"
1724 OLD_LDFLAGS="$LDFLAGS"
1725 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1726 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1727 dnl don't want this here
1728 AC_MSG_CHECKING([for valid mplex objects])
1729 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1731 #include <interact.hpp>
1732 #include <outputstrm.hpp>
1733 #include <multiplexor.hpp>
1738 class TestOutputStream : public OutputStream {
1740 TestOutputStream () : OutputStream () { }
1741 void Write (uint8_t *a, unsigned int b) { }
1742 void NextSegment () { }
1743 uint64_t SegmentSize () { }
1747 MultiplexJob *job = new MultiplexJob ();
1748 vector<IBitStream *> inputs;
1749 job->SetupInputStreams (inputs);
1750 TestOutputStream *out = new TestOutputStream ();
1751 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1756 CPPFLAGS="$CPPFLAGS_GOOD"
1757 AC_SUBST(MPLEX_CFLAGS)
1758 AC_SUBST(MPLEX_LIBS)
1759 AC_SUBST(MPLEX_LDFLAGS)
1761 ],[AC_MSG_RESULT(no)],[])
1763 LDFLAGS="$OLD_LDFLAGS"
1765 CPPFLAGS="$OLD_CPPFLAGS"
1771 dnl *** musepack ***
1772 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1773 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1774 AC_CHECK_HEADER([mpc/mpcdec.h], [
1776 MUSEPACK_LIBS="-lmpcdec"
1777 AC_SUBST(MUSEPACK_LIBS)
1778 ], [HAVE_MUSEPACK="no"])
1782 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1783 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1784 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1787 AC_SUBST(NEON_CFLAGS)
1792 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1793 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1794 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1797 AC_SUBST(OFA_CFLAGS)
1802 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1803 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1804 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1807 AC_SUBST(OPENAL_CFLAGS)
1808 AC_SUBST(OPENAL_LIBS)
1812 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1813 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1814 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1815 dnl and don't want the build to break when a new opencv version comes out.
1816 dnl Need to adjust this upwards once we know that our code compiles fine with
1817 dnl a new version and the no-backward-compatibility define. (There doesn't
1818 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1820 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0 opencv < 3.5.0] , [
1823 OLD_CPPFLAGS=$CPPFLAGS
1824 CPPFLAGS=$OPENCV_CFLAGS
1825 something_not_found=no
1826 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1827 opencv2/calib3d.hpp \
1829 opencv2/imgproc.hpp \
1830 opencv2/objdetect.hpp \
1831 opencv2/opencv.hpp \
1833 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1835 CPPFLAGS=$OLD_CPPFLAGS
1838 if test $something_not_found = "yes"; then
1839 AC_MSG_RESULT([not all opencv2 headers were found])
1845 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 4.0.0 opencv4 < 4.2.0] , [
1848 OLD_CPPFLAGS=$CPPFLAGS
1849 CPPFLAGS=$OPENCV_CFLAGS
1850 something_not_found=no
1851 AC_CHECK_HEADERS([opencv2/bgsegm.hpp \
1852 opencv2/calib3d.hpp \
1854 opencv2/imgproc.hpp \
1855 opencv2/objdetect.hpp \
1856 opencv2/opencv.hpp \
1858 opencv2/bgsegm.hpp], [], [something_not_found=yes])
1860 CPPFLAGS=$OLD_CPPFLAGS
1863 if test $something_not_found = "yes"; then
1864 AC_MSG_RESULT([not all opencv2 headers were found])
1873 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1874 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1875 AC_SUBST(OPENCV_PREFIX)
1876 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1877 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1878 AC_SUBST(OPENCV_PREFIX)
1879 AC_SUBST(OPENCV_CFLAGS)
1880 AC_SUBST(OPENCV_LIBS)
1881 dnl the OpenCV prefix is used at runtime for some object properties, and also
1882 dnl used here to detect which directory is the correct one. For the second
1883 dnl case, make sure the right sysroot is used, ensuring correct behavior
1884 dnl during cross compilation.
1885 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1886 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1888 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1893 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1894 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1895 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1898 dnl *** openh264 ***
1899 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1900 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1901 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1904 dnl *** OpenJPEG ***
1905 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1906 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1908 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1909 if test x"$HAVE_OPENJPEG" != x"yes"; then
1912 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1913 HAVE_OPENJPEG="yes",
1914 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1916 if test x"$HAVE_OPENJPEG" = x"yes"; then
1917 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1920 AC_SUBST(OPENJPEG_CFLAGS)
1921 AC_SUBST(OPENJPEG_LIBS)
1925 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1926 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1927 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1928 AC_SUBST(OPENMPT_CFLAGS)
1929 AC_SUBST(OPENMPT_LIBS)
1933 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1934 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1935 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1936 AC_SUBST(OPENNI2_CFLAGS)
1937 AC_SUBST(OPENNI2_LIBS)
1941 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1942 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1943 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1944 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1949 AC_SUBST(OPUS_CFLAGS)
1954 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1955 AG_GST_CHECK_FEATURE(PANGO, [Pango font rendering], pango, [
1956 AG_GST_PKG_CHECK_MODULES(PANGO, pango >= 1.22.0 pangocairo >= 1.22.0)
1960 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1961 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1962 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1967 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1968 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1969 if test "x$HAVE_GST_GL" = "xyes"; then
1973 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1974 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1977 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
1978 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
1979 AC_CHECK_HEADER(vulkan/vulkan.h, [
1980 AC_CHECK_LIB(vulkan, vkCreateDevice, [
1981 VULKAN_LIBS="-lvulkan"
1982 AC_SUBST(VULKAN_LIBS)
1983 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
1986 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
1993 dnl *** teletextdec ***
1994 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1995 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1996 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
1999 dnl *** wildmidi ***
2000 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2001 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2002 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2005 WILDMIDI_LIBS="-lWildMidi")
2008 if test "x$HAVE_WILDMIDI" = "xyes"; then
2009 AC_MSG_CHECKING([for wildmidi >= 4.0])
2010 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2011 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2012 #error "wildmidi too old"
2014 ]])], [ AC_MSG_RESULT(yes)
2017 WILDMIDI_LIBS=-lWildMidi
2018 ], [ AC_MSG_RESULT(no)
2022 AC_MSG_WARN([WildMidi library or development headers not found])
2024 AC_SUBST(WILDMIDI_CFLAGS)
2025 AC_SUBST(WILDMIDI_LIBS)
2028 dnl **** Smooth Streaming ****
2029 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2030 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2031 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2033 HAVE_SMOOTHSTREAMING="yes"],
2035 HAVE_SMOOTHSTREAMING="no"])
2036 AC_SUBST(LIBXML2_CFLAGS)
2037 AC_SUBST(LIBXML2_LIBS)
2041 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2042 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2043 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2044 AC_SUBST(SNDFILE_CFLAGS)
2045 AC_SUBST(SNDFILE_LIBS)
2048 dnl *** soundtouch ***
2049 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2050 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2051 dnl We only need -lBPM on soundtouch < 1.4
2052 dnl We check for libSoundTouch since Debian used it before upstream
2053 dnl added a pkgconfig file.
2054 HAVE_SOUNDTOUCH_1_4=yes
2055 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2056 [HAVE_SOUNDTOUCH=yes],
2057 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2058 [HAVE_SOUNDTOUCH=yes],
2059 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2060 [HAVE_SOUNDTOUCH=yes
2061 HAVE_SOUNDTOUCH_1_4=no
2062 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2063 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2064 [HAVE_SOUNDTOUCH=yes],
2065 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2066 [HAVE_SOUNDTOUCH=yes
2067 HAVE_SOUNDTOUCH_1_4=no
2068 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2069 HAVE_SOUNDTOUCH=no)])])])])
2070 AC_SUBST(SOUNDTOUCH_CFLAGS)
2071 AC_SUBST(SOUNDTOUCH_LIBS)
2072 if test "x$HAVE_CXX" != "xyes"; then
2073 USE_SOUNDTOUCH=false
2074 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2076 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2077 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2078 [Defined if the available libSoundTouch is >= 1.4])
2083 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2084 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2085 AC_CHECK_HEADER(gme/gme.h, [
2086 AC_CHECK_LIB(gme, gme_new_emu, [
2097 if test "x$HAVE_GME" = "xyes"; then
2098 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2099 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2105 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2106 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2107 AC_MSG_CHECKING([Checking for up to date dvb installation])
2108 AC_CHECK_HEADER(linux/dvb/version.h, [
2109 AC_MSG_CHECKING([for up-to-date dvb API])
2110 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2111 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2112 #error "Incompatible dvb API"
2114 ]])], [ AC_MSG_RESULT(yes)
2116 ], [ AC_MSG_RESULT(no)
2123 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2124 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2129 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2131 if test "$HAVE_VDPAU" = "no"; then
2132 saved_CPPFLAGS="$CPPFLAGS"
2133 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2135 if test -z "$HAVE_VDPAU_H"; then
2136 dnl Didn't find VDPAU header straight away.
2137 dnl Try /usr/include/nvidia. Need to clear caching vars first
2138 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2139 unset ac_cv_header_vdpau_vdpau_h
2140 unset ac_cv_header_vdpau_vdpau_x11_h
2141 VDPAU_CFLAGS="-I/usr/include/nvidia"
2142 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2143 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2144 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2147 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2149 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2150 dnl Found the headers - look for the lib
2151 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2153 LIBS="$VDPAU_LIBS $saved_LIBS"
2154 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2160 if test "$HAVE_VDPAU" = "yes"; then
2161 AC_MSG_NOTICE([Found up to date VDPAU installation])
2162 AC_SUBST(VDPAU_CFLAGS)
2163 AC_SUBST(VDPAU_LIBS)
2168 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2169 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2170 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2174 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2175 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2176 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2180 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2181 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2182 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2186 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2187 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2188 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2189 HAVE_SPANDSP="yes" ], [
2193 AC_SUBST(SPANDSP_CFLAGS)
2194 AC_SUBST(SPANDSP_LIBS)
2196 dnl *** hls-crypto ***
2197 AC_ARG_WITH([hls-crypto],
2198 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2199 which cryptographic library version to compile against for hls (default: auto)
2201 AS_CASE([$with_hls_crypto],
2205 [with_hls_crypto=auto]
2211 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2212 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2213 AS_CASE([$with_hls_crypto],
2215 PKG_CHECK_MODULES(NETTLE, nettle, [
2216 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2218 ],[AC_MSG_ERROR([Could not find nettle library])])
2221 AM_PATH_LIBGCRYPT([1.2.0], [
2222 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2224 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2227 PKG_CHECK_MODULES(OPENSSL, openssl, [
2228 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2230 ],[AC_MSG_ERROR([Could not find openssl library])])
2233 dnl Try to find a valid crypto library
2234 PKG_CHECK_MODULES(NETTLE, nettle, [
2235 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2238 AM_PATH_LIBGCRYPT([1.2.0], [
2239 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2242 PKG_CHECK_MODULES(OPENSSL, openssl, [
2243 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2254 dnl *** x265 (H.265/HEVC encoder) ***
2255 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2256 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2257 AG_GST_PKG_CHECK_MODULES(X265, x265)
2260 dnl *** WebRTC Audio Processing ***
2261 dnl Note: We test for a specific version as there is no API stability
2262 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2263 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2265 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2267 # On Android, C++ headers comes with the STL implementation
2268 AS_CASE(["${host}"],
2271 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2272 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2273 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2275 AC_SUBST([WEBRTCDSP_CFLAGS])
2276 AC_SUBST([WEBRTCDSP_LIBS])
2279 old_CPPFLAGS=$CPPFLAGS
2280 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2281 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2282 CPPFLAGS=$old_CPPFLAGS
2287 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2288 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2289 PKG_CHECK_MODULES(NICE, nice >= 0.1.14, [
2290 HAVE_WEBRTC="yes" ], [
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_WPE, true)
2297 AG_GST_CHECK_FEATURE(WPE, [WPE plug-in], wpe, [
2298 PKG_CHECK_MODULES(WPE, [ wpe-webkit-1.0 >= 2.24 wpebackend-fdo-1.0 egl xkbcommon ], [
2305 translit(dnm, m, l) AM_CONDITIONAL(USE_SCTP, true)
2306 AG_GST_CHECK_FEATURE(SCTP, [sctp plug-in], sctp, [
2307 AC_CHECK_HEADER(usrsctp.h, [
2308 AC_CHECK_LIB(usrsctp, usrsctp_init, [
2309 USRSCTP_LIBS="-lusrsctp"
2310 AC_SUBST(USRSCTP_LIBS)
2322 dnl not building plugins with external dependencies,
2323 dnl but we still need to set the conditionals
2325 AM_CONDITIONAL(USE_ASSRENDER, false)
2326 AM_CONDITIONAL(USE_AOM, false)
2327 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2328 AM_CONDITIONAL(USE_VOAACENC, false)
2329 AM_CONDITIONAL(USE_BS2B, false)
2330 AM_CONDITIONAL(USE_BZ2, false)
2331 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2332 AM_CONDITIONAL(USE_CURL, false)
2333 AM_CONDITIONAL(USE_SSH2, false)
2334 AM_CONDITIONAL(USE_DASH, false)
2335 AM_CONDITIONAL(USE_DC1394, false)
2336 AM_CONDITIONAL(USE_DECKLINK, false)
2337 AM_CONDITIONAL(DECKLINK_OSX, false)
2338 AM_CONDITIONAL(DECKLINK_WIN, false)
2339 AM_CONDITIONAL(USE_DIRECTFB, false)
2340 AM_CONDITIONAL(USE_WAYLAND, false)
2341 AM_CONDITIONAL(USE_DTS, false)
2342 AM_CONDITIONAL(USE_EXIF, false)
2343 AM_CONDITIONAL(USE_RESINDVD, false)
2344 AM_CONDITIONAL(USE_FAAC, false)
2345 AM_CONDITIONAL(USE_FAAD, false)
2346 AM_CONDITIONAL(USE_FBDEV, false)
2347 AM_CONDITIONAL(USE_FDK_AAC, false)
2348 AM_CONDITIONAL(USE_FLITE, false)
2349 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2350 AM_CONDITIONAL(USE_GL, false)
2351 AM_CONDITIONAL(USE_GSM, false)
2352 AM_CONDITIONAL(USE_HLS, false)
2353 AM_CONDITIONAL(USE_IQA, false)
2354 AM_CONDITIONAL(USE_KATE, false)
2355 AM_CONDITIONAL(USE_KMS, false)
2356 AM_CONDITIONAL(USE_TIGER, false)
2357 AM_CONDITIONAL(USE_LADSPA, false)
2358 AM_CONDITIONAL(USE_LCMS2, false)
2359 AM_CONDITIONAL(USE_LV2, false)
2360 AM_CONDITIONAL(USE_LIBDE265, false)
2361 AM_CONDITIONAL(USE_LIBMMS, false)
2362 AM_CONDITIONAL(USE_MODPLUG, false)
2363 AM_CONDITIONAL(USE_MPEG2ENC, false)
2364 AM_CONDITIONAL(USE_MPLEX, false)
2365 AM_CONDITIONAL(USE_MUSEPACK, false)
2366 AM_CONDITIONAL(USE_NEON, false)
2367 AM_CONDITIONAL(USE_OFA, false)
2368 AM_CONDITIONAL(USE_OPENAL, false)
2369 AM_CONDITIONAL(USE_OPENCV, false)
2370 AM_CONDITIONAL(USE_OPENEXR, false)
2371 AM_CONDITIONAL(USE_OPENGL, false)
2372 AM_CONDITIONAL(USE_OPENJPEG, false)
2373 AM_CONDITIONAL(USE_OPENMPT, false)
2374 AM_CONDITIONAL(USE_OPENNI2, false)
2375 AM_CONDITIONAL(USE_OPUS, false)
2376 AM_CONDITIONAL(USE_PANGO, false)
2377 AM_CONDITIONAL(USE_WILDMIDI, false)
2378 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2379 AM_CONDITIONAL(USE_SNDFILE, false)
2380 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2381 AM_CONDITIONAL(USE_SPANDSP, false)
2382 AM_CONDITIONAL(USE_SRTP, false)
2383 AM_CONDITIONAL(USE_SRT, false)
2384 AM_CONDITIONAL(USE_GME, false)
2385 AM_CONDITIONAL(USE_DVB, false)
2386 AM_CONDITIONAL(USE_VDPAU, false)
2387 AM_CONDITIONAL(USE_SBC, false)
2388 AM_CONDITIONAL(USE_ZBAR, false)
2389 AM_CONDITIONAL(USE_RSVG, false)
2390 AM_CONDITIONAL(USE_RTMP, false)
2391 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2392 AM_CONDITIONAL(USE_UVCH264, false)
2393 AM_CONDITIONAL(USE_WEBP, false)
2394 AM_CONDITIONAL(USE_WEBRTC, false)
2395 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2396 AM_CONDITIONAL(USE_OPENH264, false)
2397 AM_CONDITIONAL(USE_X265, false)
2398 AM_CONDITIONAL(USE_DTLS, false)
2399 AM_CONDITIONAL(USE_VULKAN, false)
2400 AM_CONDITIONAL(USE_TTML, false)
2401 AM_CONDITIONAL(USE_SCTP, false)
2403 fi dnl of EXT plugins
2405 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2408 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2409 dnl GST_*: flags shared by built objects to link against GStreamer
2410 dnl GST_ALL_LDFLAGS: linker flags shared by all
2411 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2412 dnl GST_LT_LDFLAGS: library versioning of our libraries
2413 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2415 dnl GST_OPTION_CFLAGS
2416 if test "x$USE_DEBUG" = xyes; then
2419 AC_SUBST(PROFILE_CFLAGS)
2421 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2422 dnl Define _only_ during CVS (not pre-releases or releases)
2423 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2425 DEPRECATED_CFLAGS=""
2427 AC_SUBST(DEPRECATED_CFLAGS)
2429 VISIBILITY_CFLAGS=""
2430 AS_COMPILER_FLAG([-fvisibility=hidden], [
2431 VISIBILITY_CFLAGS="-fvisibility=hidden"
2432 AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
2434 VISIBILITY_CFLAGS=""
2435 AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
2437 AC_SUBST(VISIBILITY_CFLAGS)
2439 VISIBILITY_CXXFLAGS=""
2440 if test "x$HAVE_CXX" = "xyes"; then
2441 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2443 AC_SUBST(VISIBILITY_CXXFLAGS)
2445 dnl disable strict aliasing
2446 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2447 AC_SUBST(EXTRA_CFLAGS)
2449 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2450 dnl at make time with e.g. make ERROR_CFLAGS=""
2451 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2452 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2453 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2454 AC_SUBST(GST_OPTION_CFLAGS)
2455 AC_SUBST(GST_OPTION_CXXFLAGS)
2456 AC_SUBST(GST_OPTION_OBJCFLAGS)
2458 dnl FIXME: do we want to rename to GST_ALL_* ?
2459 dnl prefer internal headers to already installed ones
2460 dnl also add builddir include for enumtypes and marshal
2461 dnl add GST_OPTION_CFLAGS, but overridable
2462 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2463 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2464 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2465 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2466 AC_SUBST(GST_CFLAGS)
2467 AC_SUBST(GST_CXXFLAGS)
2468 AC_SUBST(GST_OBJCFLAGS)
2470 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2471 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2472 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2473 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2474 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2475 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2477 dnl LDFLAGS really should only contain flags, not libs - they get added before
2478 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2479 GST_ALL_LDFLAGS="-no-undefined"
2480 if test "x${enable_Bsymbolic}" = "xyes"; then
2481 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2483 AC_SUBST(GST_ALL_LDFLAGS)
2486 dnl linker flags shared by all libraries
2487 dnl LDFLAGS modifier defining exported symbols from built libraries
2488 dnl (export _gst_foo but not __gst_foo)
2490 AC_SUBST(GST_LIB_LDFLAGS)
2492 dnl this really should only contain flags, not libs - they get added before
2493 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2494 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2495 AC_SUBST(GST_PLUGIN_LDFLAGS)
2497 dnl *** output files ***
2499 $MKDIR_P tests/check/orc
2508 gst/accurip/Makefile
2509 gst/adpcmdec/Makefile
2510 gst/adpcmenc/Makefile
2512 gst/videoframe_audiolevel/Makefile
2514 gst/audiobuffersplit/Makefile
2515 gst/audiofxbad/Makefile
2516 gst/audiolatency/Makefile
2517 gst/audiomixmatrix/Makefile
2518 gst/audiovisualizers/Makefile
2519 gst/autoconvert/Makefile
2521 gst/camerabin2/Makefile
2522 gst/coloreffects/Makefile
2523 gst/debugutils/Makefile
2524 gst/dvbsuboverlay/Makefile
2526 gst/faceoverlay/Makefile
2527 gst/festival/Makefile
2528 gst/fieldanalysis/Makefile
2529 gst/freeverb/Makefile
2531 gst/gaudieffects/Makefile
2532 gst/geometrictransform/Makefile
2536 gst/interlace/Makefile
2537 gst/ivfparse/Makefile
2539 gst/jp2kdecimator/Makefile
2540 gst/jpegformat/Makefile
2543 gst/mpegdemux/Makefile
2544 gst/mpegtsdemux/Makefile
2545 gst/mpegtsmux/Makefile
2546 gst/mpegtsmux/tsmux/Makefile
2547 gst/mpegpsmux/Makefile
2551 gst/pcapparse/Makefile
2554 gst/rawparse/Makefile
2555 gst/removesilence/Makefile
2558 gst/segmentclip/Makefile
2563 gst/timecode/Makefile
2564 gst/videofilters/Makefile
2565 gst/videoparsers/Makefile
2566 gst/videosignal/Makefile
2571 gst-libs/gst/Makefile
2572 gst-libs/gst/adaptivedemux/Makefile
2573 gst-libs/gst/basecamerabinsrc/Makefile
2574 gst-libs/gst/insertbin/Makefile
2575 gst-libs/gst/interfaces/Makefile
2576 gst-libs/gst/isoff/Makefile
2577 gst-libs/gst/codecparsers/Makefile
2578 gst-libs/gst/mpegts/Makefile
2579 gst-libs/gst/sctp/Makefile
2580 gst-libs/gst/uridownloader/Makefile
2581 gst-libs/gst/wayland/Makefile
2582 gst-libs/gst/webrtc/Makefile
2583 gst-libs/gst/player/Makefile
2584 gst-libs/gst/audio/Makefile
2585 gst-libs/gst/opencv/Makefile
2587 sys/dshowdecwrapper/Makefile
2588 sys/androidmedia/Makefile
2589 sys/applemedia/Makefile
2591 sys/d3dvideosink/Makefile
2592 sys/decklink/Makefile
2593 sys/directsound/Makefile
2594 sys/dshowsrcwrapper/Makefile
2595 sys/dshowvideosink/Makefile
2598 sys/ipcpipeline/Makefile
2603 sys/opensles/Makefile
2605 sys/tinyalsa/Makefile
2606 sys/uvch264/Makefile
2610 sys/winscreencap/Makefile
2612 tests/check/Makefile
2613 tests/files/Makefile
2614 tests/examples/Makefile
2615 tests/examples/avsamplesink/Makefile
2616 tests/examples/camerabin2/Makefile
2617 tests/examples/codecparsers/Makefile
2618 tests/examples/directfb/Makefile
2619 tests/examples/audiomixmatrix/Makefile
2620 tests/examples/ipcpipeline/Makefile
2621 tests/examples/mpegts/Makefile
2622 tests/examples/mxf/Makefile
2623 tests/examples/opencv/Makefile
2624 tests/examples/uvch264/Makefile
2625 tests/examples/waylandsink/Makefile
2626 tests/examples/webrtc/Makefile
2627 tests/icles/Makefile
2628 ext/voamrwbenc/Makefile
2629 ext/voaacenc/Makefile
2630 ext/assrender/Makefile
2634 ext/chromaprint/Makefile
2635 ext/closedcaption/Makefile
2636 ext/colormanagement/Makefile
2640 ext/directfb/Makefile
2641 ext/wayland/Makefile
2647 ext/fluidsynth/Makefile
2654 ext/libde265/Makefile
2657 ext/modplug/Makefile
2658 ext/mpeg2enc/Makefile
2660 ext/musepack/Makefile
2665 ext/openexr/Makefile
2666 ext/openh264/Makefile
2667 ext/openjpeg/Makefile
2668 ext/openmpt/Makefile
2669 ext/openni2/Makefile
2672 ext/resindvd/Makefile
2676 ext/smoothstreaming/Makefile
2677 ext/sndfile/Makefile
2678 ext/soundtouch/Makefile
2679 ext/spandsp/Makefile
2682 ext/teletextdec/Makefile
2684 ext/wildmidi/Makefile
2686 ext/vulkan/xcb/Makefile
2687 ext/vulkan/wayland/Makefile
2693 ext/webrtcdsp/Makefile
2698 pkgconfig/gstreamer-plugins-bad.pc
2699 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2700 pkgconfig/gstreamer-codecparsers.pc
2701 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2702 pkgconfig/gstreamer-insertbin.pc
2703 pkgconfig/gstreamer-insertbin-uninstalled.pc
2704 pkgconfig/gstreamer-mpegts.pc
2705 pkgconfig/gstreamer-mpegts-uninstalled.pc
2706 pkgconfig/gstreamer-player.pc
2707 pkgconfig/gstreamer-player-uninstalled.pc
2708 pkgconfig/gstreamer-sctp.pc
2709 pkgconfig/gstreamer-sctp-uninstalled.pc
2710 pkgconfig/gstreamer-wayland.pc
2711 pkgconfig/gstreamer-wayland-uninstalled.pc
2712 pkgconfig/gstreamer-webrtc.pc
2713 pkgconfig/gstreamer-webrtc-uninstalled.pc
2714 pkgconfig/gstreamer-bad-audio.pc
2715 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2722 AG_GST_OUTPUT_PLUGINS