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.13.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1300, 0, 1300)
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
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 dnl *** checks for types/defines ***
169 dnl *** checks for structures ***
171 dnl *** checks for compiler characteristics ***
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r pipe2])
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
179 dnl *** checks for dependency libraries ***
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
199 AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GST_REQ], no)
200 AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-[$GST_API_VERSION], [$GST_REQ], yes)
202 if test "x$HAVE_GST_GL" = "xyes"; then
204 AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
205 GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
206 AC_MSG_RESULT([$GST_GL_WINSYS])
207 GST_GL_HAVE_WINDOW_X11=""
208 GST_GL_HAVE_WINDOW_WAYLAND=""
209 GST_GL_HAVE_WINDOW_ANDROID=""
210 GST_GL_HAVE_WINDOW_COCOA=""
211 GST_GL_HAVE_WINDOW_EAGL=""
212 case "$GST_GL_WINSYS" in *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
213 case "$GST_GL_WINSYS" in *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
214 case "$GST_GL_WINSYS" in *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
215 case "$GST_GL_WINSYS" in *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
216 case "$GST_GL_WINSYS" in *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
218 AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
219 GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
220 AC_MSG_RESULT([$GST_GL_PLATFORMS])
221 GST_GL_HAVE_PLATFORM_GLX=""
222 GST_GL_HAVE_PLATFORM_EGL=""
223 GST_GL_HAVE_PLATFORM_CGL=""
224 GST_GL_HAVE_PLATFORM_EAGL=""
225 case "$GST_GL_PLATFORMS" in *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
226 case "$GST_GL_PLATFORMS" in *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
227 case "$GST_GL_PLATFORMS" in *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
228 case "$GST_GL_PLATFORMS" in *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
230 AC_MSG_CHECKING([GStreamer OpenGL apis ...])
231 GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
232 AC_MSG_RESULT([$GST_GL_APIS])
233 GST_GL_HAVE_API_GLES2=""
234 GST_GL_HAVE_API_GL=""
235 case "$GST_GL_APIS" in *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
236 case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
239 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
241 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
243 dnl check for uninstalled plugin directories for unit tests
244 AG_GST_CHECK_UNINSTALLED_SETUP([
245 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
246 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
247 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
250 dnl Check for documentation xrefs
251 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
252 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
253 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
254 AC_SUBST(GLIB_PREFIX)
256 AC_SUBST(GSTPB_PREFIX)
258 dnl GTK is optional and used in examples
262 if test "x$BUILD_EXAMPLES" = "xyes"; then
263 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
265 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
267 2.0) GTK_REQ=$GTK2_REQ ;;
268 3.0) GTK_REQ=$GTK3_REQ ;;
269 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
273 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
274 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
278 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
280 dnl Check for -Bsymbolic-functions linker flag used to avoid
281 dnl intra-library PLT jumps, if available.
282 AC_ARG_ENABLE(Bsymbolic,
283 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
284 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
285 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
286 LDFLAGS=-Wl,-Bsymbolic-functions
288 AC_TRY_LINK([], [return 0],
290 enable_Bsymbolic=yes,
293 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
295 dnl *** set variables based on configure arguments ***
297 dnl GTK is optional and used in examples
299 if test "x$BUILD_EXAMPLES" = "xyes"; then
300 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
301 if test "x$HAVE_GTK3" = "xyes"; then
303 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
304 AC_SUBST(GTK_VERSION)
305 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
306 AC_SUBST(GTK_BASE_DIR)
310 AC_SUBST(GTK3_CFLAGS)
312 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
314 dnl x11 is optional for librfb
316 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
320 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
321 if test "x$HAVE_X11" = "xyes"; then
322 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
325 dnl exif (used on jifmux tests) ****
326 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
328 AC_SUBST(EXIF_CFLAGS)
329 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
331 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
332 PKG_CHECK_MODULES(DSSIM, dssim, [
340 if test "x$HAVE_DSSIM" = "xyes"; then
341 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
344 AC_SUBST(DSSIM_CFLAGS)
346 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
351 dnl set license and copyright notice
353 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
354 AC_SUBST(GST_LICENSE)
356 dnl define LIBDIR so we can inform people where we live
357 AS_AC_EXPAND(LIBDIR, $libdir)
358 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
360 dnl set location of plugin directory
363 dnl set release date/time
364 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
365 ["${srcdir}/gst-plugins-bad.doap"],
366 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
368 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
369 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
370 if test x$enable_static = xyes -a x$enable_shared = xno; then
371 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
374 AC_ARG_WITH([player-tests],
375 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
376 if test x$with_player_tests = xyes; then
377 AC_PATH_PROG([WGET], [wget], no)
378 if test x$WGET = xno; then
379 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
383 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
385 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
386 dnl make sure it doesn't complain about unused variables if debugging is disabled
388 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
390 dnl define an ERROR_CFLAGS Makefile variable
391 dnl -Waggregate-return - libexif returns aggregates
392 dnl -Wundef - Windows headers check _MSC_VER unconditionally
393 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
394 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
395 -Wwrite-strings -Wformat-security -Wold-style-definition
396 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
397 -Wnested-externs $NO_WARNINGS])
399 dnl define an ERROR_CXXFLAGS Makefile variable
400 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
401 -Wmissing-declarations -Wredundant-decls
402 -Wwrite-strings -Wformat-nonliteral -Wformat-security
403 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
405 dnl define an ERROR_OBJCFLAGS Makefile variable
406 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
407 -Wmissing-declarations -Wredundant-decls
408 -Wwrite-strings -Wformat-nonliteral -Wformat-security
409 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
411 dnl define correct level for debugging messages
412 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
415 AG_GST_DEFAULT_ELEMENTS
417 dnl *** plug-ins to include ***
419 dnl these are all the gst plug-ins, compilable without additional libs
420 AG_GST_CHECK_PLUGIN(accurip)
421 AG_GST_CHECK_PLUGIN(adpcmdec)
422 AG_GST_CHECK_PLUGIN(adpcmenc)
423 AG_GST_CHECK_PLUGIN(aiff)
424 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
425 AG_GST_CHECK_PLUGIN(asfmux)
426 AG_GST_CHECK_PLUGIN(audiobuffersplit)
427 AG_GST_CHECK_PLUGIN(audiofxbad)
428 AG_GST_CHECK_PLUGIN(audiomixmatrix)
429 AG_GST_CHECK_PLUGIN(compositor)
430 AG_GST_CHECK_PLUGIN(audiovisualizers)
431 AG_GST_CHECK_PLUGIN(autoconvert)
432 AG_GST_CHECK_PLUGIN(bayer)
433 AG_GST_CHECK_PLUGIN(camerabin2)
434 AG_GST_CHECK_PLUGIN(coloreffects)
435 AG_GST_CHECK_PLUGIN(debugutils)
436 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
437 AG_GST_CHECK_PLUGIN(dvdspu)
438 AG_GST_CHECK_PLUGIN(faceoverlay)
439 AG_GST_CHECK_PLUGIN(festival)
440 AG_GST_CHECK_PLUGIN(fieldanalysis)
441 AG_GST_CHECK_PLUGIN(freeverb)
442 AG_GST_CHECK_PLUGIN(frei0r)
443 AG_GST_CHECK_PLUGIN(gaudieffects)
444 AG_GST_CHECK_PLUGIN(geometrictransform)
445 AG_GST_CHECK_PLUGIN(gdp)
446 AG_GST_CHECK_PLUGIN(id3tag)
447 AG_GST_CHECK_PLUGIN(inter)
448 AG_GST_CHECK_PLUGIN(interlace)
449 AG_GST_CHECK_PLUGIN(ivfparse)
450 AG_GST_CHECK_PLUGIN(ivtc)
451 AG_GST_CHECK_PLUGIN(jp2kdecimator)
452 AG_GST_CHECK_PLUGIN(jpegformat)
453 AG_GST_CHECK_PLUGIN(librfb)
454 AG_GST_CHECK_PLUGIN(midi)
455 AG_GST_CHECK_PLUGIN(mpegdemux)
456 AG_GST_CHECK_PLUGIN(mpegtsdemux)
457 AG_GST_CHECK_PLUGIN(mpegtsmux)
458 AG_GST_CHECK_PLUGIN(mpegpsmux)
459 AG_GST_CHECK_PLUGIN(mxf)
460 AG_GST_CHECK_PLUGIN(netsim)
461 AG_GST_CHECK_PLUGIN(onvif)
462 AG_GST_CHECK_PLUGIN(pcapparse)
463 AG_GST_CHECK_PLUGIN(pnm)
464 AG_GST_CHECK_PLUGIN(proxy)
465 AG_GST_CHECK_PLUGIN(rawparse)
466 AG_GST_CHECK_PLUGIN(removesilence)
467 AG_GST_CHECK_PLUGIN(sdp)
468 AG_GST_CHECK_PLUGIN(segmentclip)
469 AG_GST_CHECK_PLUGIN(siren)
470 AG_GST_CHECK_PLUGIN(smooth)
471 AG_GST_CHECK_PLUGIN(speed)
472 AG_GST_CHECK_PLUGIN(subenc)
473 AG_GST_CHECK_PLUGIN(stereo)
474 AG_GST_CHECK_PLUGIN(timecode)
475 AG_GST_CHECK_PLUGIN(videofilters)
476 AG_GST_CHECK_PLUGIN(videoparsers)
477 AG_GST_CHECK_PLUGIN(videosignal)
478 AG_GST_CHECK_PLUGIN(vmnc)
479 AG_GST_CHECK_PLUGIN(y4m)
480 AG_GST_CHECK_PLUGIN(yadif)
482 dnl *** plug-ins to exclude ***
484 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
485 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
486 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
488 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
490 LIBS="$LIBS -framework VideoToolbox"
491 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
492 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
498 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
499 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
500 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
503 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
504 if test "x$HAVE_IOS" = "xyes"; then
505 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
508 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
509 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
510 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
513 dnl disable gst plugins we might not be able to build on this
514 dnl platform: (ugly but minimally invasive)
515 dnl FIXME: maybe move to sys, or make work with winsock2
516 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
517 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
519 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
520 WINSOCK2_LIBS="-lws2_32"
521 AC_SUBST(WINSOCK2_LIBS)
525 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
526 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
528 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
529 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
530 VULKAN_CONFIG_DEFINES="
531 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
532 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
534 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
535 outfile=vkconfig.h-tmp
536 cat > $outfile <<\_______EOF
539 * This is a generated file. Please modify `configure.ac'
542 #ifndef __GST_VULKAN_CONFIG_H__
543 #define __GST_VULKAN_CONFIG_H__
551 cat >>$outfile <<_______EOF
552 $vulkan_config_defines
555 cat >>$outfile <<_______EOF
559 #endif /* __GST_VULKAN_CONFIG_H__ */
563 if cmp -s $outfile ext/vulkan/vkconfig.h; then
564 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
567 mv $outfile ext/vulkan/vkconfig.h
570 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
573 dnl *** sys plug-ins ***
576 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
577 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
578 HAVE_DIRECTSOUND="no"
579 save_CFLAGS="$CFLAGS"
580 save_LDFLAGS="$LDFLAGS"
582 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
583 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
584 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
585 AC_MSG_CHECKING(for DirectSound LDFLAGS)
586 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
590 #include <mmsystem.h>
592 DXGetErrorString9 (0);
593 DirectSoundCreate(NULL, NULL, NULL);
595 [HAVE_DIRECTSOUND="yes"],
596 [HAVE_DIRECTSOUND="no"])
597 AC_MSG_RESULT($HAVE_DIRECTSOUND)
599 LDFLAGS=$save_LDFLAGS
602 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
603 dnl this is much more than we want
604 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
605 AC_SUBST(DIRECTX_CFLAGS)
606 AC_SUBST(DIRECTX_LDFLAGS)
607 AC_SUBST(DIRECTSOUND_LIBS)
609 AC_SUBST(HAVE_DIRECTSOUND)
613 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
614 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
616 save_CFLAGS="$CFLAGS"
617 save_LDFLAGS="$LDFLAGS"
619 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
620 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
621 LIBS="$LIBS -lole32 -lwinmm -lksuser"
622 AC_MSG_CHECKING(for WASAPI LDFLAGS)
623 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
626 #include <mmsystem.h>
627 #include <mmdeviceapi.h>
633 hr = CoInitialize(NULL);
635 printf("CoInitialize failed: hr = 0x%08x", hr);
640 // result = do_everything(argc, argv);
648 AC_MSG_RESULT($HAVE_WASAPI)
650 LDFLAGS=$save_LDFLAGS
653 if test "x$HAVE_WASAPI" = "xyes"; then
654 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
655 AC_SUBST(WASAPI_LIBS)
657 AC_SUBST(HAVE_WASAPI)
661 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
662 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
664 save_CFLAGS="$CFLAGS"
665 save_LDFLAGS="$LDFLAGS"
667 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
668 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
669 LIBS="$LIBS -ld3d9 -lgdi32"
670 AC_MSG_CHECKING(for Direct3D LDFLAGS)
671 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
675 Direct3DCreate9(D3D_SDK_VERSION);
677 [HAVE_DIRECT3D="yes"],
678 [HAVE_DIRECT3D="no"])
679 AC_MSG_RESULT($HAVE_DIRECT3D)
681 LDFLAGS=$save_LDFLAGS
684 if test "x$HAVE_DIRECT3D" = "xyes"; then
685 DIRECT3D_LIBS="-ld3d9 -lgdi32"
686 AC_SUBST(DIRECT3D_LIBS)
688 AC_SUBST(HAVE_DIRECT3D)
692 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
693 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
694 HAVE_WINSCREENCAP="no"
695 save_CFLAGS="$CFLAGS"
696 save_LDFLAGS="$LDFLAGS"
698 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
699 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
700 LIBS="$LIBS -ld3d9 -lgdi32"
701 AC_MSG_CHECKING(for Direct3D LDFLAGS)
702 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
706 Direct3DCreate9(D3D_SDK_VERSION);
708 [HAVE_WINSCREENCAP="yes"],
709 [HAVE_WINSCREENCAP="no"])
710 AC_MSG_RESULT($HAVE_WINSCREENCAP)
712 LDFLAGS=$save_LDFLAGS
715 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
716 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
717 AC_SUBST(WINSCREENCAP_LIBS)
719 AC_SUBST(HAVE_WINSCREENCAP)
723 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
724 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
726 save_CFLAGS="$CFLAGS"
727 save_LDFLAGS="$LDFLAGS"
729 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
730 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
731 LIBS="$LIBS -lole32 -luuid -lstrmiids"
732 AC_MSG_CHECKING(for Winks LDFLAGS)
733 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
739 IGraphBuilder *pGraph = NULL;
740 HRESULT hr = CoInitialize(NULL);
741 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
742 &IID_IGraphBuilder, (void **)&pGraph);
749 AC_MSG_RESULT($HAVE_WINKS)
751 LDFLAGS=$save_LDFLAGS
754 if test "x$HAVE_WINKS" = "xyes"; then
755 dnl this is much more than we want
756 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
757 AC_SUBST(DIRECTX_CFLAGS)
758 AC_SUBST(DIRECTX_LDFLAGS)
764 dnl *** Android Media ***
765 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
766 HAVE_ANDROID_MEDIA="no"
767 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
770 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
773 HAVE_ANDROID_MEDIA="no"
778 dnl *** AppleMedia (OS X and iOS) ***
779 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
780 HAVE_APPLE_MEDIA="no"
781 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
782 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
783 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
784 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
785 if test "x$HAVE_IOS" = "xno"; then
786 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
790 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
795 HAVE_APPLE_MEDIA="no"
800 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
801 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
802 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
803 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
804 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
806 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
815 dnl *** OS/X AVCVideoServices ***
816 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
818 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
820 save_CPPFLAGS="$CPPFLAGS"
821 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
823 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
824 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
826 CPPFLAGS=$save_CPPFLAGS
829 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
838 dnl check for shm_open (for shm plugin)
839 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
840 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
841 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
843 *-darwin* | *-macos10*)
844 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
851 AC_CHECK_LIB([rt], [shm_open],
852 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
853 #include <sys/socket.h>
856 AC_SUBST(SHM_LIBS, "-lrt")
864 dnl check for unix sockets (ipcpipeline plugin)
865 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
866 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
867 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
868 AC_CHECK_FUNC(pipe, [
869 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
878 dnl check for Video CD
879 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
880 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
881 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
884 dnl check for OpenSL ES
885 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
886 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
887 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
891 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
892 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
893 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
894 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
895 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
898 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
899 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
902 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
903 test "x$HAVE_GUDEV" = "xyes" && \
904 test "x$HAVE_LIBUSB" = "xyes"; then
910 AC_SUBST(LIBUDEV_CFLAGS)
911 AC_SUBST(LIBUDEV_LIBS)
912 AC_SUBST(LIBUSB_CFLAGS)
913 AC_SUBST(LIBUSB_LIBS)
916 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
917 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
918 AC_ARG_WITH([cuda-prefix],
919 AS_HELP_STRING([--with-cuda-prefix],
920 [Use the provided prefix for detecting the cuda installation]),
921 [AS_IF([test "x$with_cuda_prefix" != "x"],
922 [CUDA_PREFIX="$with_cuda_prefix"])],
926 if test "x$CUDA_PREFIX" != "x"; then
927 dnl only override if not already set
928 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
929 dnl this is an educated guess, user can always override these
930 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
931 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
934 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
935 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
936 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
937 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
938 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
943 save_CPPFLAGS="$CPPFLAGS"
944 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
945 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
946 AC_MSG_WARN([Could not find cuda.h]))
947 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
948 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
949 CPPFLAGS=$save_CPPFLAGS
951 dnl libcuda and libcudart libraries
953 LIBS="$CUDA_LIBS $save_LIBS"
955 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
956 AC_MSG_WARN([Could not find cudart library])])
958 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
959 AC_MSG_WARN([Could not find cuda library])])
964 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
965 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
967 save_CPPFLAGS="$CPPFLAGS"
968 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
969 AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
970 AC_MSG_WARN([Could not find nvcuvid.h]))
971 CPPFLAGS=$save_CPPFLAGS
975 LIBS="$CUDA_LIBS $save_LIBS"
976 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
977 AC_MSG_WARN([Could not find library nvcuvid]))
980 if test "x$HAVE_NVCUVID_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
988 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
989 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
990 dnl nvEncodeAPI.h header
991 HAVE_NVENCODEAPI_H=no
992 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
993 save_CPPFLAGS="$CPPFLAGS"
994 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
995 AC_CHECK_HEADER([nvEncodeAPI.h], [
996 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
997 #if NVENCAPI_MAJOR_VERSION < 5
998 #error "Need nvEncodeAPI.h >= 5.0"
1001 HAVE_NVENCODEAPI_H=yes
1003 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1006 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1007 AC_SUBST(NVENCODE_CFLAGS)
1008 CPPFLAGS="$save_CPPFLAGS"
1010 dnl libnvnidia-encode library
1011 HAVE_NVENCODE_LIB=no
1012 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1014 LIBS="$NVENCODE_LIBS $saved_LIBS"
1015 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1016 AC_MSG_WARN([Could not find library nvidia-encode]))
1017 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1018 AC_SUBST(NVENCODE_LIBS)
1022 if test "x$HAVE_CUDA_H" = "xyes" \
1023 -a "x$HAVE_CUDART_H" = "xyes" \
1024 -a "x$HAVE_CUDA_LIB" = "xyes" \
1025 -a "x$HAVE_CUDART_LIB" = "xyes" \
1026 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1027 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1029 if test x"$USE_OPENGL" = x"yes"; then
1030 dnl cuda-gl interop header
1031 save_CPPFLAGS="$CPPFLAGS"
1032 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1033 AC_CHECK_HEADER([cuda_gl_interop.h], [
1034 USE_NVENC_GST_GL="yes"
1035 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1037 CPPFLAGS="$save_CPPFLAGS"
1043 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1045 dnl check for tinyalsa
1046 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1047 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1048 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1051 dnl check for intel mediasdk
1052 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1053 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1054 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1055 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1058 PKG_CHECK_MODULES(LIBMFX, libmfx,
1060 AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1063 AC_ARG_WITH([msdk-prefix],
1064 AS_HELP_STRING([--with-msdk-prefix],
1065 [Use the provided prefix for detecting the Intel MediaSDK]),
1066 [AS_IF([test "x$with_msdk_prefix" != "x"],
1067 [MSDK_PREFIX="$with_msdk_prefix"])],
1068 [AS_IF([test "x$MFX_HOME" != "x"],
1069 [MSDK_PREFIX="$MFX_HOME"],
1070 [MSDK_PREFIX="/opt/intel/media"])])
1071 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1072 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1073 AC_SUBST(MSDK_CFLAGS)
1076 save_CPPFLAGS="$CPPFLAGS"
1077 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1078 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1079 CPPFLAGS="$save_CPPFLAGS"
1082 LIBS="$MSDK_LIBS $LIBS"
1084 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1088 if test "x$HAVE_MFXDEFS_H" = "xyes" \
1089 -a "x$HAVE_MFX_LIB" = "xyes"; then
1096 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1098 if test "x$HAVE_GUDEV" = "xyes" \
1099 -a "x$HAVE_MSDK" = "xyes" \
1100 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1106 AM_CONDITIONAL(USE_MSDK_LIBVA,
1107 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1109 dnl *** ext plug-ins ***
1110 dnl keep this list sorted alphabetically !
1112 if test "x$BUILD_EXTERNAL" = "xyes"; then
1114 dnl *** assrender ***
1115 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1116 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1117 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1118 HAVE_ASSRENDER="yes" ], [
1122 AC_SUBST(ASSRENDER_CFLAGS)
1123 AC_SUBST(ASSRENDER_LIBS)
1126 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1127 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1128 AG_GST_PKG_CHECK_MODULES(AOM, aom)
1131 dnl *** vo-amrwbenc ***
1132 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1133 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1134 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1137 dnl *** vo-aacenc ***
1138 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1139 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1140 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1144 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1145 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1146 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1149 AC_SUBST(BS2B_CFLAGS)
1154 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1155 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1158 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1159 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1160 AC_MSG_RESULT($HAVE_BZ2)
1162 if test "x$HAVE_BZ2" = "xyes"; then
1170 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1171 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1172 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1175 # AC_SUBST(CAIRO_CFLAGS)
1176 # AC_SUBST(CAIRO_LIBS)
1179 dnl *** chromaprint ***
1180 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1181 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1182 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1183 HAVE_CHROMAPRINT="no"
1185 AC_SUBST(CHROMAPRINT_CFLAGS)
1186 AC_SUBST(CHROMAPRINT_LIBS)
1190 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1191 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1192 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1194 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1195 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1197 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1198 [[#ifdef HAVE_SYS_TYPES_H
1199 # include <sys/types.h>
1201 #ifdef HAVE_NETINET_IN_H
1202 # include <netinet/in.h>
1205 AC_MSG_CHECKING([for socket support needed by curlsink])
1206 AC_MSG_RESULT($HAVE_CURL)
1210 AC_SUBST(CURL_CFLAGS)
1212 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1214 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1218 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1219 AC_SUBST(SSH2_CFLAGS)
1221 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1224 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1225 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1226 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1227 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1229 AC_SUBST(LIBXML2_CFLAGS)
1230 AC_SUBST(LIBXML2_LIBS)
1234 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1235 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1236 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1237 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1246 AC_SUBST(LIBDC1394_CFLAGS)
1247 AC_SUBST(LIBDC1394_LIBS)
1250 dnl *** decklink ***
1251 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1252 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1259 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1260 AC_CHECK_LIB(dl, dlopen,
1264 DECKLINK_LIBS="-lpthread -ldl"
1269 if test "x$HAVE_PTHREAD_H" = "xyes"; then
1270 AC_CHECK_LIB(dl, dlopen,
1274 DECKLINK_LIBS="-lpthread -ldl"
1275 HAVE_DECKLINK_OSX=yes
1282 DECKLINK_LIBS="-lole32 -loleaut32"
1283 HAVE_DECKLINK_WIN=yes
1290 AC_SUBST(DECKLINK_CXXFLAGS)
1291 AC_SUBST(DECKLINK_LIBS)
1293 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1294 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1296 dnl **** DirectFB ****
1297 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1298 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1299 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1304 dnl **** Wayland ****
1305 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1306 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1307 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1308 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
1309 if test "x$wayland_scanner" != "x"; then
1311 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1313 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1322 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1323 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1324 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1325 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1327 AC_SUBST(WEBP_CFLAGS)
1332 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1333 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1334 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1335 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1340 AC_SUBST(DAALA_CFLAGS)
1341 AC_SUBST(DAALA_LIBS)
1346 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1347 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1349 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1350 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1351 if test $HAVE_DTS = "no"; then
1352 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1353 [ DTS_LIBS="-ldts_pic $LIBM"
1354 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1360 dnl *** resindvd ***
1361 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1362 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1363 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1368 dnl **** Free AAC Encoder (FAAC) ****
1369 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1370 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1371 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1372 FAAC_LIBS="-lfaac $LIBM")
1376 dnl **** Free AAC Decoder (FAAD2) ****
1377 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1378 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1379 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1380 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1381 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1383 #elif !defined(LATM)
1384 #error Not faad2 >= 2.7
1390 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1400 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1401 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1402 if test "x$HAVE_FBDEV" != "xyes"; then
1403 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1408 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1409 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1410 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
1412 HAVE_FDK_AAC_0_1_4="yes"
1413 AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1415 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
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, srtp_init, , 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 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1780 MUSEPACK_LIBS="-lmpcdec"
1781 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1782 AC_SUBST(MUSEPACK_LIBS)
1783 ], [HAVE_MUSEPACK="no"])])
1787 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1788 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1789 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
1792 AC_SUBST(NEON_CFLAGS)
1797 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1798 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1799 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1802 AC_SUBST(OFA_CFLAGS)
1807 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1808 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1809 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1812 AC_SUBST(OPENAL_CFLAGS)
1813 AC_SUBST(OPENAL_LIBS)
1817 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1818 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1819 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1820 dnl and don't want the build to break when a new opencv version comes out.
1821 dnl Need to adjust this upwards once we know that our code compiles fine with
1822 dnl a new version and the no-backward-compatibility define. (There doesn't
1823 dnl seem to be a switch to suppress the warnings the cvcompat.h header
1825 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 3.5.0 , [
1828 OLD_CPPFLAGS=$CPPFLAGS
1829 CPPFLAGS=$OPENCV_CFLAGS
1830 something_not_found=no
1831 AC_CHECK_HEADERS([opencv2/core/core_c.h \
1832 opencv2/core/version.hpp \
1833 opencv2/highgui/highgui_c.h \
1834 opencv2/imgproc/imgproc.hpp \
1835 opencv2/imgproc/imgproc_c.h \
1836 opencv2/objdetect/objdetect.hpp \
1837 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
1839 dnl Only required for OpenCV >= 3, we have compat code for older versions
1840 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
1841 dnl check opencv_contrib headers (not always present in opencv distributions)
1842 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
1843 [NOT_A_PROBLEM=yes])
1845 CPPFLAGS=$OLD_CPPFLAGS
1848 if test $something_not_found = "yes"; then
1849 AC_MSG_RESULT([not all opencv2 headers were found])
1857 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1858 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1859 AC_SUBST(OPENCV_PREFIX)
1860 AC_SUBST(OPENCV_CFLAGS)
1861 AC_SUBST(OPENCV_LIBS)
1862 dnl the OpenCV prefix is used at runtime for some object properties, and also
1863 dnl used here to detect which directory is the correct one. For the second
1864 dnl case, make sure the right sysroot is used, ensuring correct behavior
1865 dnl during cross compilation.
1866 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1867 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1869 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1874 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1875 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1876 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1879 dnl *** openh264 ***
1880 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1881 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1882 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1885 dnl *** OpenJPEG ***
1886 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1887 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1889 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1890 if test x"$HAVE_OPENJPEG" != x"yes"; then
1893 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1894 HAVE_OPENJPEG="yes",
1895 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1897 if test x"$HAVE_OPENJPEG" = x"yes"; then
1898 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1901 AC_SUBST(OPENJPEG_CFLAGS)
1902 AC_SUBST(OPENJPEG_LIBS)
1906 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1907 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1908 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1909 AC_SUBST(OPENMPT_CFLAGS)
1910 AC_SUBST(OPENMPT_LIBS)
1914 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1915 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1916 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1917 AC_SUBST(OPENNI2_CFLAGS)
1918 AC_SUBST(OPENNI2_LIBS)
1922 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1923 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1924 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1925 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1930 AC_SUBST(OPUS_CFLAGS)
1935 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1936 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1937 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1942 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1943 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1944 if test "x$HAVE_GST_GL" = "xyes"; then
1948 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1949 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1952 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
1953 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
1954 AC_CHECK_HEADER(vulkan/vulkan.h, [
1955 AC_CHECK_LIB(vulkan, vkCreateDevice, [
1956 VULKAN_LIBS="-lvulkan"
1957 AC_SUBST(VULKAN_LIBS)
1958 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
1961 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
1968 dnl *** teletextdec ***
1969 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
1970 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
1971 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
1974 dnl *** wildmidi ***
1975 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1976 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1977 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1980 WILDMIDI_LIBS="-lWildMidi")
1983 if test "x$HAVE_WILDMIDI" = "xyes"; then
1984 AC_MSG_CHECKING([for wildmidi >= 4.0])
1985 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
1986 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
1987 #error "wildmidi too old"
1989 ]])], [ AC_MSG_RESULT(yes)
1992 WILDMIDI_LIBS=-lWildMidi
1993 ], [ AC_MSG_RESULT(no)
1997 AC_MSG_WARN([WildMidi library or development headers not found])
1999 AC_SUBST(WILDMIDI_CFLAGS)
2000 AC_SUBST(WILDMIDI_LIBS)
2003 dnl **** Smooth Streaming ****
2004 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2005 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2006 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2008 HAVE_SMOOTHSTREAMING="yes"],
2010 HAVE_SMOOTHSTREAMING="no"])
2011 AC_SUBST(LIBXML2_CFLAGS)
2012 AC_SUBST(LIBXML2_LIBS)
2016 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2017 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2018 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2019 AC_SUBST(SNDFILE_CFLAGS)
2020 AC_SUBST(SNDFILE_LIBS)
2023 dnl *** soundtouch ***
2024 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2025 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2026 dnl We only need -lBPM on soundtouch < 1.4
2027 dnl We check for libSoundTouch since Debian used it before upstream
2028 dnl added a pkgconfig file.
2029 HAVE_SOUNDTOUCH_1_4=yes
2030 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2031 [HAVE_SOUNDTOUCH=yes],
2032 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2033 [HAVE_SOUNDTOUCH=yes],
2034 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2035 [HAVE_SOUNDTOUCH=yes
2036 HAVE_SOUNDTOUCH_1_4=no
2037 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2038 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2039 [HAVE_SOUNDTOUCH=yes],
2040 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2041 [HAVE_SOUNDTOUCH=yes
2042 HAVE_SOUNDTOUCH_1_4=no
2043 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2044 HAVE_SOUNDTOUCH=no)])])])])
2045 AC_SUBST(SOUNDTOUCH_CFLAGS)
2046 AC_SUBST(SOUNDTOUCH_LIBS)
2047 if test "x$HAVE_CXX" != "xyes"; then
2048 USE_SOUNDTOUCH=false
2049 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2051 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2052 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2053 [Defined if the available libSoundTouch is >= 1.4])
2058 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2059 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2060 AC_CHECK_HEADER(openspc.h, [
2061 AC_CHECK_LIB(openspc, OSPC_Init, [
2062 SPC_LIBS="-lopenspc"
2074 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2075 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2076 AC_CHECK_HEADER(gme/gme.h, [
2077 AC_CHECK_LIB(gme, gme_new_emu, [
2088 if test "x$HAVE_GME" = "xyes"; then
2089 AC_CHECK_LIB(gme, gme_enable_accuracy, [
2090 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2096 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2097 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2098 AC_MSG_CHECKING([Checking for up to date dvb installation])
2099 AC_CHECK_HEADER(linux/dvb/version.h, [
2100 AC_MSG_CHECKING([for up-to-date dvb API])
2101 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2102 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2103 #error "Incompatible dvb API"
2105 ]])], [ AC_MSG_RESULT(yes)
2107 ], [ AC_MSG_RESULT(no)
2114 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2115 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2116 AC_MSG_CHECKING([Checking for ACM support])
2117 AC_CHECK_HEADERS([windows.h msacm.h],
2119 AC_SUBST(ACMENC_CFLAGS)
2120 AC_SUBST(ACMMP3DEC_CFLAGS)
2122 [AC_INCLUDES_DEFAULT
2123 #include <windows.h>])
2127 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2128 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2133 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2135 if test "$HAVE_VDPAU" = "no"; then
2136 saved_CPPFLAGS="$CPPFLAGS"
2137 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2139 if test -z "$HAVE_VDPAU_H"; then
2140 dnl Didn't find VDPAU header straight away.
2141 dnl Try /usr/include/nvidia. Need to clear caching vars first
2142 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2143 unset ac_cv_header_vdpau_vdpau_h
2144 unset ac_cv_header_vdpau_vdpau_x11_h
2145 VDPAU_CFLAGS="-I/usr/include/nvidia"
2146 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2147 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2148 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2151 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2153 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2154 dnl Found the headers - look for the lib
2155 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2157 LIBS="$VDPAU_LIBS $saved_LIBS"
2158 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2164 if test "$HAVE_VDPAU" = "yes"; then
2165 AC_MSG_NOTICE([Found up to date VDPAU installation])
2166 AC_SUBST(VDPAU_CFLAGS)
2167 AC_SUBST(VDPAU_LIBS)
2172 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2173 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2174 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2177 dnl *** schroedinger ***
2178 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
2179 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
2180 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
2184 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2185 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2186 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2190 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2191 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2192 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2196 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2197 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2198 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2199 HAVE_SPANDSP="yes" ], [
2203 AC_SUBST(SPANDSP_CFLAGS)
2204 AC_SUBST(SPANDSP_LIBS)
2206 dnl *** hls-crypto ***
2207 AC_ARG_WITH([hls-crypto],
2208 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2209 which cryptographic library version to compile against for hls (default: auto)
2211 AS_CASE([$with_hls_crypto],
2215 [with_hls_crypto=auto]
2221 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2222 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2223 AS_CASE([$with_hls_crypto],
2225 PKG_CHECK_MODULES(NETTLE, nettle, [
2226 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2228 ],[AC_MSG_ERROR([Could not find nettle library])])
2231 AM_PATH_LIBGCRYPT([1.2.0], [
2232 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2234 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2237 PKG_CHECK_MODULES(OPENSSL, openssl, [
2238 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2240 ],[AC_MSG_ERROR([Could not find openssl library])])
2243 dnl Try to find a valid crypto library
2244 PKG_CHECK_MODULES(NETTLE, nettle, [
2245 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2248 AM_PATH_LIBGCRYPT([1.2.0], [
2249 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2252 PKG_CHECK_MODULES(OPENSSL, openssl, [
2253 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2264 dnl *** x265 (H.265/HEVC encoder) ***
2265 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2266 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2267 AG_GST_PKG_CHECK_MODULES(X265, x265)
2270 dnl *** WebRTC Audio Processing ***
2271 dnl Note: We test for a specific version as there is no API stability
2272 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2273 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2275 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2277 # On Android, C++ headers comes with the STL implementation
2278 AS_CASE(["${host}"],
2281 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2282 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2283 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2285 AC_SUBST([WEBRTCDSP_CFLAGS])
2286 AC_SUBST([WEBRTCDSP_LIBS])
2289 old_CPPFLAGS=$CPPFLAGS
2290 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2291 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2292 CPPFLAGS=$old_CPPFLAGS
2297 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2298 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2299 PKG_CHECK_MODULES(NICE, nice >= 0.1, [
2300 HAVE_WEBRTC="yes" ], [
2307 dnl not building plugins with external dependencies,
2308 dnl but we still need to set the conditionals
2310 AM_CONDITIONAL(USE_ASSRENDER, false)
2311 AM_CONDITIONAL(USE_AOM, false)
2312 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2313 AM_CONDITIONAL(USE_VOAACENC, false)
2314 AM_CONDITIONAL(USE_BS2B, false)
2315 AM_CONDITIONAL(USE_BZ2, false)
2316 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2317 AM_CONDITIONAL(USE_CURL, false)
2318 AM_CONDITIONAL(USE_SSH2, false)
2319 AM_CONDITIONAL(USE_DASH, false)
2320 AM_CONDITIONAL(USE_DC1394, false)
2321 AM_CONDITIONAL(USE_DECKLINK, false)
2322 AM_CONDITIONAL(DECKLINK_OSX, false)
2323 AM_CONDITIONAL(DECKLINK_WIN, false)
2324 AM_CONDITIONAL(USE_DIRECTFB, false)
2325 AM_CONDITIONAL(USE_WAYLAND, false)
2326 AM_CONDITIONAL(USE_DAALA, false)
2327 AM_CONDITIONAL(USE_DTS, false)
2328 AM_CONDITIONAL(USE_EXIF, false)
2329 AM_CONDITIONAL(USE_RESINDVD, false)
2330 AM_CONDITIONAL(USE_FAAC, false)
2331 AM_CONDITIONAL(USE_FAAD, false)
2332 AM_CONDITIONAL(USE_FBDEV, false)
2333 AM_CONDITIONAL(USE_FDK_AAC, false)
2334 AM_CONDITIONAL(USE_FLITE, false)
2335 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2336 AM_CONDITIONAL(USE_GL, false)
2337 AM_CONDITIONAL(USE_GSM, false)
2338 AM_CONDITIONAL(USE_HLS, false)
2339 AM_CONDITIONAL(USE_IQA, false)
2340 AM_CONDITIONAL(USE_KATE, false)
2341 AM_CONDITIONAL(USE_KMS, false)
2342 AM_CONDITIONAL(USE_TIGER, false)
2343 AM_CONDITIONAL(USE_LADSPA, false)
2344 AM_CONDITIONAL(USE_LCMS2, false)
2345 AM_CONDITIONAL(USE_LV2, false)
2346 AM_CONDITIONAL(USE_LIBDE265, false)
2347 AM_CONDITIONAL(USE_LIBMMS, false)
2348 AM_CONDITIONAL(USE_MODPLUG, false)
2349 AM_CONDITIONAL(USE_MPEG2ENC, false)
2350 AM_CONDITIONAL(USE_MPLEX, false)
2351 AM_CONDITIONAL(USE_MUSEPACK, false)
2352 AM_CONDITIONAL(USE_NEON, false)
2353 AM_CONDITIONAL(USE_OFA, false)
2354 AM_CONDITIONAL(USE_OPENAL, false)
2355 AM_CONDITIONAL(USE_OPENCV, false)
2356 AM_CONDITIONAL(USE_OPENEXR, false)
2357 AM_CONDITIONAL(USE_OPENGL, false)
2358 AM_CONDITIONAL(USE_OPENJPEG, false)
2359 AM_CONDITIONAL(USE_OPENMPT, false)
2360 AM_CONDITIONAL(USE_OPENNI2, false)
2361 AM_CONDITIONAL(USE_OPUS, false)
2362 AM_CONDITIONAL(USE_WILDMIDI, false)
2363 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2364 AM_CONDITIONAL(USE_SNDFILE, false)
2365 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2366 AM_CONDITIONAL(USE_SPANDSP, false)
2367 AM_CONDITIONAL(USE_SPC, false)
2368 AM_CONDITIONAL(USE_SRTP, false)
2369 AM_CONDITIONAL(USE_SRT, false)
2370 AM_CONDITIONAL(USE_GME, false)
2371 AM_CONDITIONAL(USE_DVB, false)
2372 AM_CONDITIONAL(USE_ACM, false)
2373 AM_CONDITIONAL(USE_VDPAU, false)
2374 AM_CONDITIONAL(USE_SBC, false)
2375 AM_CONDITIONAL(USE_SCHRO, false)
2376 AM_CONDITIONAL(USE_ZBAR, false)
2377 AM_CONDITIONAL(USE_RSVG, false)
2378 AM_CONDITIONAL(USE_RTMP, false)
2379 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2380 AM_CONDITIONAL(USE_UVCH264, false)
2381 AM_CONDITIONAL(USE_WEBP, false)
2382 AM_CONDITIONAL(USE_WEBRTC, false)
2383 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2384 AM_CONDITIONAL(USE_OPENH264, false)
2385 AM_CONDITIONAL(USE_X265, false)
2386 AM_CONDITIONAL(USE_DTLS, false)
2387 AM_CONDITIONAL(USE_VULKAN, false)
2388 AM_CONDITIONAL(USE_TTML, false)
2390 fi dnl of EXT plugins
2392 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2395 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
2396 dnl GST_*: flags shared by built objects to link against GStreamer
2397 dnl GST_ALL_LDFLAGS: linker flags shared by all
2398 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
2399 dnl GST_LT_LDFLAGS: library versioning of our libraries
2400 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2402 dnl GST_OPTION_CFLAGS
2403 if test "x$USE_DEBUG" = xyes; then
2406 AC_SUBST(PROFILE_CFLAGS)
2408 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2409 dnl Define _only_ during CVS (not pre-releases or releases)
2410 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2412 DEPRECATED_CFLAGS=""
2414 AC_SUBST(DEPRECATED_CFLAGS)
2416 VISIBILITY_CFLAGS=""
2417 AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
2418 AC_SUBST(VISIBILITY_CFLAGS)
2420 VISIBILITY_CXXFLAGS=""
2421 if test "x$HAVE_CXX" = "xyes"; then
2422 AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2424 AC_SUBST(VISIBILITY_CXXFLAGS)
2426 dnl disable strict aliasing
2427 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2428 AC_SUBST(EXTRA_CFLAGS)
2430 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2431 dnl at make time with e.g. make ERROR_CFLAGS=""
2432 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2433 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2434 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2435 AC_SUBST(GST_OPTION_CFLAGS)
2436 AC_SUBST(GST_OPTION_CXXFLAGS)
2437 AC_SUBST(GST_OPTION_OBJCFLAGS)
2439 dnl FIXME: do we want to rename to GST_ALL_* ?
2440 dnl prefer internal headers to already installed ones
2441 dnl also add builddir include for enumtypes and marshal
2442 dnl add GST_OPTION_CFLAGS, but overridable
2443 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2444 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2445 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2446 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2447 AC_SUBST(GST_CFLAGS)
2448 AC_SUBST(GST_CXXFLAGS)
2449 AC_SUBST(GST_OBJCFLAGS)
2451 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2452 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2453 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2454 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2455 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2456 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2458 dnl LDFLAGS really should only contain flags, not libs - they get added before
2459 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2460 GST_ALL_LDFLAGS="-no-undefined"
2461 if test "x${enable_Bsymbolic}" = "xyes"; then
2462 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2464 AC_SUBST(GST_ALL_LDFLAGS)
2467 dnl linker flags shared by all libraries
2468 dnl LDFLAGS modifier defining exported symbols from built libraries
2469 dnl (export _gst_foo but not __gst_foo)
2471 AC_SUBST(GST_LIB_LDFLAGS)
2473 dnl this really should only contain flags, not libs - they get added before
2474 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2475 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2476 AC_SUBST(GST_PLUGIN_LDFLAGS)
2478 dnl *** output files ***
2480 $MKDIR_P tests/check/orc
2489 gst/accurip/Makefile
2490 gst/adpcmdec/Makefile
2491 gst/adpcmenc/Makefile
2493 gst/videoframe_audiolevel/Makefile
2495 gst/audiobuffersplit/Makefile
2496 gst/audiofxbad/Makefile
2497 gst/audiomixmatrix/Makefile
2498 gst/audiovisualizers/Makefile
2499 gst/autoconvert/Makefile
2501 gst/camerabin2/Makefile
2502 gst/coloreffects/Makefile
2503 gst/debugutils/Makefile
2504 gst/dvbsuboverlay/Makefile
2506 gst/faceoverlay/Makefile
2507 gst/festival/Makefile
2508 gst/fieldanalysis/Makefile
2509 gst/freeverb/Makefile
2511 gst/gaudieffects/Makefile
2512 gst/geometrictransform/Makefile
2516 gst/interlace/Makefile
2517 gst/ivfparse/Makefile
2519 gst/jp2kdecimator/Makefile
2520 gst/jpegformat/Makefile
2523 gst/mpegdemux/Makefile
2524 gst/mpegtsdemux/Makefile
2525 gst/mpegtsmux/Makefile
2526 gst/mpegtsmux/tsmux/Makefile
2527 gst/mpegpsmux/Makefile
2531 gst/pcapparse/Makefile
2534 gst/rawparse/Makefile
2535 gst/removesilence/Makefile
2537 gst/segmentclip/Makefile
2543 gst/timecode/Makefile
2544 gst/videofilters/Makefile
2545 gst/videoparsers/Makefile
2546 gst/videosignal/Makefile
2550 gst/compositor/Makefile
2552 gst-libs/gst/Makefile
2553 gst-libs/gst/adaptivedemux/Makefile
2554 gst-libs/gst/basecamerabinsrc/Makefile
2555 gst-libs/gst/insertbin/Makefile
2556 gst-libs/gst/interfaces/Makefile
2557 gst-libs/gst/isoff/Makefile
2558 gst-libs/gst/codecparsers/Makefile
2559 gst-libs/gst/mpegts/Makefile
2560 gst-libs/gst/uridownloader/Makefile
2561 gst-libs/gst/wayland/Makefile
2562 gst-libs/gst/webrtc/Makefile
2563 gst-libs/gst/player/Makefile
2564 gst-libs/gst/video/Makefile
2565 gst-libs/gst/audio/Makefile
2566 gst-libs/gst/opencv/Makefile
2568 sys/dshowdecwrapper/Makefile
2570 sys/acmmp3dec/Makefile
2571 sys/androidmedia/Makefile
2572 sys/applemedia/Makefile
2574 sys/d3dvideosink/Makefile
2575 sys/decklink/Makefile
2576 sys/directsound/Makefile
2577 sys/dshowsrcwrapper/Makefile
2578 sys/dshowvideosink/Makefile
2581 sys/ipcpipeline/Makefile
2586 sys/opensles/Makefile
2588 sys/tinyalsa/Makefile
2589 sys/uvch264/Makefile
2594 sys/winscreencap/Makefile
2596 tests/check/Makefile
2597 tests/files/Makefile
2598 tests/examples/Makefile
2599 tests/examples/avsamplesink/Makefile
2600 tests/examples/camerabin2/Makefile
2601 tests/examples/codecparsers/Makefile
2602 tests/examples/compositor/Makefile
2603 tests/examples/directfb/Makefile
2604 tests/examples/audiomixmatrix/Makefile
2605 tests/examples/ipcpipeline/Makefile
2606 tests/examples/mpegts/Makefile
2607 tests/examples/mxf/Makefile
2608 tests/examples/opencv/Makefile
2609 tests/examples/uvch264/Makefile
2610 tests/examples/waylandsink/Makefile
2611 tests/examples/webrtc/Makefile
2612 tests/icles/Makefile
2613 ext/voamrwbenc/Makefile
2614 ext/voaacenc/Makefile
2615 ext/assrender/Makefile
2619 ext/chromaprint/Makefile
2620 ext/colormanagement/Makefile
2624 ext/directfb/Makefile
2625 ext/wayland/Makefile
2632 ext/fluidsynth/Makefile
2640 ext/libde265/Makefile
2643 ext/modplug/Makefile
2644 ext/mpeg2enc/Makefile
2646 ext/musepack/Makefile
2651 ext/openexr/Makefile
2652 ext/openh264/Makefile
2653 ext/openjpeg/Makefile
2654 ext/openmpt/Makefile
2655 ext/openni2/Makefile
2658 ext/resindvd/Makefile
2661 ext/schroedinger/Makefile
2662 ext/smoothstreaming/Makefile
2663 ext/sndfile/Makefile
2664 ext/soundtouch/Makefile
2665 ext/spandsp/Makefile
2668 ext/teletextdec/Makefile
2671 ext/wildmidi/Makefile
2673 ext/vulkan/xcb/Makefile
2674 ext/vulkan/wayland/Makefile
2680 ext/webrtcdsp/Makefile
2684 docs/plugins/Makefile
2686 docs/version.entities
2688 pkgconfig/gstreamer-plugins-bad.pc
2689 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2690 pkgconfig/gstreamer-codecparsers.pc
2691 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2692 pkgconfig/gstreamer-insertbin.pc
2693 pkgconfig/gstreamer-insertbin-uninstalled.pc
2694 pkgconfig/gstreamer-mpegts.pc
2695 pkgconfig/gstreamer-mpegts-uninstalled.pc
2696 pkgconfig/gstreamer-player.pc
2697 pkgconfig/gstreamer-player-uninstalled.pc
2698 pkgconfig/gstreamer-wayland.pc
2699 pkgconfig/gstreamer-wayland-uninstalled.pc
2700 pkgconfig/gstreamer-webrtc.pc
2701 pkgconfig/gstreamer-webrtc-uninstalled.pc
2702 pkgconfig/gstreamer-bad-video.pc
2703 pkgconfig/gstreamer-bad-video-uninstalled.pc
2704 pkgconfig/gstreamer-bad-audio.pc
2705 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2712 AG_GST_OUTPUT_PLUGINS