autotools: use -fno-strict-aliasing where supported
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.69])
2
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])
7
8 AG_GST_INIT
9
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
12
13 dnl define PACKAGE_VERSION_* variables
14 AS_VERSION
15
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
21
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
24
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
27
28 dnl sets host_* variables
29 AC_CANONICAL_HOST
30
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)])
35
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
38
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
41 GST_API_VERSION=1.0
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44   [GStreamer API Version])
45
46 AG_GST_LIBTOOL_PREPARE
47
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)
55
56 dnl *** required versions of GStreamer stuff ***
57 GST_REQ=1.13.0.1
58 GSTPB_REQ=1.13.0.1
59
60 dnl *** autotools stuff ****
61
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
64
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
67
68 dnl set up gettext
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])
73
74 dnl *** check for arguments to configure ***
75
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
78
79 AG_GST_ARG_DEBUG
80 AG_GST_ARG_PROFILING
81 AG_GST_ARG_VALGRIND
82 AG_GST_ARG_GCOV
83
84 AG_GST_ARG_EXAMPLES
85
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
89
90 AG_GST_ARG_WITH_PLUGINS
91
92 AG_GST_ARG_ENABLE_EXTERNAL
93
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
95
96 AG_GST_PKG_CONFIG_PATH
97
98 dnl *** checks for platform ***
99 AG_GST_PLATFORM
100
101 dnl * hardware/architecture *
102
103 dnl common/m4/gst-arch.m4
104 dnl check CPU type
105 AG_GST_ARCH
106
107 dnl Determine endianness
108 AC_C_BIGENDIAN
109
110 dnl *** checks for programs ***
111
112 dnl find a compiler
113 AC_PROG_CC
114 AC_PROG_CC_STDC
115
116 dnl determine c++ compiler
117 AC_PROG_CXX
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
120
121 AC_PROG_OBJC
122
123 dnl check if the compiler supports '-c' and '-o' options
124 AM_PROG_CC_C_O
125
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
128
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
131
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
134
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
138
139 dnl *** checks for libraries ***
140
141 dnl check for libm, for sin() etc.
142 LT_LIB_M
143 AC_SUBST(LIBM)
144
145 AC_FUNC_MMAP
146
147 dnl check for pthreads
148 AX_PTHREAD
149
150 dnl *** checks for header files ***
151
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
154
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
157 fi
158
159 AC_CHECK_HEADERS([sys/time.h])
160
161 dnl used by ext/dts
162 AX_CREATE_STDINT_H
163
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
166
167 dnl *** checks for types/defines ***
168
169 dnl *** checks for structures ***
170
171 dnl *** checks for compiler characteristics ***
172
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r pipe2])
175
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
178
179 dnl *** checks for dependency libraries ***
180
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)])
184
185 dnl GLib is required
186 GLIB_REQ=2.40.0
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
188
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
201 if test "x$HAVE_GST_GL" = "xyes"; then
202
203   AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
204   GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
205   AC_MSG_RESULT([$GST_GL_WINSYS])
206   GST_GL_HAVE_WINDOW_X11=""
207   GST_GL_HAVE_WINDOW_WAYLAND=""
208   GST_GL_HAVE_WINDOW_ANDROID=""
209   GST_GL_HAVE_WINDOW_COCOA=""
210   GST_GL_HAVE_WINDOW_EAGL=""
211   case "$GST_GL_WINSYS" in  *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
212   case "$GST_GL_WINSYS" in  *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
213   case "$GST_GL_WINSYS" in  *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
214   case "$GST_GL_WINSYS" in  *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
215   case "$GST_GL_WINSYS" in  *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
216
217   AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
218   GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
219   AC_MSG_RESULT([$GST_GL_PLATFORMS])
220   GST_GL_HAVE_PLATFORM_GLX=""
221   GST_GL_HAVE_PLATFORM_EGL=""
222   GST_GL_HAVE_PLATFORM_CGL=""
223   GST_GL_HAVE_PLATFORM_EAGL=""
224   case "$GST_GL_PLATFORMS" in  *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
225   case "$GST_GL_PLATFORMS" in  *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
226   case "$GST_GL_PLATFORMS" in  *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
227   case "$GST_GL_PLATFORMS" in  *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
228
229   AC_MSG_CHECKING([GStreamer OpenGL apis ...])
230   GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
231   AC_MSG_RESULT([$GST_GL_APIS])
232   GST_GL_HAVE_API_GLES2=""
233   GST_GL_HAVE_API_GL=""
234   case "$GST_GL_APIS" in  *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
235   case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
236 fi
237
238 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
239
240 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
241
242 dnl check for uninstalled plugin directories for unit tests
243 AG_GST_CHECK_UNINSTALLED_SETUP([
244   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
245   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
246   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
247 ])
248
249 dnl Check for documentation xrefs
250 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
251 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
252 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
253 AC_SUBST(GLIB_PREFIX)
254 AC_SUBST(GST_PREFIX)
255 AC_SUBST(GSTPB_PREFIX)
256
257 dnl GTK is optional and used in examples
258 HAVE_GTK=NO
259 GTK2_REQ=2.14.0
260 GTK3_REQ=2.91.3
261 if test "x$BUILD_EXAMPLES" = "xyes"; then
262   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
263   AC_ARG_WITH([gtk],
264     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
265     [case "$with_gtk" in
266         2.0) GTK_REQ=$GTK2_REQ ;;
267         3.0) GTK_REQ=$GTK3_REQ ;;
268         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
269     esac],
270     [with_gtk=2.0
271      GTK_REQ=$GTK2_REQ])
272   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
273   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
274   AC_SUBST(GTK_LIBS)
275   AC_SUBST(GTK_CFLAGS)
276 fi
277 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
278
279 dnl Check for -Bsymbolic-functions linker flag used to avoid
280 dnl intra-library PLT jumps, if available.
281 AC_ARG_ENABLE(Bsymbolic,
282               [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
283               [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
284                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
285                LDFLAGS=-Wl,-Bsymbolic-functions
286                LIBS=
287                AC_TRY_LINK([], [return 0],
288                            AC_MSG_RESULT(yes)
289                            enable_Bsymbolic=yes,
290                            AC_MSG_RESULT(no)
291                            enable_Bsymbolic=no)
292                LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
293
294 dnl *** set variables based on configure arguments ***
295
296 dnl GTK is optional and used in examples
297 HAVE_GTK3=NO
298 if test "x$BUILD_EXAMPLES" = "xyes"; then
299   PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
300   if test "x$HAVE_GTK3" = "xyes"; then
301     HAVE_GTK=yes
302     GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
303     AC_SUBST(GTK_VERSION)
304     GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
305     AC_SUBST(GTK_BASE_DIR)
306   fi
307 fi
308 AC_SUBST(GTK3_LIBS)
309 AC_SUBST(GTK3_CFLAGS)
310 AC_SUBST(HAVE_GTK3)
311 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
312
313 dnl x11 is optional for librfb
314 HAVE_X11=NO
315 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
316 AC_SUBST(X11_LIBS)
317 AC_SUBST(X11_CFLAGS)
318 AC_SUBST(HAVE_X11)
319 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
320 if test "x$HAVE_X11" = "xyes"; then
321   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
322 fi
323
324 dnl exif (used on jifmux tests) ****
325 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
326 AC_SUBST(EXIF_LIBS)
327 AC_SUBST(EXIF_CFLAGS)
328 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
329
330 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
331   PKG_CHECK_MODULES(DSSIM, dssim, [
332     HAVE_DSSIM="yes"
333     HAVE_IQA="yes"
334   ], [
335     HAVE_DSSIM="no"
336     HAVE_IQA="no"
337   ])
338
339   if test "x$HAVE_DSSIM" = "xyes"; then
340     AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
341   fi
342   AC_SUBST(DSSIM_LIBS)
343   AC_SUBST(DSSIM_CFLAGS)
344 ])
345 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
346
347 dnl Orc
348 ORC_CHECK([0.4.17])
349
350 dnl set license and copyright notice
351 GST_LICENSE="LGPL"
352 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
353 AC_SUBST(GST_LICENSE)
354
355 dnl define LIBDIR so we can inform people where we live
356 AS_AC_EXPAND(LIBDIR, $libdir)
357 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
358
359 dnl set location of plugin directory
360 AG_GST_SET_PLUGINDIR
361
362 dnl set release date/time
363 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
364   ["${srcdir}/gst-plugins-bad.doap"],
365   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
366
367 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
368 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
369 if test x$enable_static = xyes -a x$enable_shared = xno; then
370   GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
371 fi
372
373 AC_ARG_WITH([player-tests],
374   AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
375 if test x$with_player_tests = xyes; then
376   AC_PATH_PROG([WGET], [wget], no)
377   if test x$WGET = xno; then
378     AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
379     with_player_tests=no
380   fi
381 fi
382 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
383
384 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
385 dnl make sure it doesn't complain about unused variables if debugging is disabled
386 NO_WARNINGS=""
387 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
388
389 dnl define an ERROR_CFLAGS Makefile variable
390 dnl -Waggregate-return - libexif returns aggregates
391 dnl -Wundef - Windows headers check _MSC_VER unconditionally
392 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
393     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
394     -Wwrite-strings -Wformat-security -Wold-style-definition
395     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
396     -Wnested-externs $NO_WARNINGS])
397
398 dnl define an ERROR_CXXFLAGS Makefile variable
399 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
400     -Wmissing-declarations -Wredundant-decls
401     -Wwrite-strings -Wformat-nonliteral -Wformat-security
402     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
403
404 dnl define an ERROR_OBJCFLAGS Makefile variable
405 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
406     -Wmissing-declarations -Wredundant-decls
407     -Wwrite-strings -Wformat-nonliteral -Wformat-security
408     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
409
410 dnl define correct level for debugging messages
411 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
412
413 dnl used in examples
414 AG_GST_DEFAULT_ELEMENTS
415
416 dnl *** plug-ins to include ***
417
418 dnl these are all the gst plug-ins, compilable without additional libs
419 AG_GST_CHECK_PLUGIN(accurip)
420 AG_GST_CHECK_PLUGIN(adpcmdec)
421 AG_GST_CHECK_PLUGIN(adpcmenc)
422 AG_GST_CHECK_PLUGIN(aiff)
423 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
424 AG_GST_CHECK_PLUGIN(asfmux)
425 AG_GST_CHECK_PLUGIN(audiobuffersplit)
426 AG_GST_CHECK_PLUGIN(audiofxbad)
427 AG_GST_CHECK_PLUGIN(audiomixer)
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(rawparse)
465 AG_GST_CHECK_PLUGIN(removesilence)
466 AG_GST_CHECK_PLUGIN(sdp)
467 AG_GST_CHECK_PLUGIN(segmentclip)
468 AG_GST_CHECK_PLUGIN(siren)
469 AG_GST_CHECK_PLUGIN(smooth)
470 AG_GST_CHECK_PLUGIN(speed)
471 AG_GST_CHECK_PLUGIN(subenc)
472 AG_GST_CHECK_PLUGIN(stereo)
473 AG_GST_CHECK_PLUGIN(timecode)
474 AG_GST_CHECK_PLUGIN(videofilters)
475 AG_GST_CHECK_PLUGIN(videoparsers)
476 AG_GST_CHECK_PLUGIN(videosignal)
477 AG_GST_CHECK_PLUGIN(vmnc)
478 AG_GST_CHECK_PLUGIN(y4m)
479 AG_GST_CHECK_PLUGIN(yadif)
480
481 dnl *** plug-ins to exclude ***
482
483 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
484 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
485 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
486
487 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
488   old_LIBS=$LIBS
489   LIBS="$LIBS -framework VideoToolbox"
490   AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
491     AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
492   ], [
493   ])
494   LIBS=$old_LIBS
495 fi
496
497 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
498 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
499   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
500 fi
501
502 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
503 if test "x$HAVE_IOS" = "xyes"; then
504   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
505 fi
506
507 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
508 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
509   AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
510 fi
511
512 dnl disable gst plugins we might not be able to build on this
513 dnl platform: (ugly but minimally invasive)
514 dnl FIXME: maybe move to sys, or make work with winsock2
515 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
516 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
517
518 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
519   WINSOCK2_LIBS="-lws2_32"
520   AC_SUBST(WINSOCK2_LIBS)
521 fi
522
523 dnl Vulkan
524 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
525 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
526
527 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
528 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
529 VULKAN_CONFIG_DEFINES="
530 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
531 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
532
533 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
534         outfile=vkconfig.h-tmp
535         cat > $outfile <<\_______EOF
536 /* vkconfig.h
537  *
538  * This is a generated file.  Please modify `configure.ac'
539  */
540
541 #ifndef __GST_VULKAN_CONFIG_H__
542 #define __GST_VULKAN_CONFIG_H__
543
544 #include <gst/gst.h>
545
546 G_BEGIN_DECLS
547
548 _______EOF
549
550         cat >>$outfile <<_______EOF
551 $vulkan_config_defines
552 _______EOF
553
554         cat >>$outfile <<_______EOF
555
556 G_END_DECLS
557
558 #endif  /* __GST_VULKAN_CONFIG_H__ */
559 _______EOF
560
561
562         if cmp -s $outfile ext/vulkan/vkconfig.h; then
563           AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
564           rm -f $outfile
565         else
566           mv $outfile ext/vulkan/vkconfig.h
567         fi
568 ],[
569 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
570 ])
571
572 dnl *** sys plug-ins ***
573
574 dnl DirectSound
575 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
576 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
577   HAVE_DIRECTSOUND="no"
578   save_CFLAGS="$CFLAGS"
579   save_LDFLAGS="$LDFLAGS"
580   save_LIBS="$LIBS"
581   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
582   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
583   LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
584   AC_MSG_CHECKING(for DirectSound LDFLAGS)
585   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
586 #include <windows.h>
587 #include <dxerr9.h>
588 #include <dsound.h>
589 #include <mmsystem.h>
590 ]], [[
591   DXGetErrorString9 (0);
592   DirectSoundCreate(NULL, NULL, NULL);
593 ]])],
594     [HAVE_DIRECTSOUND="yes"],
595     [HAVE_DIRECTSOUND="no"])
596   AC_MSG_RESULT($HAVE_DIRECTSOUND)
597   CFLAGS=$save_CFLAGS
598   LDFLAGS=$save_LDFLAGS
599   LIBS=$save_LIBS
600
601   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
602     dnl this is much more than we want
603     DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
604     AC_SUBST(DIRECTX_CFLAGS)
605     AC_SUBST(DIRECTX_LDFLAGS)
606     AC_SUBST(DIRECTSOUND_LIBS)
607   fi
608   AC_SUBST(HAVE_DIRECTSOUND)
609 ])
610
611 dnl WASAPI
612 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
613 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
614   HAVE_WASAPI="no"
615   save_CFLAGS="$CFLAGS"
616   save_LDFLAGS="$LDFLAGS"
617   save_LIBS="$LIBS"
618   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
619   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
620   LIBS="$LIBS -lole32 -lwinmm -lksuser"
621   AC_MSG_CHECKING(for WASAPI LDFLAGS)
622   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
623 #include <windows.h>
624 #include <stdio.h>
625 #include <mmsystem.h>
626 #include <mmdeviceapi.h>
627 ]], [[
628 int main ()
629 {
630     HRESULT hr = S_OK;
631
632     hr = CoInitialize(NULL);
633     if (FAILED(hr)) {
634         printf("CoInitialize failed: hr = 0x%08x", hr);
635         return __LINE__;
636     }
637
638         int result = 0;
639     // result = do_everything(argc, argv);
640
641     CoUninitialize();
642     return result;
643 }
644 ]])],
645     [HAVE_WASAPI="yes"],
646     [HAVE_WASAPI="no"])
647   AC_MSG_RESULT($HAVE_WASAPI)
648   CFLAGS=$save_CFLAGS
649   LDFLAGS=$save_LDFLAGS
650   LIBS=$save_LIBS
651
652   if test "x$HAVE_WASAPI" = "xyes";  then
653     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
654     AC_SUBST(WASAPI_LIBS)
655   fi
656   AC_SUBST(HAVE_WASAPI)
657 ])
658
659 dnl Direct3D
660 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
661 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
662   HAVE_DIRECT3D="no"
663   save_CFLAGS="$CFLAGS"
664   save_LDFLAGS="$LDFLAGS"
665   save_LIBS="$LIBS"
666   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
667   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
668   LIBS="$LIBS -ld3d9 -lgdi32"
669   AC_MSG_CHECKING(for Direct3D LDFLAGS)
670   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
671 #include <windows.h>
672 #include <d3d9.h>
673 ]], [[
674   Direct3DCreate9(D3D_SDK_VERSION);
675 ]])],
676     [HAVE_DIRECT3D="yes"],
677     [HAVE_DIRECT3D="no"])
678   AC_MSG_RESULT($HAVE_DIRECT3D)
679   CFLAGS=$save_CFLAGS
680   LDFLAGS=$save_LDFLAGS
681   LIBS=$save_LIBS
682
683   if test "x$HAVE_DIRECT3D" = "xyes";  then
684     DIRECT3D_LIBS="-ld3d9 -lgdi32"
685     AC_SUBST(DIRECT3D_LIBS)
686   fi
687   AC_SUBST(HAVE_DIRECT3D)
688 ])
689
690 dnl winscreencap
691 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
692 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
693   HAVE_WINSCREENCAP="no"
694   save_CFLAGS="$CFLAGS"
695   save_LDFLAGS="$LDFLAGS"
696   save_LIBS="$LIBS"
697   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
698   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
699   LIBS="$LIBS -ld3d9 -lgdi32"
700   AC_MSG_CHECKING(for Direct3D LDFLAGS)
701   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
702 #include <windows.h>
703 #include <d3d9.h>
704 ]], [[
705   Direct3DCreate9(D3D_SDK_VERSION);
706 ]])],
707     [HAVE_WINSCREENCAP="yes"],
708     [HAVE_WINSCREENCAP="no"])
709   AC_MSG_RESULT($HAVE_WINSCREENCAP)
710   CFLAGS=$save_CFLAGS
711   LDFLAGS=$save_LDFLAGS
712   LIBS=$save_LIBS
713
714   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
715     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
716     AC_SUBST(WINSCREENCAP_LIBS)
717   fi
718   AC_SUBST(HAVE_WINSCREENCAP)
719 ])
720
721 dnl winks
722 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
723 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
724   HAVE_WINKS="no"
725   save_CFLAGS="$CFLAGS"
726   save_LDFLAGS="$LDFLAGS"
727   save_LIBS="$LIBS"
728   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
729   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
730   LIBS="$LIBS -lole32 -luuid -lstrmiids"
731   AC_MSG_CHECKING(for Winks LDFLAGS)
732   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
733 #include <windows.h>
734 #include <strmif.h>
735 #include <uuids.h>
736 ]], [[
737 int main () {
738   IGraphBuilder *pGraph = NULL;
739   HRESULT hr = CoInitialize(NULL);
740   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
741                         &IID_IGraphBuilder, (void **)&pGraph);
742
743   return 0;
744 }
745 ]])],
746     [HAVE_WINKS="yes"],
747     [HAVE_WINKS="no"])
748   AC_MSG_RESULT($HAVE_WINKS)
749   CFLAGS=$save_CFLAGS
750   LDFLAGS=$save_LDFLAGS
751   LIBS=$save_LIBS
752
753   if test "x$HAVE_WINKS" = "xyes";  then
754     dnl this is much more than we want
755     WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
756     AC_SUBST(DIRECTX_CFLAGS)
757     AC_SUBST(DIRECTX_LDFLAGS)
758     AC_SUBST(WINKS_LIBS)
759   fi
760   AC_SUBST(HAVE_WINKS)
761 ])
762
763 dnl *** Android Media ***
764 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
765 HAVE_ANDROID_MEDIA="no"
766 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
767   case "$host" in
768     *android*)
769       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
770       ;;
771     *)
772       HAVE_ANDROID_MEDIA="no"
773       ;;
774   esac
775 ])
776
777 dnl *** AppleMedia (OS X and iOS) ***
778 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
779 HAVE_APPLE_MEDIA="no"
780 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
781 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
782   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
783   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
784   if test "x$HAVE_IOS" = "xno"; then
785     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
786   fi
787 ])
788
789 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
790 case "$host" in
791   *-*darwin*)
792     ;;
793   *)
794     HAVE_APPLE_MEDIA="no"
795     ;;
796 esac
797
798 dnl *** bluez ***
799 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
800 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
801   PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
802     PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
803       AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
804       HAVE_BLUEZ=yes
805       AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
806     ], [
807       HAVE_BLUEZ=no
808     ])
809   ], [
810     HAVE_BLUEZ=no
811   ])
812 ])
813
814 dnl *** OS/X AVCVideoServices ***
815 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
816 HAVE_AVC="no"
817 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
818   AC_LANG_PUSH([C++])
819   save_CPPFLAGS="$CPPFLAGS"
820   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
821   save_LIBS="$LIBS"
822   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
823   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
824   LIBS=$save_LIBS
825   CPPFLAGS=$save_CPPFLAGS
826   AC_LANG_POP([C++])
827 ])
828 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
829 case "$host" in
830   *-*darwin*)
831     ;;
832   *)
833     HAVE_AVC="no"
834     ;;
835 esac
836
837 dnl check for shm_open (for shm plugin)
838 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
839 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
840     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
841         case $host in
842         *-darwin* | *-macos10*)
843             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
844             HAVE_SHM=yes
845             ;;
846         *-*-OpenBSD*)
847             HAVE_SHM=yes
848             ;;
849         *)
850             AC_CHECK_LIB([rt], [shm_open],
851                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
852                 #include <sys/socket.h>
853                     ]),
854                 HAVE_SHM=no)
855             AC_SUBST(SHM_LIBS, "-lrt")
856             ;;
857         esac
858     else
859         HAVE_SHM=no
860     fi
861 ])
862
863 dnl check for unix sockets (ipcpipeline plugin)
864 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
865 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
866     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
867         AC_CHECK_FUNC(pipe, [
868           AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
869           ], [
870           HAVE_IPCPIPELINE=no
871         ])
872     else
873         HAVE_IPCPIPELINE=no
874     fi
875 ])
876
877 dnl check for Video CD
878 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
879 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
880   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
881 ])
882
883 dnl check for OpenSL ES
884 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
885 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
886   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
887 ])
888
889 dnl *** UVC H264 ***
890 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
891 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
892   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
893   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
894           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
895           HAVE_GUDEV="yes" ],
896           [HAVE_GUDEV="no"])
897   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
898           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
899           HAVE_LIBUSB="yes" ],
900           [HAVE_LIBUSB="no"])
901   if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
902      test "x$HAVE_GUDEV" = "xyes" && \
903      test "x$HAVE_LIBUSB" = "xyes"; then
904     HAVE_UVCH264=yes
905   else
906     HAVE_UVCH264=no
907   fi
908 ])
909 AC_SUBST(LIBUDEV_CFLAGS)
910 AC_SUBST(LIBUDEV_LIBS)
911 AC_SUBST(LIBUSB_CFLAGS)
912 AC_SUBST(LIBUSB_LIBS)
913
914 dnl *** CUDA ***
915 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
916 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
917   AC_ARG_WITH([cuda-prefix],
918           AS_HELP_STRING([--with-cuda-prefix],
919           [Use the provided prefix for detecting the cuda installation]),
920           [AS_IF([test "x$with_cuda_prefix" != "x"],
921                  [CUDA_PREFIX="$with_cuda_prefix"])],
922           [CUDA_PREFIX=""])
923
924   HAVE_CUDA="yes"
925   if test "x$CUDA_PREFIX" != "x"; then
926     dnl only override if not already set
927     if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
928       dnl this is an educated guess, user can always override these
929       CUDA_CFLAGS="-I$CUDA_PREFIX/include"
930       CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
931     fi
932   else
933     PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
934       PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
935         PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
936           PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
937             AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
938   fi
939
940   HAVE_CUDA_H=no
941   HAVE_CUDART_H=no
942   save_CPPFLAGS="$CPPFLAGS"
943   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
944   AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
945       AC_MSG_WARN([Could not find cuda.h]))
946   AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
947       AC_MSG_WARN([Could not find cuda_runtime_api.h]))
948   CPPFLAGS=$save_CPPFLAGS
949
950   dnl libcuda and libcudart libraries
951   save_LIBS="$LIBS"
952   LIBS="$CUDA_LIBS $save_LIBS"
953   HAVE_CUDART_LIB="no"
954   AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
955       AC_MSG_WARN([Could not find cudart library])])
956   HAVE_CUDA_LIB="no"
957   AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
958       AC_MSG_WARN([Could not find cuda library])])
959   LIBS="$save_LIBS"
960 ])
961
962 dnl *** NVDEC ***
963 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
964 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
965   HAVE_NVCUVID_H=no
966   save_CPPFLAGS="$CPPFLAGS"
967   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
968   AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
969       AC_MSG_WARN([Could not find nvcuvid.h]))
970   CPPFLAGS=$save_CPPFLAGS
971
972   HAVE_NVCUVID=no
973   save_LIBS="$LIBS"
974   LIBS="$CUDA_LIBS $save_LIBS"
975   AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
976       AC_MSG_WARN([Could not find library nvcuvid]))
977   LIBS="$save_LIBS"
978
979   if test "x$HAVE_NVCUVID_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
980     HAVE_NVDEC=yes
981   else
982     HAVE_NVDEC=no
983   fi
984 ])
985
986 dnl *** NVENC ***
987 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
988 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
989   dnl nvEncodeAPI.h header
990   HAVE_NVENCODEAPI_H=no
991   AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
992   save_CPPFLAGS="$CPPFLAGS"
993   CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
994   AC_CHECK_HEADER([nvEncodeAPI.h], [
995       AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
996           #if NVENCAPI_MAJOR_VERSION < 5
997           #error "Need nvEncodeAPI.h >= 5.0"
998           #endif
999           ]])], [
1000           HAVE_NVENCODEAPI_H=yes
1001           ], [
1002           AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1003           ])
1004       ],
1005       AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1006   AC_SUBST(NVENCODE_CFLAGS)
1007   CPPFLAGS="$save_CPPFLAGS"
1008
1009   dnl libnvnidia-encode library
1010   HAVE_NVENCODE_LIB=no
1011   AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1012   saved_LIBS="$LIBS"
1013   LIBS="$NVENCODE_LIBS $saved_LIBS"
1014   AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1015       AC_MSG_WARN([Could not find library nvidia-encode]))
1016   NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1017   AC_SUBST(NVENCODE_LIBS)
1018   LIBS="$saved_LIBS"
1019
1020   USE_NVENC_GST_GL=no
1021   if test "x$HAVE_CUDA_H" = "xyes" \
1022       -a "x$HAVE_CUDART_H" = "xyes" \
1023       -a "x$HAVE_CUDA_LIB" = "xyes" \
1024       -a "x$HAVE_CUDART_LIB" = "xyes" \
1025       -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1026       -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1027     HAVE_NVENC="yes"
1028     if test x"$USE_OPENGL" = x"yes"; then
1029       dnl cuda-gl interop header
1030       save_CPPFLAGS="$CPPFLAGS"
1031       CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1032       AC_CHECK_HEADER([cuda_gl_interop.h], [
1033         USE_NVENC_GST_GL="yes"
1034         AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1035         ])
1036       CPPFLAGS="$save_CPPFLAGS"
1037     fi
1038   else
1039     HAVE_NVENC="no"
1040   fi
1041 ])
1042 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1043
1044 dnl check for tinyalsa
1045 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1046 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1047   AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1048 ])
1049
1050 dnl check for intel mediasdk
1051 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1052 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1053   PKG_CHECK_MODULES(LIBMFX, libmfx,
1054   [
1055     AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available])
1056     HAVE_MSDK="yes"
1057   ], [
1058     AC_ARG_WITH([msdk-prefix],
1059             AS_HELP_STRING([--with-msdk-prefix],
1060             [Use the provided prefix for detecting the Intel MediaSDK]),
1061             [AS_IF([test "x$with_msdk_prefix" != "x"],
1062                    [MSDK_PREFIX="$with_msdk_prefix"])],
1063             [AS_IF([test "x$MFX_HOME" != "x"],
1064                    [MSDK_PREFIX="$MFX_HOME"],
1065                    [MSDK_PREFIX="/opt/intel/media"])])
1066     MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1067     MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1068     AC_SUBST(MSDK_CFLAGS)
1069     AC_SUBST(MSDK_LIBS)
1070
1071     save_CPPFLAGS="$CPPFLAGS"
1072     CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1073     AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1074     CPPFLAGS="$save_CPPFLAGS"
1075
1076     save_LIBS="$LIBS"
1077     LIBS="$MSDK_LIBS $LIBS"
1078     AC_LANG_PUSH([C++])
1079     AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1080     AC_LANG_POP([C++])
1081     LIBS="$save_LIBS"
1082
1083     if test "x$HAVE_MFXDEFS_H" = "xyes" \
1084         -a "x$HAVE_MFX_LIB" = "xyes"; then
1085       HAVE_MSDK="yes"
1086     else
1087       HAVE_MSDK="no"
1088     fi
1089   ])
1090
1091   PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1092
1093   if test "x$HAVE_MSDK" = "xyes" \
1094       -a "x$HAVE_LIBVA_DRM" = "xyes"; then
1095     HAVE_MSDK="yes"
1096   else
1097     HAVE_MSDK="no"
1098   fi
1099 ])
1100 AM_CONDITIONAL(USE_MSDK_LIBVA,
1101     test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
1102
1103 dnl *** ext plug-ins ***
1104 dnl keep this list sorted alphabetically !
1105
1106 if test "x$BUILD_EXTERNAL" = "xyes"; then
1107
1108 dnl *** assrender ***
1109 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1110 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1111   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1112     HAVE_ASSRENDER="yes" ], [
1113     HAVE_ASSRENDER="no"
1114   ])
1115 ])
1116 AC_SUBST(ASSRENDER_CFLAGS)
1117 AC_SUBST(ASSRENDER_LIBS)
1118
1119 dnl *** AOM ***
1120 translit(dnm, m, l) AM_CONDITIONAL(USE_AOM, true)
1121 AG_GST_CHECK_FEATURE(AOM, [AV1 encoder/decoder], aom, [
1122   AG_GST_PKG_CHECK_MODULES(AOM, aom)
1123 ])
1124
1125 dnl *** vo-amrwbenc ***
1126 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1127 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1128   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1129 ])
1130
1131 dnl *** vo-aacenc ***
1132 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1133 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1134   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1135 ])
1136
1137 dnl *** bs2b ***
1138 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1139 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
1140   PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
1141     HAVE_BS2B="no"
1142   ])
1143   AC_SUBST(BS2B_CFLAGS)
1144   AC_SUBST(BS2B_LIBS)
1145 ])
1146
1147 dnl *** BZ2 ***
1148 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
1149 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
1150   save_LIBS=$LIBS
1151   LIBS="$LIBS -lbz2"
1152   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
1153   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
1154   AC_MSG_RESULT($HAVE_BZ2)
1155   LIBS=$save_LIBS
1156   if test "x$HAVE_BZ2" = "xyes"; then
1157     BZ2_LIBS="-lbz2"
1158   fi
1159   AC_SUBST(BZ2_LIBS)
1160
1161 ])
1162
1163 #dnl *** cairo ***
1164 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
1165 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
1166 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
1167 #    HAVE_CAIRO=no
1168 #  ])
1169 #  AC_SUBST(CAIRO_CFLAGS)
1170 #  AC_SUBST(CAIRO_LIBS)
1171 #])
1172
1173 dnl *** chromaprint ***
1174 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
1175 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
1176   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
1177     HAVE_CHROMAPRINT="no"
1178   ])
1179   AC_SUBST(CHROMAPRINT_CFLAGS)
1180   AC_SUBST(CHROMAPRINT_LIBS)
1181 ])
1182
1183 dnl *** Curl ***
1184 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
1185 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
1186   PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
1187     HAVE_CURL="yes"
1188     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
1189       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
1190     ])
1191     AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
1192     [[#ifdef HAVE_SYS_TYPES_H
1193      # include <sys/types.h>
1194      #endif
1195      #ifdef HAVE_NETINET_IN_H
1196      # include <netinet/in.h>
1197      #endif
1198     ]])
1199     AC_MSG_CHECKING([for socket support needed by curlsink])
1200     AC_MSG_RESULT($HAVE_CURL)
1201   ], [
1202     HAVE_CURL="no"
1203   ])
1204   AC_SUBST(CURL_CFLAGS)
1205   AC_SUBST(CURL_LIBS)
1206   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
1207     HAVE_SSH2="yes"
1208     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
1209   ], [
1210     HAVE_SSH2="no"
1211   ])
1212   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
1213   AC_SUBST(SSH2_CFLAGS)
1214   AC_SUBST(SSH2_LIBS)
1215 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
1216
1217 dnl **** DASH ****
1218 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
1219 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
1220   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
1221     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
1222     HAVE_DASH="no"])
1223   AC_SUBST(LIBXML2_CFLAGS)
1224   AC_SUBST(LIBXML2_LIBS)
1225 ])
1226
1227 dnl *** dc1394  ***
1228 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
1229 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
1230    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
1231         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
1232                 HAVE_DC1394="yes"
1233         else
1234                 HAVE_DC1394="no"
1235         fi
1236    ], [
1237         HAVE_DC1394="no"
1238         AC_MSG_RESULT(no)
1239    ])
1240    AC_SUBST(LIBDC1394_CFLAGS)
1241    AC_SUBST(LIBDC1394_LIBS)
1242 ])
1243
1244 dnl *** decklink  ***
1245 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
1246 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
1247    HAVE_DECKLINK=no
1248    case "$host" in
1249      *android*)
1250        HAVE_DECKLINK=no
1251        ;;
1252      *-*linux*)
1253        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1254          AC_CHECK_LIB(dl, dlopen,
1255            [
1256             HAVE_DECKLINK=yes
1257             DECKLINK_CXXFLAGS=
1258             DECKLINK_LIBS="-lpthread -ldl"
1259            ])
1260        fi
1261        ;;
1262      *-*darwin*)
1263        if test "x$HAVE_PTHREAD_H" = "xyes"; then
1264          AC_CHECK_LIB(dl, dlopen,
1265            [
1266             HAVE_DECKLINK=yes
1267             DECKLINK_CXXFLAGS=
1268             DECKLINK_LIBS="-lpthread -ldl"
1269             HAVE_DECKLINK_OSX=yes
1270            ])
1271        fi
1272        ;;
1273      *-mingw*)
1274        HAVE_DECKLINK=yes
1275        DECKLINK_CXXFLAGS=
1276        DECKLINK_LIBS="-lole32 -loleaut32"
1277        HAVE_DECKLINK_WIN=yes
1278        ;;
1279      *)
1280        HAVE_DECKLINK=no
1281        ;;
1282    esac
1283
1284    AC_SUBST(DECKLINK_CXXFLAGS)
1285    AC_SUBST(DECKLINK_LIBS)
1286 ])
1287 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
1288 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
1289
1290 dnl **** DirectFB ****
1291 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
1292 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
1293   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
1294     HAVE_DIRECTFB="no"
1295   ])
1296 ])
1297
1298 dnl **** Wayland ****
1299 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
1300 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
1301 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
1302   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
1303     if test "x$wayland_scanner" != "x"; then
1304       HAVE_WAYLAND="yes"
1305       AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
1306     else
1307       AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
1308       HAVE_WAYLAND="no"
1309     fi
1310     ],
1311     [ HAVE_WAYLAND="no"
1312   ])
1313 ])
1314
1315 dnl **** WebP ****
1316 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
1317 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
1318   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
1319     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
1320   ])
1321   AC_SUBST(WEBP_CFLAGS)
1322   AC_SUBST(WEBP_LIBS)
1323 ])
1324
1325 dnl *** Daala ***
1326 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
1327 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
1328   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
1329     PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
1330             HAVE_DAALA="yes"
1331     ], [
1332             HAVE_DAALA="no"
1333     ])
1334     AC_SUBST(DAALA_CFLAGS)
1335     AC_SUBST(DAALA_LIBS)
1336   fi
1337 ])
1338
1339 dnl *** DTS ***
1340 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
1341 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
1342   HAVE_DTS="yes"
1343   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
1344     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
1345   if test $HAVE_DTS = "no"; then
1346     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
1347       [ DTS_LIBS="-ldts_pic $LIBM"
1348         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
1349       ])
1350   fi
1351   AC_SUBST(DTS_LIBS)
1352 ])
1353
1354 dnl *** resindvd ***
1355 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
1356 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
1357   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
1358     HAVE_RESINDVD="no"
1359   ])
1360 ])
1361
1362 dnl **** Free AAC Encoder (FAAC) ****
1363 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
1364 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
1365   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
1366     FAAC_LIBS="-lfaac $LIBM")
1367   AC_SUBST(FAAC_LIBS)
1368 ])
1369
1370 dnl **** Free AAC Decoder (FAAD2) ****
1371 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
1372 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
1373   AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
1374     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
1375       #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
1376       #error Not faad2
1377       #elif !defined(LATM)
1378       #error Not faad2 >= 2.7
1379       #endif
1380     ]])],[
1381       HAVE_FAAD="yes"
1382       FAAD_LIBS="-lfaad"
1383     ], [
1384       AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
1385       HAVE_FAAD="no"
1386     ])
1387   ], [
1388       HAVE_FAAD="no"
1389   ])
1390   AC_SUBST(FAAD_LIBS)
1391 ])
1392
1393 dnl *** fbdev ***
1394 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
1395 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
1396   if test "x$HAVE_FBDEV" != "xyes"; then
1397     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
1398   fi
1399 ])
1400
1401 dnl *** fdkaac ***
1402 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
1403 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
1404   PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
1405     HAVE_FDK_AAC="yes",
1406     HAVE_FDK_AAC_0_1_4="yes"
1407     AC_DEFINE(HAVE_FDK_AAC_0_1_4, 1, [Define if we have fdk-aac >= 0.1.4])
1408   ],[
1409     PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
1410   ])
1411 ])
1412
1413 dnl *** flite ***
1414 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
1415 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
1416   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
1417     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
1418
1419   AC_SUBST(FLITE_CFLAGS)
1420   AC_SUBST(FLITE_LIBS)
1421 ])
1422
1423 dnl *** gsm ***
1424 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
1425 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
1426   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
1427   if test $HAVE_GSM != "yes"; then
1428     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
1429     if test $HAVE_GSM = "yes"; then
1430       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
1431     fi
1432   fi
1433   AC_SUBST(GSM_LIBS)
1434 ])
1435
1436 dnl *** fluidSynth ***
1437 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
1438 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
1439   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
1440     HAVE_FLUIDSYNTH="no"
1441   ])
1442 ])
1443
1444 dnl *** kate ***
1445 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
1446 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
1447   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
1448     HAVE_KATE="no"
1449   ])
1450   AC_SUBST(KATE_CFLAGS)
1451   AC_SUBST(KATE_LIBS)
1452   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
1453     [
1454       HAVE_TIGER="yes"
1455       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
1456     ],
1457     [
1458       HAVE_TIGER="no"
1459     ]
1460   )
1461   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
1462   AC_SUBST(TIGER_CFLAGS)
1463   AC_SUBST(TIGER_LIBS)
1464 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
1465
1466 dnl *** kms ***
1467 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
1468 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
1469   AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
1470   PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
1471 ])
1472
1473 dnl *** ladspa ***
1474 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1475 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1476   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1477
1478   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
1479   if test $HAVE_LRDF = "yes"; then
1480     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
1481   fi
1482   AC_SUBST(LRDF_LIBS)
1483   AC_SUBST(LRDF_CFLAGS)
1484 ])
1485
1486 dnl *** LCM2  ***
1487 #translit(dnm, m, l) AM_CONDITIONAL(USE_LCMS2, true)
1488 AG_GST_CHECK_FEATURE(LCMS2, [LCMS colormanagement plugin], lcms2, [
1489   PKG_CHECK_MODULES(LCMS2, lcms2 >= 2.7, HAVE_LCMS2="yes", [
1490     HAVE_LCMS2="no"
1491   ])
1492    AC_SUBST(LCMS2_LIBS)
1493 ])
1494
1495 dnl *** LV2 ***
1496 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
1497 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
1498   PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
1499     HAVE_LV2="yes",
1500     HAVE_LILV_0_22="yes"
1501     AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
1502   ],[
1503     PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
1504   ])
1505   AC_SUBST(LILV_CFLAGS)
1506   AC_SUBST(LILV_LIBS)
1507 ])
1508
1509 dnl *** libde265 ***
1510 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
1511 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
1512   PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
1513   AC_SUBST(LIBDE265_CFLAGS)
1514   AC_SUBST(LIBDE265_LIBS)
1515 ])
1516
1517 dnl *** libmms ***
1518 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
1519 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
1520   dnl check with pkg-config first
1521   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
1522     HAVE_LIBMMS="no"
1523   ])
1524 ])
1525 AC_SUBST(LIBMMS_LIBS)
1526
1527 dnl *** libsrt ***
1528 translit(dnm, m, l) AM_CONDITIONAL(USE_SRT, true)
1529 AG_GST_CHECK_FEATURE(SRT, [srt library], srt, [
1530   PKG_CHECK_MODULES(SRT, srt, HAVE_SRT="yes", HAVE_SRT=no)
1531   AC_SUBST(SRT_LIBS)
1532   AC_SUBST(SRT_CFLAGS)
1533 ])
1534
1535 dnl *** libsrtp ***
1536 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
1537 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
1538   HAVE_SRTP="no"
1539   AG_GST_PKG_CHECK_MODULES(SRTP, libsrtp2 >= 2.1.0)
1540   if test x"$HAVE_SRTP" = x"yes"; then
1541     AC_DEFINE([HAVE_SRTP2], 1, [Define if libsrtp2 is used])
1542   else
1543     PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
1544       AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
1545     )
1546   fi
1547   AC_SUBST(SRTP_LIBS)
1548   AC_SUBST(SRTP_CFLAGS)
1549 ])
1550
1551 dnl *** dtls ***
1552 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
1553 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
1554   PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1  libcrypto ], [
1555     HAVE_DTLS="yes"
1556     AC_SUBST(DTLS_CFLAGS)
1557     AC_SUBST(DTLS_LIBS)
1558   ], [
1559     HAVE_DTLS="no"
1560   ])
1561 ])
1562
1563 dnl *** ttml ***
1564 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
1565 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
1566   PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
1567     HAVE_TTML="yes"
1568   ], [
1569     HAVE_TTML="no"
1570   ])
1571 ])
1572
1573 dnl *** modplug ***
1574 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1575 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1576   if test "x$HAVE_CXX" != "xyes"; then
1577     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1578     HAVE_MODPLUG="no"
1579   else
1580     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1581   fi
1582   AC_SUBST(MODPLUG_CFLAGS)
1583   AC_SUBST(MODPLUG_LIBS)
1584 ])
1585
1586 dnl *** mjpegtools version info ***
1587 dnl some may prefer older version (given quirks above)
1588 dnl hm, no version info seems available within mjpegtools headers
1589 dnl and API really moves along
1590 echo
1591 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1592   mjpegtools_api=10601
1593 ], [
1594   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1595     mjpegtools_api=10800
1596   ], [
1597     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
1598       mjpegtools_api=20000
1599     ], [
1600       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
1601         dnl logging API changed in release candidates
1602         OLD_CFLAGS="$CFLAGS"
1603         OLD_LIBS="$LIBS"
1604         CFLAGS="$MJPEG_CFLAGS"
1605         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
1606         AC_CHECK_FUNC(mjpeg_loglev_t, [
1607           mjpegtools_api=10903
1608           ], [
1609           mjpegtools_api=10900
1610           ])
1611         CFLAGS="$OLD_CFLAGS"
1612         LIBS="$OLD_LIBS"
1613       ], [
1614         mjpegtools_api=0
1615       ])
1616     ])
1617   ])
1618 ])
1619 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1620   [mjpegtools API evolution])
1621
1622 dnl *** mpeg2enc ***
1623 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1624 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1625   HAVE_MPEG2ENC="no"
1626   dnl we require a c++ compiler for this one
1627   if [ test x$HAVE_CXX = xyes ]; then
1628     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1629     dnl since many distros include mjpegtools specifically without mplex
1630     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1631     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1632       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1633       touch config.h
1634       dnl switch over to c++ to test things
1635       AC_LANG([C++])
1636       OLD_CPPFLAGS="$CPPFLAGS"
1637       dnl HACK as above
1638       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1639       CPPFLAGS="$CPPFLAGS_GOOD -I."
1640       dnl check headers
1641       mpeg2enc_headers_ok=no
1642       AC_CHECK_HEADER([mpeg2encoder.hh], [
1643         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
1644         OLD_LIBS="$LIBS"
1645         LIBS="$LIBS $MPEG2ENC_LIBS"
1646         AC_MSG_CHECKING([for valid mpeg2enc objects])
1647         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1648           #include <mpeg2encoder.hh>
1649           #include <mpeg2encoptions.hh>
1650
1651           int
1652           main (int   argc,
1653                 char *argv[])
1654           {
1655             MPEG2EncOptions *options = new MPEG2EncOptions ();
1656             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1657             return 0;
1658           }
1659         ]])],[
1660           AC_MSG_RESULT(yes)
1661           dnl so far so good, let's check more things:
1662           dnl mjpegtools-1.8.0 does not install the required
1663           dnl mpeg2syntaxcodes.h header by default, and a new release
1664           dnl is not in sight, so check for this oversight in case
1665           dnl distros or folks have fixed this themselves
1666           if test "$mjpegtools_api" -ge "10800"; then
1667             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1668                 mpeg2enc_headers_ok=yes
1669               ], [
1670                 mpeg2enc_headers_ok=no
1671               ])
1672           else
1673             mpeg2enc_headers_ok=yes
1674           fi
1675           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1676             HAVE_MPEG2ENC="yes"
1677           fi
1678           CPPFLAGS="$CPPFLAGS_GOOD"
1679           AC_SUBST(MPEG2ENC_CFLAGS)
1680           AC_SUBST(MPEG2ENC_LIBS)
1681         ],[
1682           AC_MSG_RESULT(no)
1683         ],[])
1684         LIBS="$OLD_LIBS"
1685       ])
1686
1687       CPPFLAGS="$OLD_CPPFLAGS"
1688       AC_LANG([C])
1689     ], [
1690       HAVE_MPEG2ENC="no"
1691     ])
1692   fi
1693 ])
1694
1695 dnl *** mplex ***
1696 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1697 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1698   HAVE_MPLEX="no"
1699   dnl we require a c++ compiler for this one
1700   if [ test x$HAVE_CXX = xyes ]; then
1701     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1702     dnl since many distros include mjpegtools specifically without mplex
1703     dnl and mpeg2enc, we check for mplex on its own, too.
1704     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1705     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1706       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
1707       touch config.h
1708       dnl switch over to c++ to test things
1709       AC_LANG([C++])
1710       OLD_CPPFLAGS="$CPPFLAGS"
1711       dnl HACK as above
1712       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
1713       CPPFLAGS="$CPPFLAGS_GOOD -I."
1714       AC_CHECK_HEADER(interact.hpp, [
1715         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1716         OLD_LIBS="$LIBS"
1717         LIBS="$LIBS $MPLEX_LIBS"
1718         OLD_LDFLAGS="$LDFLAGS"
1719         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1720         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1721         dnl don't want this here
1722         AC_MSG_CHECKING([for valid mplex objects])
1723         AC_RUN_IFELSE([AC_LANG_SOURCE([[
1724
1725 #include <interact.hpp>
1726 #include <outputstrm.hpp>
1727 #include <multiplexor.hpp>
1728 int
1729 main (int   argc,
1730       char *argv[])
1731 {
1732   class TestOutputStream : public OutputStream {
1733   public:
1734     TestOutputStream () : OutputStream () { }
1735     void Write (uint8_t *a, unsigned int b) { }
1736     void NextSegment () { }
1737     uint64_t SegmentSize () { }
1738     void Close () { }
1739     int Open () { }
1740 };
1741   MultiplexJob *job = new MultiplexJob ();
1742   vector<IBitStream *> inputs;
1743   job->SetupInputStreams (inputs);
1744   TestOutputStream *out = new TestOutputStream ();
1745   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1746   return 0;
1747 }
1748         ]])],[
1749           HAVE_MPLEX="yes"
1750           CPPFLAGS="$CPPFLAGS_GOOD"
1751           AC_SUBST(MPLEX_CFLAGS)
1752           AC_SUBST(MPLEX_LIBS)
1753           AC_SUBST(MPLEX_LDFLAGS)
1754           AC_MSG_RESULT(yes)
1755         ],[AC_MSG_RESULT(no)],[])
1756         LIBS="$OLD_LIBS"
1757         LDFLAGS="$OLD_LDFLAGS"
1758       ])
1759       CPPFLAGS="$OLD_CPPFLAGS"
1760       AC_LANG([C])
1761     ], HAVE_MPLEX="no")
1762   fi
1763 ])
1764
1765 dnl *** musepack ***
1766 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1767 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1768   AC_CHECK_HEADER([mpc/mpcdec.h], [
1769     HAVE_MUSEPACK="yes"
1770     MUSEPACK_LIBS="-lmpcdec"
1771     AC_SUBST(MUSEPACK_LIBS)
1772     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1773       HAVE_MUSEPACK="yes"
1774       MUSEPACK_LIBS="-lmpcdec"
1775       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1776       AC_SUBST(MUSEPACK_LIBS)
1777     ], [HAVE_MUSEPACK="no"])])
1778 ])
1779
1780 dnl *** neon ***
1781 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1782 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1783   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
1784     HAVE_NEON="no"
1785   ])
1786   AC_SUBST(NEON_CFLAGS)
1787   AC_SUBST(NEON_LIBS)
1788 ])
1789
1790 dnl *** ofa ***
1791 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1792 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1793   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1794     HAVE_OFA="no"
1795   ])
1796   AC_SUBST(OFA_CFLAGS)
1797   AC_SUBST(OFA_LIBS)
1798 ])
1799
1800 dnl *** OpenAL ***
1801 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
1802 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
1803   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
1804     HAVE_OPENAL="no"
1805   ])
1806   AC_SUBST(OPENAL_CFLAGS)
1807   AC_SUBST(OPENAL_LIBS)
1808 ])
1809
1810 dnl *** opencv ***
1811 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1812 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1813   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1814   dnl and don't want the build to break when a new opencv version comes out.
1815   dnl Need to adjust this upwards once we know that our code compiles fine with
1816   dnl a new version and the no-backward-compatibility define. (There doesn't
1817   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1818   dnl causes.)
1819   PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 3.5.0 , [
1820     AC_PROG_CXX
1821     AC_LANG([C++])
1822     OLD_CPPFLAGS=$CPPFLAGS
1823     CPPFLAGS=$OPENCV_CFLAGS
1824     something_not_found=no
1825     AC_CHECK_HEADERS([opencv2/core/core_c.h \
1826                       opencv2/core/version.hpp \
1827                       opencv2/highgui/highgui_c.h \
1828                       opencv2/imgproc/imgproc.hpp \
1829                       opencv2/imgproc/imgproc_c.h \
1830                       opencv2/objdetect/objdetect.hpp \
1831                       opencv2/video/background_segm.hpp], [], [something_not_found=yes])
1832
1833     dnl Only required for OpenCV >= 3, we have compat code for older versions
1834     PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
1835       dnl check opencv_contrib headers (not always present in opencv distributions)
1836       AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
1837       [NOT_A_PROBLEM=yes])
1838
1839     CPPFLAGS=$OLD_CPPFLAGS
1840     AC_LANG([C])
1841
1842     if test $something_not_found = "yes"; then
1843       AC_MSG_RESULT([not all opencv2 headers were found])
1844       HAVE_OPENCV="no"
1845     else
1846       HAVE_OPENCV="yes"
1847     fi
1848   ], [
1849     HAVE_OPENCV="no"
1850   ])
1851   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
1852   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
1853   AC_SUBST(OPENCV_PREFIX)
1854   AC_SUBST(OPENCV_CFLAGS)
1855   AC_SUBST(OPENCV_LIBS)
1856   dnl the OpenCV prefix is used at runtime for some object properties, and also
1857   dnl used here to detect which directory is the correct one. For the second
1858   dnl case, make sure the right sysroot is used, ensuring correct behavior
1859   dnl during cross compilation.
1860   if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
1861     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
1862   else
1863     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
1864   fi
1865 ])
1866
1867 dnl *** OpenEXR ***
1868 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
1869 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
1870   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
1871 ])
1872
1873 dnl *** openh264 ***
1874 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
1875 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
1876   AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
1877 ])
1878
1879 dnl *** OpenJPEG ***
1880 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
1881 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
1882   HAVE_OPENJPEG="no"
1883   AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.1)
1884   if test x"$HAVE_OPENJPEG" != x"yes"; then
1885     # Fallback to v1.5
1886     OPENJPEG_LIBS=""
1887     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
1888       HAVE_OPENJPEG="yes",
1889       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
1890     )
1891     if test x"$HAVE_OPENJPEG" = x"yes"; then
1892       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
1893     fi
1894   fi
1895   AC_SUBST(OPENJPEG_CFLAGS)
1896   AC_SUBST(OPENJPEG_LIBS)
1897 ])
1898
1899 dnl *** OpenMPT ***
1900 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
1901 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
1902   PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
1903   AC_SUBST(OPENMPT_CFLAGS)
1904   AC_SUBST(OPENMPT_LIBS)
1905 ])
1906
1907 dnl *** OpenNI2 ***
1908 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
1909 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
1910   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
1911   AC_SUBST(OPENNI2_CFLAGS)
1912   AC_SUBST(OPENNI2_LIBS)
1913 ])
1914
1915 dnl *** Opus ***
1916 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
1917 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
1918   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
1919           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
1920           HAVE_OPUS="yes"
1921   ], [
1922           HAVE_OPUS="no"
1923   ])
1924   AC_SUBST(OPUS_CFLAGS)
1925   AC_SUBST(OPUS_LIBS)
1926 ])
1927
1928 dnl *** rsvg ***
1929 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1930 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1931   AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
1932 ])
1933
1934 dnl *** gl ***
1935 HAVE_GL="no"
1936 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
1937 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
1938   if test "x$HAVE_GST_GL" = "xyes"; then
1939     HAVE_GL="yes"
1940   fi
1941 ])
1942 AM_CONDITIONAL(USE_GL, test "x$HAVE_GL" = "xyes")
1943 AM_CONDITIONAL(USE_OPENGL, test "x$GST_GL_HAVE_API_GL" = "x1")
1944
1945 dnl *** gtk+ ***
1946 HAVE_GTK3_GL="no"
1947 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
1948 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
1949   PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
1950     AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
1951     HAVE_GTK3="yes"
1952   ], [
1953     HAVE_GTK3="no"
1954   ])
1955   PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
1956     GDK_WINDOWING="no"
1957     if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
1958       PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
1959         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
1960         GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
1961         GDK_WINDOWING="yes"
1962       ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
1963     fi
1964     if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
1965       PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
1966         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
1967         GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
1968         GDK_WINDOWING="yes"
1969       ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
1970     fi
1971     if test "x$GDK_WINDOWING" = "xyes"; then
1972       AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
1973       HAVE_GTK3_GL="yes"
1974     fi
1975   ], [
1976       HAVE_GTK3_GL="no"
1977   ])
1978 ])
1979 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
1980
1981 dnl *** Qt ***
1982 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
1983 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
1984   PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
1985       QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
1986       QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
1987       AC_ARG_WITH([moc],
1988            AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
1989            [MOC=$withval])
1990       AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
1991       AC_ARG_WITH([rcc],
1992            AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]),
1993            [RCC=$withval])
1994       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
1995       AC_ARG_WITH([uic],
1996                AS_HELP_STRING([--with-uic], [Set location of qt uic tool]),
1997                [UIC=$withval])
1998       AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
1999       if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2000         AC_MSG_WARN([One of the required qt build programs was not found])
2001         HAVE_QT="no"
2002       else
2003         HAVE_QT="yes"
2004         HAVE_QT_WINDOWING="no"
2005         QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2006         QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2007         AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2008           QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2009           HAVE_QT_QPA_HEADER="yes"
2010         ], [AC_MSG_NOTICE([Cannot find QPA])])
2011         if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2012           PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2013             AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2014             QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2015             QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2016             HAVE_QT_WINDOWING="yes"
2017           ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2018         fi
2019         if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
2020           PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2021             AC_DEFINE([HAVE_QT_WAYLAND], [],
2022                 [Define if Qt Wayland integration is installed])
2023             QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2024             QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2025             HAVE_QT_WINDOWING="yes"
2026           ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2027         fi
2028         if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2029           if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2030             PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2031               # c++ on android requires a standard library and there are multiple
2032               # choices.  cerbero provides a pkg-config file the describes a choice
2033               # so try to use that.  Outside cerbero one has to pass these flags
2034               # manually for the library one is using
2035               PKG_CHECK_MODULES(GNUSTL, gnustl, [
2036                 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2037                 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2038                 ], [
2039                 AC_MSG_NOTICE([Could not find Standard C++ library])])
2040               AC_DEFINE([HAVE_QT_EGLFS], [],
2041                 [Define if Qt eglfs integration is installed])
2042               QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2043               QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2044               HAVE_QT_WINDOWING="yes"
2045             ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2046           else
2047               AC_DEFINE([HAVE_QT_EGLFS], [],
2048                 [Define if Qt eglfs integration is installed])
2049               HAVE_QT_WINDOWING="yes"
2050           fi
2051         fi
2052         if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2053           PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2054             AC_DEFINE([HAVE_QT_MAC], [],
2055                 [Define if Qt Mac integration is installed])
2056             QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2057             QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2058             QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2059             HAVE_QT_WINDOWING="yes"
2060           ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2061         fi
2062         if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2063           if test "x$HAVE_IOS" = "xyes"; then
2064             # iOS doesn't have its own extras package so if we have the core
2065             # modules we are good to go
2066             AC_DEFINE([HAVE_QT_IOS], [],
2067                 [Define if Qt iOS integration is installed])
2068             HAVE_QT_WINDOWING="yes"
2069           fi
2070         fi
2071         if test "x$HAVE_QT_WINDOWING" = "xno"; then
2072           AC_MSG_WARN([Could not find any Qt Windowing integration])
2073           HAVE_QT="no"
2074         fi
2075         AC_SUBST([QT_CFLAGS])
2076         AC_SUBST([QT_LIBS])
2077       fi
2078   ], [
2079       HAVE_QT="no"
2080   ])
2081 ])
2082
2083 dnl *** Vulkan ***
2084 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2085 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2086   AC_CHECK_HEADER(vulkan/vulkan.h, [
2087     AC_CHECK_LIB(vulkan, vkCreateDevice, [
2088       VULKAN_LIBS="-lvulkan"
2089       AC_SUBST(VULKAN_LIBS)
2090       if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2091         HAVE_VULKAN="yes"
2092       fi
2093       if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2094         HAVE_VULKAN="yes"
2095       fi
2096     ], [])
2097   ], [])
2098 ])
2099
2100 dnl *** teletextdec ***
2101 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2102 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2103   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2104  ])
2105
2106 dnl *** wildmidi ***
2107 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2108 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2109   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2110                          WildMidi_Init, ,
2111                          wildmidi_lib.h,
2112                          WILDMIDI_LIBS="-lWildMidi")
2113   WILDMIDI_CFLAGS=
2114   WILDMIDI_LIBS=
2115   if test "x$HAVE_WILDMIDI" = "xyes"; then
2116     AC_MSG_CHECKING([for wildmidi >= 4.0])
2117     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
2118         #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
2119         #error "wildmidi too old"
2120         #endif
2121     ]])], [ AC_MSG_RESULT(yes)
2122       HAVE_WILDMIDI="yes"
2123       WILDMIDI_CFLAGS=
2124       WILDMIDI_LIBS=-lWildMidi
2125     ], [ AC_MSG_RESULT(no)
2126       HAVE_WILDMIDI="no"
2127     ])
2128   else
2129     AC_MSG_WARN([WildMidi library or development headers not found])
2130   fi
2131   AC_SUBST(WILDMIDI_CFLAGS)
2132   AC_SUBST(WILDMIDI_LIBS)
2133 ])
2134
2135 dnl **** Smooth Streaming ****
2136 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2137 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2138   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2139     [HAVE_LIBXML2="yes"
2140      HAVE_SMOOTHSTREAMING="yes"],
2141     [HAVE_LIBXML2="no"
2142      HAVE_SMOOTHSTREAMING="no"])
2143   AC_SUBST(LIBXML2_CFLAGS)
2144   AC_SUBST(LIBXML2_LIBS)
2145 ])
2146
2147 dnl *** sndfile ***
2148 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
2149 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
2150   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
2151   AC_SUBST(SNDFILE_CFLAGS)
2152   AC_SUBST(SNDFILE_LIBS)
2153 ])
2154
2155 dnl *** soundtouch ***
2156 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
2157 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
2158   dnl We only need -lBPM on soundtouch < 1.4
2159   dnl We check for libSoundTouch since Debian used it before upstream
2160   dnl added a pkgconfig file.
2161   HAVE_SOUNDTOUCH_1_4=yes
2162   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
2163     [HAVE_SOUNDTOUCH=yes],
2164     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
2165       [HAVE_SOUNDTOUCH=yes],
2166       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
2167         [HAVE_SOUNDTOUCH=yes
2168           HAVE_SOUNDTOUCH_1_4=no
2169           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2170         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
2171           [HAVE_SOUNDTOUCH=yes],
2172           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
2173             [HAVE_SOUNDTOUCH=yes
2174               HAVE_SOUNDTOUCH_1_4=no
2175               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
2176             HAVE_SOUNDTOUCH=no)])])])])
2177   AC_SUBST(SOUNDTOUCH_CFLAGS)
2178   AC_SUBST(SOUNDTOUCH_LIBS)
2179   if test "x$HAVE_CXX" != "xyes"; then
2180     USE_SOUNDTOUCH=false
2181     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
2182   fi
2183   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
2184      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
2185          [Defined if the available libSoundTouch is >= 1.4])
2186   fi
2187 ])
2188
2189 dnl *** spc ***
2190 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
2191 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
2192   AC_CHECK_HEADER(openspc.h, [
2193     AC_CHECK_LIB(openspc, OSPC_Init, [
2194       SPC_LIBS="-lopenspc"
2195       AC_SUBST(SPC_LIBS)
2196       HAVE_SPC=yes
2197     ], [
2198       HAVE_SPC=no
2199     ])
2200   ], [
2201     HAVE_SPC=no
2202   ])
2203 ])
2204
2205 dnl *** gme ***
2206 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
2207 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
2208   AC_CHECK_HEADER(gme/gme.h, [
2209     AC_CHECK_LIB(gme, gme_new_emu, [
2210       GME_LIBS="-lgme"
2211       AC_SUBST(GME_LIBS)
2212       HAVE_GME=yes
2213     ], [
2214       HAVE_GME=no
2215     ])
2216   ], [
2217     HAVE_GME=no
2218   ])
2219
2220   if test "x$HAVE_GME" = "xyes"; then
2221     AC_CHECK_LIB(gme, gme_enable_accuracy, [
2222       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
2223       ])
2224   fi
2225 ])
2226
2227 dnl *** dvb ***
2228 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
2229 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
2230   AC_MSG_CHECKING([Checking for up to date dvb installation])
2231   AC_CHECK_HEADER(linux/dvb/version.h, [
2232     AC_MSG_CHECKING([for up-to-date dvb API])
2233     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
2234         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
2235         #error "Incompatible dvb API"
2236         #endif
2237     ]])], [ AC_MSG_RESULT(yes)
2238       HAVE_DVB="yes"
2239     ], [ AC_MSG_RESULT(no)
2240       HAVE_DVB="no"
2241     ])
2242   ], [HAVE_DVB="no"])
2243 ])
2244
2245 dnl *** acm ***
2246 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
2247 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
2248   AC_MSG_CHECKING([Checking for ACM support])
2249   AC_CHECK_HEADERS([windows.h msacm.h],
2250       [HAVE_ACM="yes"
2251        AC_SUBST(ACMENC_CFLAGS)
2252        AC_SUBST(ACMMP3DEC_CFLAGS)
2253       ], [HAVE_ACM="no"],
2254       [AC_INCLUDES_DEFAULT
2255 #include <windows.h>])
2256 ])
2257
2258 dnl *** vdpau ***
2259 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
2260 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
2261   VDPAU_CFLAGS=
2262   VDPAU_LIBS=-lvdpau
2263   HAVE_VDPAU=no
2264
2265   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
2266   [
2267     if test "$HAVE_VDPAU" = "no"; then
2268       saved_CPPFLAGS="$CPPFLAGS"
2269       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2270
2271       if test -z "$HAVE_VDPAU_H"; then
2272         dnl Didn't find VDPAU header straight away.
2273         dnl Try /usr/include/nvidia. Need to clear caching vars first
2274         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
2275         unset ac_cv_header_vdpau_vdpau_h
2276         unset ac_cv_header_vdpau_vdpau_x11_h
2277         VDPAU_CFLAGS="-I/usr/include/nvidia"
2278         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
2279         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
2280         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
2281       fi
2282
2283       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
2284
2285       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
2286         dnl Found the headers - look for the lib
2287         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
2288         saved_LIBS="$LIBS"
2289         LIBS="$VDPAU_LIBS $saved_LIBS"
2290         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
2291         LIBS="$saved_LIBS"
2292       fi
2293     fi
2294   ])
2295
2296   if test "$HAVE_VDPAU" = "yes"; then
2297     AC_MSG_NOTICE([Found up to date VDPAU installation])
2298     AC_SUBST(VDPAU_CFLAGS)
2299     AC_SUBST(VDPAU_LIBS)
2300   fi
2301 ])
2302
2303 dnl *** sbc ***
2304 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
2305 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
2306   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
2307 ])
2308
2309 dnl *** schroedinger ***
2310 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
2311 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
2312   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
2313 ])
2314
2315 dnl *** zbar ***
2316 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
2317 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
2318   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
2319 ])
2320
2321 dnl *** rtmp ***
2322 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
2323 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
2324   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
2325 ])
2326
2327 dnl *** spandsp ***
2328 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
2329 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
2330   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
2331     HAVE_SPANDSP="yes" ], [
2332     HAVE_SPANDSP="no"
2333   ])
2334 ])
2335 AC_SUBST(SPANDSP_CFLAGS)
2336 AC_SUBST(SPANDSP_LIBS)
2337
2338 dnl *** hls-crypto ***
2339 AC_ARG_WITH([hls-crypto],
2340   AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
2341     which cryptographic library version to compile against for hls (default: auto)
2342   ]), [
2343     AS_CASE([$with_hls_crypto],
2344       [nettle],[],
2345       [libgcrypt],[],
2346       [openssl],[],
2347       [with_hls_crypto=auto]
2348     )
2349   ]
2350 )
2351
2352 dnl *** hls ***
2353 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
2354 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
2355   AS_CASE([$with_hls_crypto],
2356     [nettle], [
2357       PKG_CHECK_MODULES(NETTLE, nettle, [
2358         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2359         HAVE_HLS="yes"
2360       ],[AC_MSG_ERROR([Could not find nettle library])])
2361     ],
2362     [libgcrypt], [
2363       AM_PATH_LIBGCRYPT([1.2.0], [
2364         AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2365         HAVE_HLS="yes"
2366       ],[AC_MSG_ERROR([Could not find libgcrypt library])])
2367     ],
2368     [openssl], [
2369       PKG_CHECK_MODULES(OPENSSL, openssl, [
2370         AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2371         HAVE_HLS="yes"
2372       ],[AC_MSG_ERROR([Could not find openssl library])])
2373     ],
2374     [
2375       dnl Try to find a valid crypto library
2376       PKG_CHECK_MODULES(NETTLE, nettle, [
2377         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
2378         HAVE_HLS="yes"
2379       ],[
2380         AM_PATH_LIBGCRYPT([1.2.0], [
2381           AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
2382           HAVE_HLS="yes"
2383         ],[
2384           PKG_CHECK_MODULES(OPENSSL, openssl, [
2385             AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
2386             HAVE_HLS="yes"
2387           ],[
2388             HAVE_HLS="no"
2389           ])
2390         ])
2391       ])
2392     ]
2393   )
2394 ])
2395
2396 dnl *** x265 (H.265/HEVC encoder) ***
2397 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
2398 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
2399   AG_GST_PKG_CHECK_MODULES(X265, x265)
2400 ])
2401
2402 dnl *** WebRTC Audio Processing ***
2403 dnl Note: We test for a specific version as there is no API stability
2404 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
2405 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
2406
2407   AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
2408
2409   # On Android, C++ headers comes with the STL implementation
2410   AS_CASE(["${host}"],
2411     [*android*],
2412       [
2413         PKG_CHECK_MODULES(GNUSTL, gnustl, [
2414           WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
2415           WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
2416       ])
2417   AC_SUBST([WEBRTCDSP_CFLAGS])
2418   AC_SUBST([WEBRTCDSP_LIBS])
2419
2420   AC_LANG_PUSH([C++])
2421   old_CPPFLAGS=$CPPFLAGS
2422   CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
2423   AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
2424   CPPFLAGS=$old_CPPFLAGS
2425   AC_LANG_POP([C++])
2426 ])
2427
2428 dnl *** WebRTC ***
2429 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTC, true)
2430 AG_GST_CHECK_FEATURE(WEBRTC, [WebRTC], webrtc, [
2431   AG_GST_PKG_CHECK_MODULES(GST_SDP, gstreamer-sdp-1.0)
2432   PKG_CHECK_MODULES(NICE, nice >= 0.1, [
2433     HAVE_WEBRTC="yes" ], [
2434     HAVE_WEBRTC="no"
2435   ])
2436 ])
2437
2438 else
2439
2440 dnl not building plugins with external dependencies,
2441 dnl but we still need to set the conditionals
2442
2443 AM_CONDITIONAL(USE_ASSRENDER, false)
2444 AM_CONDITIONAL(USE_AOM, false)
2445 AM_CONDITIONAL(USE_VOAMRWBENC, false)
2446 AM_CONDITIONAL(USE_VOAACENC, false)
2447 AM_CONDITIONAL(USE_BS2B, false)
2448 AM_CONDITIONAL(USE_BZ2, false)
2449 AM_CONDITIONAL(USE_CHROMAPRINT, false)
2450 AM_CONDITIONAL(USE_CURL, false)
2451 AM_CONDITIONAL(USE_SSH2, false)
2452 AM_CONDITIONAL(USE_DASH, false)
2453 AM_CONDITIONAL(USE_DC1394, false)
2454 AM_CONDITIONAL(USE_DECKLINK, false)
2455 AM_CONDITIONAL(DECKLINK_OSX, false)
2456 AM_CONDITIONAL(USE_DIRECTFB, false)
2457 AM_CONDITIONAL(USE_WAYLAND, false)
2458 AM_CONDITIONAL(USE_DAALA, false)
2459 AM_CONDITIONAL(USE_DTS, false)
2460 AM_CONDITIONAL(USE_EXIF, false)
2461 AM_CONDITIONAL(USE_RESINDVD, false)
2462 AM_CONDITIONAL(USE_FAAC, false)
2463 AM_CONDITIONAL(USE_FAAD, false)
2464 AM_CONDITIONAL(USE_FBDEV, false)
2465 AM_CONDITIONAL(USE_FDK_AAC, false)
2466 AM_CONDITIONAL(USE_FLITE, false)
2467 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
2468 AM_CONDITIONAL(USE_GSM, false)
2469 AM_CONDITIONAL(USE_GTK3, false)
2470 AM_CONDITIONAL(USE_GTK3_GL, false)
2471 AM_CONDITIONAL(USE_HLS, false)
2472 AM_CONDITIONAL(USE_IQA, false)
2473 AM_CONDITIONAL(USE_KATE, false)
2474 AM_CONDITIONAL(USE_KMS, false)
2475 AM_CONDITIONAL(USE_TIGER, false)
2476 AM_CONDITIONAL(USE_LADSPA, false)
2477 AM_CONDITIONAL(USE_LCMS2, false)
2478 AM_CONDITIONAL(USE_LV2, false)
2479 AM_CONDITIONAL(USE_LIBDE265, false)
2480 AM_CONDITIONAL(USE_LIBMMS, false)
2481 AM_CONDITIONAL(USE_MODPLUG, false)
2482 AM_CONDITIONAL(USE_MPEG2ENC, false)
2483 AM_CONDITIONAL(USE_MPLEX, false)
2484 AM_CONDITIONAL(USE_MUSEPACK, false)
2485 AM_CONDITIONAL(USE_NEON, false)
2486 AM_CONDITIONAL(USE_OFA, false)
2487 AM_CONDITIONAL(USE_OPENAL, false)
2488 AM_CONDITIONAL(USE_OPENCV, false)
2489 AM_CONDITIONAL(USE_OPENEXR, false)
2490 AM_CONDITIONAL(USE_OPENJPEG, false)
2491 AM_CONDITIONAL(USE_OPENMPT, false)
2492 AM_CONDITIONAL(USE_OPENNI2, false)
2493 AM_CONDITIONAL(USE_OPUS, false)
2494 AM_CONDITIONAL(USE_QT, false)
2495 AM_CONDITIONAL(USE_WILDMIDI, false)
2496 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
2497 AM_CONDITIONAL(USE_SNDFILE, false)
2498 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
2499 AM_CONDITIONAL(USE_SPANDSP, false)
2500 AM_CONDITIONAL(USE_SPC, false)
2501 AM_CONDITIONAL(USE_SRTP, false)
2502 AM_CONDITIONAL(USE_GME, false)
2503 AM_CONDITIONAL(USE_DVB, false)
2504 AM_CONDITIONAL(USE_ACM, false)
2505 AM_CONDITIONAL(USE_VDPAU, false)
2506 AM_CONDITIONAL(USE_SBC, false)
2507 AM_CONDITIONAL(USE_SCHRO, false)
2508 AM_CONDITIONAL(USE_ZBAR, false)
2509 AM_CONDITIONAL(USE_RSVG, false)
2510 AM_CONDITIONAL(USE_RTMP, false)
2511 AM_CONDITIONAL(USE_TELETEXTDEC, false)
2512 AM_CONDITIONAL(USE_UVCH264, false)
2513 AM_CONDITIONAL(USE_WEBP, false)
2514 AM_CONDITIONAL(USE_WEBRTC, false)
2515 AM_CONDITIONAL(USE_WEBRTCDSP, false)
2516 AM_CONDITIONAL(USE_OPENH264, false)
2517 AM_CONDITIONAL(USE_X265, false)
2518 AM_CONDITIONAL(USE_DTLS, false)
2519 AM_CONDITIONAL(USE_VULKAN, false)
2520 AM_CONDITIONAL(USE_TTML, false)
2521
2522 fi dnl of EXT plugins
2523
2524 dnl *** finalize CFLAGS, LDFLAGS, LIBS
2525
2526 dnl Overview:
2527 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
2528 dnl GST_*:              flags shared by built objects to link against GStreamer
2529 dnl GST_ALL_LDFLAGS:    linker flags shared by all
2530 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
2531 dnl GST_LT_LDFLAGS:     library versioning of our libraries
2532 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
2533
2534 dnl GST_OPTION_CFLAGS
2535 if test "x$USE_DEBUG" = xyes; then
2536    PROFILE_CFLAGS="-g"
2537 fi
2538 AC_SUBST(PROFILE_CFLAGS)
2539
2540 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
2541   dnl Define _only_ during CVS (not pre-releases or releases)
2542   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
2543 else
2544   DEPRECATED_CFLAGS=""
2545 fi
2546 AC_SUBST(DEPRECATED_CFLAGS)
2547
2548 VISIBILITY_CFLAGS=""
2549 AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
2550 AC_SUBST(VISIBILITY_CFLAGS)
2551
2552 VISIBILITY_CXXFLAGS=""
2553 if test "x$HAVE_CXX" = "xyes"; then
2554   AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
2555 fi
2556 AC_SUBST(VISIBILITY_CXXFLAGS)
2557
2558 dnl disable strict aliasing
2559 AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
2560 AC_SUBST(EXTRA_CFLAGS)
2561
2562 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
2563 dnl at make time with e.g. make ERROR_CFLAGS=""
2564 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2565 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2566 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
2567 AC_SUBST(GST_OPTION_CFLAGS)
2568 AC_SUBST(GST_OPTION_CXXFLAGS)
2569 AC_SUBST(GST_OPTION_OBJCFLAGS)
2570
2571 dnl FIXME: do we want to rename to GST_ALL_* ?
2572 dnl prefer internal headers to already installed ones
2573 dnl also add builddir include for enumtypes and marshal
2574 dnl add GST_OPTION_CFLAGS, but overridable
2575 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
2576 GST_CXXFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
2577 GST_OBJCFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS) \$(VISIBILITY_CFLAGS)"
2578 GST_CFLAGS="$GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
2579 AC_SUBST(GST_CFLAGS)
2580 AC_SUBST(GST_CXXFLAGS)
2581 AC_SUBST(GST_OBJCFLAGS)
2582 AC_SUBST(GST_LIBS)
2583 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2584 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2585 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
2586 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
2587 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
2588 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
2589
2590 dnl LDFLAGS really should only contain flags, not libs - they get added before
2591 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2592 GST_ALL_LDFLAGS="-no-undefined"
2593 if test "x${enable_Bsymbolic}" = "xyes"; then
2594   GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
2595 fi
2596 AC_SUBST(GST_ALL_LDFLAGS)
2597
2598 dnl GST_LIB_LDFLAGS
2599 dnl linker flags shared by all libraries
2600 dnl LDFLAGS modifier defining exported symbols from built libraries
2601 dnl (export _gst_foo but not __gst_foo)
2602 GST_LIB_LDFLAGS=""
2603 AC_SUBST(GST_LIB_LDFLAGS)
2604
2605 dnl this really should only contain flags, not libs - they get added before
2606 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
2607 GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
2608 AC_SUBST(GST_PLUGIN_LDFLAGS)
2609
2610 dnl *** output files ***
2611
2612 $MKDIR_P tests/check/orc
2613
2614 dnl po/Makefile.in
2615
2616 AC_CONFIG_FILES(
2617 Makefile
2618 common/Makefile
2619 common/m4/Makefile
2620 gst/Makefile
2621 gst/accurip/Makefile
2622 gst/adpcmdec/Makefile
2623 gst/adpcmenc/Makefile
2624 gst/aiff/Makefile
2625 gst/videoframe_audiolevel/Makefile
2626 gst/asfmux/Makefile
2627 gst/audiobuffersplit/Makefile
2628 gst/audiofxbad/Makefile
2629 gst/audiomixer/Makefile
2630 gst/audiomixmatrix/Makefile
2631 gst/audiovisualizers/Makefile
2632 gst/autoconvert/Makefile
2633 gst/bayer/Makefile
2634 gst/camerabin2/Makefile
2635 gst/coloreffects/Makefile
2636 gst/debugutils/Makefile
2637 gst/dvbsuboverlay/Makefile
2638 gst/dvdspu/Makefile
2639 gst/faceoverlay/Makefile
2640 gst/festival/Makefile
2641 gst/fieldanalysis/Makefile
2642 gst/freeverb/Makefile
2643 gst/frei0r/Makefile
2644 gst/gaudieffects/Makefile
2645 gst/geometrictransform/Makefile
2646 gst/gdp/Makefile
2647 gst/id3tag/Makefile
2648 gst/inter/Makefile
2649 gst/interlace/Makefile
2650 gst/ivfparse/Makefile
2651 gst/ivtc/Makefile
2652 gst/jp2kdecimator/Makefile
2653 gst/jpegformat/Makefile
2654 gst/librfb/Makefile
2655 gst/midi/Makefile
2656 gst/mpegdemux/Makefile
2657 gst/mpegtsdemux/Makefile
2658 gst/mpegtsmux/Makefile
2659 gst/mpegtsmux/tsmux/Makefile
2660 gst/mpegpsmux/Makefile
2661 gst/mxf/Makefile
2662 gst/netsim/Makefile
2663 gst/onvif/Makefile
2664 gst/pcapparse/Makefile
2665 gst/pnm/Makefile
2666 gst/rawparse/Makefile
2667 gst/removesilence/Makefile
2668 gst/sdp/Makefile
2669 gst/segmentclip/Makefile
2670 gst/siren/Makefile
2671 gst/smooth/Makefile
2672 gst/speed/Makefile
2673 gst/subenc/Makefile
2674 gst/stereo/Makefile
2675 gst/timecode/Makefile
2676 gst/videofilters/Makefile
2677 gst/videoparsers/Makefile
2678 gst/videosignal/Makefile
2679 gst/vmnc/Makefile
2680 gst/y4m/Makefile
2681 gst/yadif/Makefile
2682 gst/compositor/Makefile
2683 gst-libs/Makefile
2684 gst-libs/gst/Makefile
2685 gst-libs/gst/adaptivedemux/Makefile
2686 gst-libs/gst/basecamerabinsrc/Makefile
2687 gst-libs/gst/insertbin/Makefile
2688 gst-libs/gst/interfaces/Makefile
2689 gst-libs/gst/isoff/Makefile
2690 gst-libs/gst/codecparsers/Makefile
2691 gst-libs/gst/mpegts/Makefile
2692 gst-libs/gst/uridownloader/Makefile
2693 gst-libs/gst/wayland/Makefile
2694 gst-libs/gst/webrtc/Makefile
2695 gst-libs/gst/player/Makefile
2696 gst-libs/gst/video/Makefile
2697 gst-libs/gst/audio/Makefile
2698 gst-libs/gst/opencv/Makefile
2699 sys/Makefile
2700 sys/dshowdecwrapper/Makefile
2701 sys/acmenc/Makefile
2702 sys/acmmp3dec/Makefile
2703 sys/androidmedia/Makefile
2704 sys/applemedia/Makefile
2705 sys/bluez/Makefile
2706 sys/d3dvideosink/Makefile
2707 sys/decklink/Makefile
2708 sys/directsound/Makefile
2709 sys/dshowsrcwrapper/Makefile
2710 sys/dshowvideosink/Makefile
2711 sys/dvb/Makefile
2712 sys/fbdev/Makefile
2713 sys/ipcpipeline/Makefile
2714 sys/kms/Makefile
2715 sys/msdk/Makefile
2716 sys/nvdec/Makefile
2717 sys/nvenc/Makefile
2718 sys/opensles/Makefile
2719 sys/shm/Makefile
2720 sys/tinyalsa/Makefile
2721 sys/uvch264/Makefile
2722 sys/vcd/Makefile
2723 sys/vdpau/Makefile
2724 sys/wasapi/Makefile
2725 sys/winks/Makefile
2726 sys/winscreencap/Makefile
2727 tests/Makefile
2728 tests/check/Makefile
2729 tests/files/Makefile
2730 tests/examples/Makefile
2731 tests/examples/avsamplesink/Makefile
2732 tests/examples/camerabin2/Makefile
2733 tests/examples/codecparsers/Makefile
2734 tests/examples/directfb/Makefile
2735 tests/examples/audiomixmatrix/Makefile
2736 tests/examples/gtk/Makefile
2737 tests/examples/ipcpipeline/Makefile
2738 tests/examples/mpegts/Makefile
2739 tests/examples/mxf/Makefile
2740 tests/examples/opencv/Makefile
2741 tests/examples/uvch264/Makefile
2742 tests/examples/waylandsink/Makefile
2743 tests/examples/webrtc/Makefile
2744 tests/icles/Makefile
2745 ext/voamrwbenc/Makefile
2746 ext/voaacenc/Makefile
2747 ext/assrender/Makefile
2748 ext/aom/Makefile
2749 ext/bs2b/Makefile
2750 ext/bz2/Makefile
2751 ext/chromaprint/Makefile
2752 ext/colormanagement/Makefile
2753 ext/curl/Makefile
2754 ext/dash/Makefile
2755 ext/dc1394/Makefile
2756 ext/directfb/Makefile
2757 ext/wayland/Makefile
2758 ext/daala/Makefile
2759 ext/dts/Makefile
2760 ext/gtk/Makefile
2761 ext/faac/Makefile
2762 ext/faad/Makefile
2763 ext/fdkaac/Makefile
2764 ext/flite/Makefile
2765 ext/fluidsynth/Makefile
2766 ext/gl/Makefile
2767 ext/gsm/Makefile
2768 ext/hls/Makefile
2769 ext/iqa/Makefile
2770 ext/kate/Makefile
2771 ext/ladspa/Makefile
2772 ext/lv2/Makefile
2773 ext/libde265/Makefile
2774 ext/libmms/Makefile
2775 ext/Makefile
2776 ext/modplug/Makefile
2777 ext/mpeg2enc/Makefile
2778 ext/mplex/Makefile
2779 ext/musepack/Makefile
2780 ext/neon/Makefile
2781 ext/ofa/Makefile
2782 ext/openal/Makefile
2783 ext/opencv/Makefile
2784 ext/openexr/Makefile
2785 ext/openh264/Makefile
2786 ext/openjpeg/Makefile
2787 ext/openmpt/Makefile
2788 ext/openni2/Makefile
2789 ext/opus/Makefile
2790 ext/qt/Makefile
2791 ext/rsvg/Makefile
2792 ext/resindvd/Makefile
2793 ext/rtmp/Makefile
2794 ext/sbc/Makefile
2795 ext/schroedinger/Makefile
2796 ext/smoothstreaming/Makefile
2797 ext/sndfile/Makefile
2798 ext/soundtouch/Makefile
2799 ext/spandsp/Makefile
2800 ext/srt/Makefile
2801 ext/srtp/Makefile
2802 ext/teletextdec/Makefile
2803 ext/gme/Makefile
2804 ext/spc/Makefile
2805 ext/wildmidi/Makefile
2806 ext/vulkan/Makefile
2807 ext/vulkan/xcb/Makefile
2808 ext/vulkan/wayland/Makefile
2809 ext/webp/Makefile
2810 ext/x265/Makefile
2811 ext/zbar/Makefile
2812 ext/dtls/Makefile
2813 ext/webrtc/Makefile
2814 ext/webrtcdsp/Makefile
2815 ext/ttml/Makefile
2816 po/Makefile.in
2817 docs/Makefile
2818 docs/plugins/Makefile
2819 docs/libs/Makefile
2820 docs/version.entities
2821 pkgconfig/Makefile
2822 pkgconfig/gstreamer-plugins-bad.pc
2823 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
2824 pkgconfig/gstreamer-codecparsers.pc
2825 pkgconfig/gstreamer-codecparsers-uninstalled.pc
2826 pkgconfig/gstreamer-insertbin.pc
2827 pkgconfig/gstreamer-insertbin-uninstalled.pc
2828 pkgconfig/gstreamer-mpegts.pc
2829 pkgconfig/gstreamer-mpegts-uninstalled.pc
2830 pkgconfig/gstreamer-player.pc
2831 pkgconfig/gstreamer-player-uninstalled.pc
2832 pkgconfig/gstreamer-wayland.pc
2833 pkgconfig/gstreamer-wayland-uninstalled.pc
2834 pkgconfig/gstreamer-webrtc.pc
2835 pkgconfig/gstreamer-webrtc-uninstalled.pc
2836 pkgconfig/gstreamer-bad-video.pc
2837 pkgconfig/gstreamer-bad-video-uninstalled.pc
2838 pkgconfig/gstreamer-bad-audio.pc
2839 pkgconfig/gstreamer-bad-audio-uninstalled.pc
2840 tools/Makefile
2841 m4/Makefile
2842 )
2843
2844 AC_OUTPUT
2845
2846 AG_GST_OUTPUT_PLUGINS
2847 ORC_OUTPUT
2848