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