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