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