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.12.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1202, 0, 1202)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 dnl *** checks for types/defines ***
169 dnl *** checks for structures ***
171 dnl *** checks for compiler characteristics ***
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r])
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
179 dnl *** checks for dependency libraries ***
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
200 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
202 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
204 dnl check for uninstalled plugin directories for unit tests
205 AG_GST_CHECK_UNINSTALLED_SETUP([
206 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
207 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
208 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
211 dnl Check for documentation xrefs
212 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
213 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
214 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
215 AC_SUBST(GLIB_PREFIX)
217 AC_SUBST(GSTPB_PREFIX)
219 dnl GTK is optional and used in examples
223 if test "x$BUILD_EXAMPLES" = "xyes"; then
224 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
226 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
228 2.0) GTK_REQ=$GTK2_REQ ;;
229 3.0) GTK_REQ=$GTK3_REQ ;;
230 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
234 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
235 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
239 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
241 dnl Check for -Bsymbolic-functions linker flag used to avoid
242 dnl intra-library PLT jumps, if available.
243 AC_ARG_ENABLE(Bsymbolic,
244 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
245 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
246 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
247 LDFLAGS=-Wl,-Bsymbolic-functions
249 AC_TRY_LINK([], [return 0],
251 enable_Bsymbolic=yes,
254 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
256 dnl *** set variables based on configure arguments ***
258 dnl GTK is optional and used in examples
260 if test "x$BUILD_EXAMPLES" = "xyes"; then
261 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
262 if test "x$HAVE_GTK3" = "xyes"; then
264 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
265 AC_SUBST(GTK_VERSION)
266 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
267 AC_SUBST(GTK_BASE_DIR)
271 AC_SUBST(GTK3_CFLAGS)
273 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
275 dnl clutter is optional and used in examples
279 if test "x$BUILD_EXAMPLES" = "xyes"; then
280 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
281 AC_SUBST(CLUTTER_LIBS)
282 AC_SUBST(CLUTTER_CFLAGS)
283 AC_SUBST(HAVE_CLUTTER)
285 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
286 AC_SUBST(CLUTTER_GLX_LIBS)
287 AC_SUBST(CLUTTER_GLX_CFLAGS)
288 AC_SUBST(HAVE_CLUTTER_GLX)
290 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
291 AC_SUBST(CLUTTER_X11_LIBS)
292 AC_SUBST(CLUTTER_X11_CFLAGS)
293 AC_SUBST(HAVE_CLUTTER_X11)
295 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
296 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
297 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
299 dnl used in the gl/clutteractor example
300 if test "x$BUILD_EXAMPLES" = "xyes"; then
301 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
302 AC_SUBST(XCOMPOSITE_CFLAGS)
303 AC_SUBST(XCOMPOSITE_LIBS)
305 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
307 dnl graphene-1.0 is optional and used in gltransformation
309 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
310 if test "x$HAVE_GRAPHENE" = "xyes"; then
311 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
313 AC_SUBST(HAVE_GRAPHENE)
314 AC_SUBST(GRAPHENE_LIBS)
315 AC_SUBST(GRAPHENE_CFLAGS)
316 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
319 dnl sdl is optional and used in examples
321 if test "x$BUILD_EXAMPLES" = "xyes"; then
322 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
325 AC_SUBST(SDL_CLUTTER)
327 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
330 dnl Needed for GtkBuilder to autoconnect signals
331 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
333 dnl Needed by plugins that use g_module_*() API
334 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
336 dnl x11 is optional for librfb
338 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
342 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
343 if test "x$HAVE_X11" = "xyes"; then
344 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
347 dnl exif (used on jifmux tests) ****
348 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
350 AC_SUBST(EXIF_CFLAGS)
351 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
353 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
354 PKG_CHECK_MODULES(DSSIM, dssim, [
362 if test "x$HAVE_DSSIM" = "xyes"; then
363 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
366 AC_SUBST(DSSIM_CFLAGS)
368 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
373 dnl set license and copyright notice
375 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
376 AC_SUBST(GST_LICENSE)
378 dnl define LIBDIR so we can inform people where we live
379 AS_AC_EXPAND(LIBDIR, $libdir)
380 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
382 dnl set location of plugin directory
385 dnl set release date/time
386 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
387 ["${srcdir}/gst-plugins-bad.doap"],
388 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
390 dnl build static plugins or not
391 AC_MSG_CHECKING([whether to build static plugins or not])
395 [--enable-static-plugins],
396 [build static plugins @<:@default=no@:>@]),
398 [$enableval], [no], [], [yes], [],
399 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
400 [enable_static_plugins=no])
401 AC_MSG_RESULT([$enable_static_plugins])
402 if test "x$enable_static_plugins" = xyes; then
403 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
404 [Define if static plugins should be built])
405 GST_PLUGIN_LIBTOOLFLAGS=""
407 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
409 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
410 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
412 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
413 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
414 if test x$enable_static = xyes -a x$enable_shared = xno; then
415 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
418 AC_ARG_WITH([player-tests],
419 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
420 if test x$with_player_tests = xyes; then
421 AC_PATH_PROG([WGET], [wget], no)
422 if test x$WGET = xno; then
423 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
427 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
429 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
430 dnl make sure it doesn't complain about unused variables if debugging is disabled
432 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
434 dnl define an ERROR_CFLAGS Makefile variable
435 dnl -Waggregate-return - libexif returns aggregates
436 dnl -Wundef - Windows headers check _MSC_VER unconditionally
437 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
438 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
439 -Wwrite-strings -Wformat-security -Wold-style-definition
440 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
441 -Wnested-externs $NO_WARNINGS])
443 dnl define an ERROR_CXXFLAGS Makefile variable
444 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
445 -Wmissing-declarations -Wredundant-decls
446 -Wwrite-strings -Wformat-nonliteral -Wformat-security
447 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
449 dnl define an ERROR_OBJCFLAGS Makefile variable
450 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
451 -Wmissing-declarations -Wredundant-decls
452 -Wwrite-strings -Wformat-nonliteral -Wformat-security
453 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
455 dnl define correct level for debugging messages
456 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
459 AG_GST_DEFAULT_ELEMENTS
461 dnl *** plug-ins to include ***
463 dnl these are all the gst plug-ins, compilable without additional libs
464 AG_GST_CHECK_PLUGIN(accurip)
465 AG_GST_CHECK_PLUGIN(adpcmdec)
466 AG_GST_CHECK_PLUGIN(adpcmenc)
467 AG_GST_CHECK_PLUGIN(aiff)
468 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
469 AG_GST_CHECK_PLUGIN(asfmux)
470 AG_GST_CHECK_PLUGIN(audiobuffersplit)
471 AG_GST_CHECK_PLUGIN(audiofxbad)
472 AG_GST_CHECK_PLUGIN(audiomixer)
473 AG_GST_CHECK_PLUGIN(audiomixmatrix)
474 AG_GST_CHECK_PLUGIN(compositor)
475 AG_GST_CHECK_PLUGIN(audiovisualizers)
476 AG_GST_CHECK_PLUGIN(autoconvert)
477 AG_GST_CHECK_PLUGIN(bayer)
478 AG_GST_CHECK_PLUGIN(camerabin2)
479 AG_GST_CHECK_PLUGIN(coloreffects)
480 AG_GST_CHECK_PLUGIN(debugutils)
481 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
482 AG_GST_CHECK_PLUGIN(dvdspu)
483 AG_GST_CHECK_PLUGIN(faceoverlay)
484 AG_GST_CHECK_PLUGIN(festival)
485 AG_GST_CHECK_PLUGIN(fieldanalysis)
486 AG_GST_CHECK_PLUGIN(freeverb)
487 AG_GST_CHECK_PLUGIN(frei0r)
488 AG_GST_CHECK_PLUGIN(gaudieffects)
489 AG_GST_CHECK_PLUGIN(geometrictransform)
490 AG_GST_CHECK_PLUGIN(gdp)
491 AG_GST_CHECK_PLUGIN(id3tag)
492 AG_GST_CHECK_PLUGIN(inter)
493 AG_GST_CHECK_PLUGIN(interlace)
494 AG_GST_CHECK_PLUGIN(ivfparse)
495 AG_GST_CHECK_PLUGIN(ivtc)
496 AG_GST_CHECK_PLUGIN(jp2kdecimator)
497 AG_GST_CHECK_PLUGIN(jpegformat)
498 AG_GST_CHECK_PLUGIN(librfb)
499 AG_GST_CHECK_PLUGIN(midi)
500 AG_GST_CHECK_PLUGIN(mpegdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsdemux)
502 AG_GST_CHECK_PLUGIN(mpegtsmux)
503 AG_GST_CHECK_PLUGIN(mpegpsmux)
504 AG_GST_CHECK_PLUGIN(mxf)
505 AG_GST_CHECK_PLUGIN(netsim)
506 AG_GST_CHECK_PLUGIN(onvif)
507 AG_GST_CHECK_PLUGIN(pcapparse)
508 AG_GST_CHECK_PLUGIN(pnm)
509 AG_GST_CHECK_PLUGIN(rawparse)
510 AG_GST_CHECK_PLUGIN(removesilence)
511 AG_GST_CHECK_PLUGIN(sdp)
512 AG_GST_CHECK_PLUGIN(segmentclip)
513 AG_GST_CHECK_PLUGIN(siren)
514 AG_GST_CHECK_PLUGIN(smooth)
515 AG_GST_CHECK_PLUGIN(speed)
516 AG_GST_CHECK_PLUGIN(subenc)
517 AG_GST_CHECK_PLUGIN(stereo)
518 AG_GST_CHECK_PLUGIN(timecode)
519 AG_GST_CHECK_PLUGIN(videofilters)
520 AG_GST_CHECK_PLUGIN(videoparsers)
521 AG_GST_CHECK_PLUGIN(videosignal)
522 AG_GST_CHECK_PLUGIN(vmnc)
523 AG_GST_CHECK_PLUGIN(y4m)
524 AG_GST_CHECK_PLUGIN(yadif)
526 dnl *** plug-ins to exclude ***
528 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
529 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
530 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
532 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
534 LIBS="$LIBS -framework VideoToolbox"
535 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
536 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
542 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
543 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
544 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
547 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
548 if test "x$HAVE_IOS" = "xyes"; then
549 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
552 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
553 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
554 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
557 dnl disable gst plugins we might not be able to build on this
558 dnl platform: (ugly but minimally invasive)
559 dnl FIXME: maybe move to sys, or make work with winsock2
560 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
561 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
563 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
564 WINSOCK2_LIBS="-lws2_32"
565 AC_SUBST(WINSOCK2_LIBS)
569 AC_ARG_ENABLE([opengl],
570 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
571 [case "${enableval}" in
574 auto) NEED_GL=auto ;;
575 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
576 esac],[NEED_GL=auto])
578 AC_ARG_WITH([opengl-module-name],
579 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
580 if test x$with_opengl_module_name != x; then
581 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
584 AC_ARG_ENABLE([gles2],
585 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
586 [case "${enableval}" in
587 yes) NEED_GLES2=yes ;;
589 auto) NEED_GLES2=auto ;;
590 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
591 esac],[NEED_GLES2=auto])
593 AC_ARG_WITH([gles2-module-name],
594 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
595 if test x$with_gles2_module_name != x; then
596 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
600 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
601 [case "${enableval}" in
604 auto) NEED_EGL=auto ;;
605 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
606 esac],[NEED_EGL=auto])
608 AC_ARG_WITH([egl-module-name],
609 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
610 if test x$with_egl_module_name != x; then
611 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
615 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
616 [case "${enableval}" in
619 auto) NEED_WGL=auto ;;
620 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
621 esac],[NEED_WGL=auto])
624 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
625 [case "${enableval}" in
628 auto) NEED_GLX=auto ;;
629 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
630 esac],[NEED_GLX=auto])
632 AC_ARG_ENABLE([cocoa],
633 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
634 [case "${enableval}" in
635 yes) NEED_COCOA=yes ;;
637 auto) NEED_COCOA=auto ;;
638 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
639 esac],[NEED_COCOA=auto])
642 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
643 [case "${enableval}" in
646 auto) NEED_X11=auto ;;
647 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
648 esac],[NEED_X11=auto])
650 AC_ARG_ENABLE([wayland],
651 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
652 [case "${enableval}" in
653 yes) NEED_WAYLAND_EGL=yes ;;
654 no) NEED_WAYLAND_EGL=no ;;
655 auto) NEED_WAYLAND_EGL=auto ;;
656 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
657 esac],[NEED_WAYLAND_EGL=auto])
659 AC_ARG_ENABLE([dispmanx],
660 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
661 [case "${enableval}" in
662 yes) NEED_DISPMANX=yes ;;
663 no) NEED_DISPMANX=no ;;
664 auto) NEED_DISPMANX=auto ;;
665 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
666 esac],[NEED_DISPMANX=auto])
668 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
669 save_CPPFLAGS="$CPPFLAGS"
682 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
683 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
684 if test "x$HAVE_WGLEXT" = "xyes"; then
690 if test "x$NEED_GL" != "xno"; then
691 AG_GST_PKG_CHECK_MODULES(GL, gl)
692 if test "x$HAVE_GL" != "xyes"; then
693 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
696 if test "x$NEED_GLES2" != "xno"; then
697 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
698 if test "x$HAVE_GLES2" != "xyes"; then
699 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
701 AC_CHECK_HEADER([GLES3/gl3.h GLES3/gl3ext.h], [HAVE_GLES3_H=yes])
703 if test "x$NEED_EGL" != "xno"; then
704 AG_GST_PKG_CHECK_MODULES(EGL, egl)
705 if test "x$HAVE_EGL" != "xyes"; then
706 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
713 dnl imx6 / Vivante specifics
714 if test "x$HAVE_EGL" = "xyes"; then
715 AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes])
718 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
719 AC_CHECK_HEADER([EGL/fbdev_window.h],
722 AC_CHECK_LIB([Mali], [mali_image_create],
725 AC_CHECK_LIB([GLESv2], [glEnable],
727 AC_CHECK_HEADER([GLES2/gl2.h],
729 AC_CHECK_LIB([EGL], [eglGetProcAddress],
731 AC_CHECK_HEADER([EGL/egl.h],
735 EGL_LIBS="-lMali -lUMP"
737 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
745 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
746 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
747 LIBS="$LIBS -lvcos -lvchiq_arm"
748 AC_CHECK_LIB([bcm_host], [bcm_host_init],
750 LIBS="$LIBS -lbcm_host"
751 AC_CHECK_HEADER(bcm_host.h,
753 LIBS="$LIBS -lGLESv2"
754 AC_CHECK_LIB([EGL], [eglGetProcAddress],
757 AC_CHECK_HEADER([EGL/egl.h],
759 AC_CHECK_LIB([GLESv2], [glEnable],
761 AC_CHECK_HEADER([GLES2/gl2.h],
766 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
768 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
779 PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
781 # OS X and iOS always have GL available
784 if test "x$HAVE_IOS" = "xyes"; then
794 CPPFLAGS="$save_CPPFLAGS"
808 dnl Check for what the user asked for and what we could find
809 if test "x$HAVE_EGL" = "xno"; then
810 if test "x$NEED_EGL" = "xyes"; then
811 AC_MSG_ERROR([Could not find the required EGL libraries])
815 if test "x$HAVE_GL" = "xno"; then
816 if test "x$NEED_GL" = "xyes"; then
817 AC_MSG_ERROR([Could not find the required OpenGL libraries])
821 if test "x$HAVE_GLES2" = "xno"; then
822 if test "x$NEED_GLES2" = "xyes"; then
823 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
827 dnl X, GLX and OpenGL
828 if test "x$HAVE_X11_XCB" = "xno"; then
829 if test "x$NEED_GLX" = "xyes"; then
830 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
832 if test "x$NEED_X11" = "xyes"; then
833 AC_MSG_ERROR([Could not find X11 development libraries])
836 if test "x$NEED_GL" != "xno"; then
837 if test "x$HAVE_GL" = "xno"; then
838 if test "x$NEED_GLX" = "xyes"; then
839 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
843 if test "x$NEED_GLX" != "xno"; then
850 dnl check for DMABUF support
851 HAVE_DRM_FOURCC_HEADER=no
852 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
853 HAVE_DRM_FOURCC_HEADER=yes, )
855 HAVE_GST_ALLOCATORS=no
856 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
857 HAVE_GST_ALLOCATORS=yes, )
860 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
861 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
862 "x$HAVE_EGL" = "xyes"; then
866 dnl check for Vivante DirectVIV support
867 AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no])
869 GST_GL_HAVE_VIV_DIRECTVIV=0
870 if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then
871 GST_GL_HAVE_VIV_DIRECTVIV=1
874 dnl check if we can include both GL and GLES2 at the same time
875 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
877 if test "x$HAVE_GLES3_H" == "xyes"; then
882 # pragma GCC diagnostic push
883 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
885 #ifndef GL_GLEXT_PROTOTYPES
886 #define GL_GLEXT_PROTOTYPES 1
889 # include <OpenGLES/ES2/gl.h>
890 # include <OpenGLES/ES2/glext.h>
893 # include <GLES3/gl3.h>
894 # include <GLES3/gl3ext.h>
896 # include <GLES2/gl2.h>
897 # include <GLES2/gl2ext.h>
901 # include <OpenGL/OpenGL.h>
902 # include <OpenGL/gl.h>
903 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
904 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
905 # include <OpenGL/gl3.h>
909 # if __WIN32__ || _WIN32
910 # include <GL/glext.h>
913 int main (int argc, char **argv) { return 0; }
915 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
916 save_CFLAGS="$CFLAGS"
917 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
918 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
919 #if !defined(GL_FALSE)
920 #error Failed to include GL headers
922 ]])],[ AC_MSG_RESULT(yes)
924 if test "x$NEED_GLES2" = "xyes"; then
925 if test "x$NEED_GL" = "xyes"; then
926 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
928 AC_MSG_WARN([Disabling Desktop GL support])
932 AC_MSG_WARN([Disabling GL|ES 2.0 support])
937 CFLAGS="$save_CFLAGS"
940 #dnl Check for OpenGL
944 if test "x$NEED_WGL" = "xyes"; then
945 AC_MSG_ERROR([WGL is not available on Android])
947 if test "x$NEED_GLX" = "xyes"; then
948 AC_MSG_ERROR([GLX is not available on Android])
950 if test "x$NEED_GL" = "xyes"; then
951 AC_MSG_ERROR([GL is not available on Android])
953 if test "x$NEED_X11" = "xyes"; then
954 AC_MSG_ERROR([X11 is not available on Android])
956 if test "x$NEED_COCOA" = "xyes"; then
957 AC_MSG_ERROR([Cocoa is not available on Android])
961 if test "x$HAVE_GLES2" = "xyes"; then
962 if test "x$NEED_GLES2" != "xno"; then
963 GL_LIBS="$GL_LIBS -lGLESv2"
969 if test "x$HAVE_EGL" = "xyes"; then
970 if test "x$NEED_EGL" != "xno"; then
971 GL_LIBS="$GL_LIBS -lEGL"
976 if test "x$USE_EGL" != "xyes"; then
977 AC_MSG_ERROR([Need EGL on Android])
980 if test "x$USE_GLES2" != "xyes"; then
981 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
984 HAVE_WINDOW_ANDROID=yes
986 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
987 if test "x$NEED_WGL" = "xyes"; then
988 AC_MSG_ERROR([WGL is not available on unix])
991 if test "x$HAVE_X11_XCB" = "xno"; then
992 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
993 AC_MSG_WARN([X or Wayland is required for OpenGL support])
997 dnl check Desktop OpenGL
998 if test "x$HAVE_GL" = "xyes"; then
999 if test "x$NEED_GL" != "xno"; then
1000 GL_LIBS="$GL_LIBS -lGL"
1005 if test "x$HAVE_GLES2" = "xyes"; then
1006 if test "x$NEED_GLES2" != "xno"; then
1007 GL_LIBS="$GL_LIBS -lGLESv2"
1012 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1013 if test "x$NEED_X11" != "xno"; then
1014 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1015 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1020 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1021 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1022 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1024 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1025 HAVE_WINDOW_WAYLAND=yes
1026 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1027 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1032 if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1033 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1034 AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1036 HAVE_WINDOW_VIV_FB=yes
1038 GL_CFLAGS="$GL_CFLAGS"
1042 if test "x$HAVE_EGL_RPI" = "xyes"; then
1043 if test "x$NEED_DISPMANX" != "xno"; then
1044 HAVE_WINDOW_DISPMANX=yes
1050 if test "x$HAVE_EGL" = "xno"; then
1051 if test "x$HAVE_GL" = "xno"; then
1052 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1055 if test "x$NEED_EGL" != "xno"; then
1056 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1057 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1058 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1065 if test "x$HAVE_IOS" = "xyes"; then
1066 if test "x$NEED_WGL" = "xyes"; then
1067 AC_MSG_ERROR([WGL is not available on iOS])
1069 if test "x$NEED_GLX" = "xyes"; then
1070 AC_MSG_ERROR([GLX is not available on iOS])
1072 if test "x$NEED_GL" = "xyes"; then
1073 AC_MSG_ERROR([GL is not available on iOS])
1075 if test "x$NEED_X11" = "xyes"; then
1076 AC_MSG_ERROR([X11 is not available on iOS])
1078 if test "x$NEED_COCOA" = "xyes"; then
1079 AC_MSG_ERROR([Cocoa is not available on iOS])
1081 if test "x$NEED_EGL" = "xyes"; then
1082 AC_MSG_ERROR([EGL is not available on iOS])
1085 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1086 GL_CFLAGS="$GL_CFLAGS"
1089 HAVE_WINDOW_EAGL=yes
1091 ac_cv_type_GLsizeiptr=yes
1092 ac_cv_type_GLintptr=yes
1093 ac_cv_type_GLchar=yes
1095 dnl Only osx supports cocoa.
1096 if test "x$NEED_WGL" = "xyes"; then
1097 AC_MSG_ERROR([WGL is not available on Mac OS X])
1100 if test "x$NEED_COCOA" != "xno"; then
1101 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1102 GL_CFLAGS="$GL_CFLAGS"
1104 HAVE_WINDOW_COCOA=yes
1108 if test "x$USE_GLX" = "xyes"; then
1109 if test "x$HAVE_X11_XCB" = "xyes"; then
1110 if test "x$NEED_X11" != "xno"; then
1111 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1112 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1117 if test "x$HAVE_GL" = "xyes"; then
1118 if test "x$NEED_GL" != "xno"; then
1119 GL_LIBS="$GL_LIBS -lGL"
1125 if test "x$HAVE_EGL" = "xyes"; then
1126 if test "x$NEED_EGL" != "xno"; then
1127 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1128 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1129 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1136 if test "x$HAVE_GLES2" = "xyes"; then
1137 if test "x$NEED_GLES2" != "xno"; then
1138 GL_LIBS="$GL_LIBS -lGLESv2"
1145 if test "x$NEED_GLX" = "xyes"; then
1146 AC_MSG_ERROR([GLX is not available on Windows])
1148 if test "x$NEED_GLES2" = "xyes"; then
1149 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1152 if test "x$HAVE_GL" = "xyes"; then
1153 if test "x$NEED_GL" != "xno"; then
1154 if test "x$HAVE_WGL" = "xyes"; then
1155 if test "$NEED_WGL" != "xno"; then
1156 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1157 HAVE_WINDOW_WIN32=yes
1166 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1177 GST_GL_HAVE_OPENGL=0
1181 if test "x$USE_OPENGL" = "xyes"; then
1182 GL_APIS="gl $GL_APIS"
1183 GST_GL_HAVE_OPENGL=1
1185 if test "x$USE_GLES2" = "xyes"; then
1186 GL_APIS="gles2 $GL_APIS"
1188 if test "x$HAVE_GLES3_H" = "xyes"; then
1193 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1194 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1195 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1196 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1201 GST_GL_HAVE_WINDOW_X11=0
1202 GST_GL_HAVE_WINDOW_COCOA=0
1203 GST_GL_HAVE_WINDOW_WIN32=0
1204 GST_GL_HAVE_WINDOW_WAYLAND=0
1205 GST_GL_HAVE_WINDOW_ANDROID=0
1206 GST_GL_HAVE_WINDOW_DISPMANX=0
1207 GST_GL_HAVE_WINDOW_EAGL=0
1208 GST_GL_HAVE_WINDOW_VIV_FB=0
1210 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1211 GL_WINDOWS="x11 $GL_WINDOWS"
1212 GST_GL_HAVE_WINDOW_X11=1
1214 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1215 GL_WINDOWS="cocoa $GL_WINDOWS"
1216 GST_GL_HAVE_WINDOW_COCOA=1
1218 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1219 GL_WINDOWS="win32 $GL_WINDOWS"
1220 GST_GL_HAVE_WINDOW_WIN32=1
1222 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1223 GL_WINDOWS="wayland $GL_WINDOWS"
1224 GST_GL_HAVE_WINDOW_WAYLAND=1
1226 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1227 GL_WINDOWS="android $GL_WINDOWS"
1228 GST_GL_HAVE_WINDOW_ANDROID=1
1230 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1231 GL_WINDOWS="dispmanx $GL_WINDOWS"
1232 GST_GL_HAVE_WINDOW_DISPMANX=1
1234 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1235 GL_WINDOWS="eagl $GL_WINDOWS"
1236 GST_GL_HAVE_WINDOW_EAGL=1
1238 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1239 GL_WINDOWS="viv-fb $GL_WINDOWS"
1240 GST_GL_HAVE_WINDOW_VIV_FB=1
1243 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1244 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1245 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1246 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1247 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1248 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1249 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1250 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1251 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1256 GST_GL_HAVE_PLATFORM_EGL=0
1257 GST_GL_HAVE_PLATFORM_GLX=0
1258 GST_GL_HAVE_PLATFORM_WGL=0
1259 GST_GL_HAVE_PLATFORM_CGL=0
1260 GST_GL_HAVE_PLATFORM_EAGL=0
1262 if test "x$USE_EGL" = "xyes"; then
1263 GL_PLATFORMS="egl $GL_PLATFORMS"
1264 GST_GL_HAVE_PLATFORM_EGL=1
1266 if test "x$USE_GLX" = "xyes"; then
1267 GL_PLATFORMS="glx $GL_PLATFORMS"
1268 GST_GL_HAVE_PLATFORM_GLX=1
1270 if test "x$USE_WGL" = "xyes"; then
1271 GL_PLATFORMS="wgl $GL_PLATFORMS"
1272 GST_GL_HAVE_PLATFORM_WGL=1
1274 if test "x$USE_COCOA" = "xyes"; then
1275 GL_PLATFORMS="cgl $GL_PLATFORMS"
1276 GST_GL_HAVE_PLATFORM_CGL=1
1278 if test "x$USE_EAGL" = "xyes"; then
1279 GL_PLATFORMS="eagl $GL_PLATFORMS"
1280 GST_GL_HAVE_PLATFORM_EAGL=1
1283 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1284 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1285 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1286 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1287 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1288 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1291 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1292 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1293 #define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV
1296 dnl Check for no platforms/window systems
1297 if test "x$GL_APIS" = "x"; then
1298 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1300 if test "x$GL_PLATFORMS" = "x"; then
1301 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1303 if test "x$GL_WINDOWS" = "x"; then
1304 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1307 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1322 HAVE_WINDOW_WIN32=no
1323 HAVE_WINDOW_DISPMANX=no
1324 HAVE_WINDOW_WAYLAND=no
1325 HAVE_WINDOW_ANDROID=no
1326 HAVE_WINDOW_COCOA=no
1328 HAVE_WINDOW_VIV_FB=no
1332 AC_SUBST(GL_PLATFORMS)
1333 AC_SUBST(GL_WINDOWS)
1336 AC_SUBST(GL_OBJCFLAGS)
1337 AC_SUBST(USE_OPENGL)
1340 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1341 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1342 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1343 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1344 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1345 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1346 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1347 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1349 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1350 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1351 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1352 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1353 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1354 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1355 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1356 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1357 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1359 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1361 dnl Check for some types that are not always present
1363 if test "x$USE_GLES2" = "xyes"; then
1364 GL_INCLUDES="$GL_INCLUDES
1365 #ifndef GL_GLEXT_PROTOTYPES
1366 #define GL_GLEXT_PROTOTYPES 1
1369 # include <OpenGLES/ES2/gl.h>
1370 # include <OpenGLES/ES2/glext.h>
1372 # if $GST_GL_HAVE_GLES3
1373 # include <GLES3/gl3.h>
1374 # include <GLES3/gl3ext.h>
1376 # include <GLES2/gl2.h>
1377 # include <GLES2/gl2ext.h>
1383 if test "x$USE_OPENGL" = "xyes"; then
1384 GL_INCLUDES="$GL_INCLUDES
1386 # include <OpenGL/OpenGL.h>
1387 # include <OpenGL/gl.h>
1390 # if __WIN32__ || _WIN32
1391 # include <GL/glext.h>
1397 GST_GL_HAVE_GLEGLIMAGEOES=0
1398 GST_GL_HAVE_GLCHAR=0
1399 GST_GL_HAVE_GLSIZEIPTR=0
1400 GST_GL_HAVE_GLINTPTR=0
1401 GST_GL_HAVE_GLSYNC=0
1402 GST_GL_HAVE_GLUINT64=0
1403 GST_GL_HAVE_GLINT64=0
1404 GST_GL_HAVE_EGLATTRIB=0
1407 CFLAGS="$GL_CFLAGS $CFLAGS"
1409 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1410 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1411 GST_GL_HAVE_GLEGLIMAGEOES=1
1414 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1415 if test "x$ac_cv_type_GLchar" = "xyes"; then
1416 GST_GL_HAVE_GLCHAR=1
1419 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1420 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1421 GST_GL_HAVE_GLSIZEIPTR=1
1424 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1425 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1426 GST_GL_HAVE_GLINTPTR=1
1429 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1430 if test "x$ac_cv_type_GLsync" = "xyes"; then
1431 GST_GL_HAVE_GLSYNC=1
1434 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1435 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1436 GST_GL_HAVE_GLUINT64=1
1439 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1440 if test "x$ac_cv_type_GLint64" = "xyes"; then
1441 GST_GL_HAVE_GLINT64=1
1444 if test "x$USE_EGL" = "xyes"; then
1445 EGL_INCLUDES="$GL_INCLUDES
1446 #include <EGL/egl.h>
1447 #include <EGL/eglext.h>
1449 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1450 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1451 GST_GL_HAVE_EGLATTRIB=1
1457 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1458 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1459 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1460 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1461 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1462 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1463 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1464 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1465 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1468 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1469 outfile=gstglconfig.h-tmp
1470 cat > $outfile <<\_______EOF
1473 * This is a generated file. Please modify `configure.ac'
1476 #ifndef __GST_GL_CONFIG_H__
1477 #define __GST_GL_CONFIG_H__
1479 #include <gst/gst.h>
1485 cat >>$outfile <<_______EOF
1489 cat >>$outfile <<_______EOF
1493 #endif /* __GST_GL_CONFIG_H__ */
1497 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1498 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1501 mv $outfile gst-libs/gst/gl/gstglconfig.h
1504 gl_config_defines='$GL_CONFIG_DEFINES'
1507 dnl libpng is optional
1508 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1509 if test "x$HAVE_PNG" = "xyes"; then
1510 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1513 AC_SUBST(LIBPNG_LIBS)
1514 AC_SUBST(LIBPNG_CFLAGS)
1515 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1517 dnl libjpeg is optional
1518 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1520 if test x$with_jpeg_mmx != x; then
1521 LIBS="$LIBS -L$with_jpeg_mmx"
1523 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1524 JPEG_LIBS="$LIBS -ljpeg-mmx"
1526 if test x$HAVE_JPEG != xyes; then
1528 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1531 if test x$HAVE_JPEG = xyes; then
1532 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1534 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1539 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1542 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1543 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1545 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1546 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1547 VULKAN_CONFIG_DEFINES="
1548 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1549 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1551 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1552 outfile=vkconfig.h-tmp
1553 cat > $outfile <<\_______EOF
1556 * This is a generated file. Please modify `configure.ac'
1559 #ifndef __GST_VULKAN_CONFIG_H__
1560 #define __GST_VULKAN_CONFIG_H__
1562 #include <gst/gst.h>
1568 cat >>$outfile <<_______EOF
1569 $vulkan_config_defines
1572 cat >>$outfile <<_______EOF
1576 #endif /* __GST_VULKAN_CONFIG_H__ */
1580 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1581 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1584 mv $outfile ext/vulkan/vkconfig.h
1587 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1590 dnl *** sys plug-ins ***
1593 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1594 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1595 HAVE_DIRECTSOUND="no"
1596 save_CFLAGS="$CFLAGS"
1597 save_LDFLAGS="$LDFLAGS"
1599 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1600 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1601 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1602 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1603 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1604 #include <windows.h>
1607 #include <mmsystem.h>
1609 DXGetErrorString9 (0);
1610 DirectSoundCreate(NULL, NULL, NULL);
1612 [HAVE_DIRECTSOUND="yes"],
1613 [HAVE_DIRECTSOUND="no"])
1614 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1616 LDFLAGS=$save_LDFLAGS
1619 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1620 dnl this is much more than we want
1621 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1622 AC_SUBST(DIRECTX_CFLAGS)
1623 AC_SUBST(DIRECTX_LDFLAGS)
1624 AC_SUBST(DIRECTSOUND_LIBS)
1626 AC_SUBST(HAVE_DIRECTSOUND)
1630 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1631 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1633 save_CFLAGS="$CFLAGS"
1634 save_LDFLAGS="$LDFLAGS"
1636 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1637 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1638 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1639 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1640 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1641 #include <windows.h>
1643 #include <mmsystem.h>
1644 #include <mmdeviceapi.h>
1650 hr = CoInitialize(NULL);
1652 printf("CoInitialize failed: hr = 0x%08x", hr);
1657 // result = do_everything(argc, argv);
1663 [HAVE_WASAPI="yes"],
1665 AC_MSG_RESULT($HAVE_WASAPI)
1667 LDFLAGS=$save_LDFLAGS
1670 if test "x$HAVE_WASAPI" = "xyes"; then
1671 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1672 AC_SUBST(WASAPI_LIBS)
1674 AC_SUBST(HAVE_WASAPI)
1678 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1679 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1681 save_CFLAGS="$CFLAGS"
1682 save_LDFLAGS="$LDFLAGS"
1684 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1685 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1686 LIBS="$LIBS -ld3d9 -lgdi32"
1687 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1688 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1689 #include <windows.h>
1692 Direct3DCreate9(D3D_SDK_VERSION);
1694 [HAVE_DIRECT3D="yes"],
1695 [HAVE_DIRECT3D="no"])
1696 AC_MSG_RESULT($HAVE_DIRECT3D)
1698 LDFLAGS=$save_LDFLAGS
1701 if test "x$HAVE_DIRECT3D" = "xyes"; then
1702 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1703 AC_SUBST(DIRECT3D_LIBS)
1705 AC_SUBST(HAVE_DIRECT3D)
1709 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1710 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1711 HAVE_WINSCREENCAP="no"
1712 save_CFLAGS="$CFLAGS"
1713 save_LDFLAGS="$LDFLAGS"
1715 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1716 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1717 LIBS="$LIBS -ld3d9 -lgdi32"
1718 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1719 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1720 #include <windows.h>
1723 Direct3DCreate9(D3D_SDK_VERSION);
1725 [HAVE_WINSCREENCAP="yes"],
1726 [HAVE_WINSCREENCAP="no"])
1727 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1729 LDFLAGS=$save_LDFLAGS
1732 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1733 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1734 AC_SUBST(WINSCREENCAP_LIBS)
1736 AC_SUBST(HAVE_WINSCREENCAP)
1740 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1741 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1743 save_CFLAGS="$CFLAGS"
1744 save_LDFLAGS="$LDFLAGS"
1746 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1747 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1748 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1749 AC_MSG_CHECKING(for Winks LDFLAGS)
1750 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1751 #include <windows.h>
1756 IGraphBuilder *pGraph = NULL;
1757 HRESULT hr = CoInitialize(NULL);
1758 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1759 &IID_IGraphBuilder, (void **)&pGraph);
1766 AC_MSG_RESULT($HAVE_WINKS)
1768 LDFLAGS=$save_LDFLAGS
1771 if test "x$HAVE_WINKS" = "xyes"; then
1772 dnl this is much more than we want
1773 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1774 AC_SUBST(DIRECTX_CFLAGS)
1775 AC_SUBST(DIRECTX_LDFLAGS)
1776 AC_SUBST(WINKS_LIBS)
1778 AC_SUBST(HAVE_WINKS)
1781 dnl *** Android Media ***
1782 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1783 HAVE_ANDROID_MEDIA="no"
1784 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1787 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1790 HAVE_ANDROID_MEDIA="no"
1795 dnl *** AppleMedia (OS X and iOS) ***
1796 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1797 HAVE_APPLE_MEDIA="no"
1798 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1799 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1800 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1801 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1802 if test "x$HAVE_IOS" = "xno"; then
1803 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1807 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1812 HAVE_APPLE_MEDIA="no"
1817 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1818 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1819 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1820 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1821 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1823 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1832 dnl *** OS/X AVCVideoServices ***
1833 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1835 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1837 save_CPPFLAGS="$CPPFLAGS"
1838 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1840 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1841 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1843 CPPFLAGS=$save_CPPFLAGS
1846 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1855 dnl check for shm_open (for shm plugin)
1856 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1857 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1858 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1860 *-darwin* | *-macos10*)
1861 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1868 AC_CHECK_LIB([rt], [shm_open],
1869 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1870 #include <sys/socket.h>
1873 AC_SUBST(SHM_LIBS, "-lrt")
1881 dnl check for Video CD
1882 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1883 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1884 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1887 dnl check for OpenSL ES
1888 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1889 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1890 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1893 dnl *** UVC H264 ***
1894 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1895 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1896 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1897 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1898 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1901 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1902 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1903 HAVE_LIBUSB="yes" ],
1905 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1906 test "x$HAVE_GUDEV" = "xyes" && \
1907 test "x$HAVE_LIBUSB" = "xyes"; then
1913 AC_SUBST(LIBUDEV_CFLAGS)
1914 AC_SUBST(LIBUDEV_LIBS)
1915 AC_SUBST(LIBUSB_CFLAGS)
1916 AC_SUBST(LIBUSB_LIBS)
1918 dnl check for tv profile
1919 AC_ARG_ENABLE(tv, AC_HELP_STRING([--enable-tv], [enable tv profile]),
1921 case "${enableval}" in
1922 yes) TV_PROFILE=yes ;;
1923 no) TV_PROFILE=no ;;
1924 *) AC_MSG_ERROR(bad value ${enableval} for --enable-tv) ;;
1928 AM_CONDITIONAL([TV_PROFILE], [test "x$TV_PROFILE" = "xyes"])
1931 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1932 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1933 AC_ARG_WITH([cuda-prefix],
1934 AS_HELP_STRING([--with-cuda-prefix],
1935 [Use the provided prefix for detecting the cuda installation]),
1936 [AS_IF([test "x$with_cuda_prefix" != "x"],
1937 [CUDA_PREFIX="$with_cuda_prefix"])],
1941 if test "x$CUDA_PREFIX" != "x"; then
1942 dnl only override if not already set
1943 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1944 dnl this is an educated guess, user can always override these
1945 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1946 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1949 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
1950 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1951 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1952 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1953 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
1958 save_CPPFLAGS="$CPPFLAGS"
1959 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1960 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1961 AC_MSG_WARN([Could not find cuda.h]))
1962 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1963 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1964 CPPFLAGS=$save_CPPFLAGS
1966 dnl libcuda and libcudart libraries
1968 LIBS="$CUDA_LIBS $save_LIBS"
1969 HAVE_CUDART_LIB="no"
1970 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1971 AC_MSG_WARN([Could not find cudart library])])
1973 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1974 AC_MSG_WARN([Could not find cuda library])])
1977 dnl nvEncodeAPI.h header
1978 HAVE_NVENCODEAPI_H=no
1979 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1980 save_CPPFLAGS="$CPPFLAGS"
1981 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1982 AC_CHECK_HEADER([nvEncodeAPI.h], [
1983 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1984 #if NVENCAPI_MAJOR_VERSION < 5
1985 #error "Need nvEncodeAPI.h >= 5.0"
1988 HAVE_NVENCODEAPI_H=yes
1990 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1993 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1994 AC_SUBST(NVENCODE_CFLAGS)
1995 CPPFLAGS="$save_CPPFLAGS"
1997 dnl libnvnidia-encode library
1998 HAVE_NVENCODE_LIB=no
1999 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
2001 LIBS="$NVENCODE_LIBS $saved_LIBS"
2002 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
2003 AC_MSG_WARN([Could not find library nvidia-encode]))
2004 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
2005 AC_SUBST(NVENCODE_LIBS)
2009 if test "x$HAVE_CUDA_H" = "xyes" \
2010 -a "x$HAVE_CUDART_H" = "xyes" \
2011 -a "x$HAVE_CUDA_LIB" = "xyes" \
2012 -a "x$HAVE_CUDART_LIB" = "xyes" \
2013 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
2014 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
2016 if test x"$USE_OPENGL" = x"yes"; then
2017 dnl cuda-gl interop header
2018 save_CPPFLAGS="$CPPFLAGS"
2019 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2020 AC_CHECK_HEADER([cuda_gl_interop.h], [
2021 USE_NVENC_GST_GL="yes"
2022 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2024 CPPFLAGS="$save_CPPFLAGS"
2030 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2032 dnl check for tinyalsa
2033 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2034 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2035 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2038 dnl check for intel mediasdk
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2040 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2041 AC_ARG_WITH([msdk-prefix],
2042 AS_HELP_STRING([--with-msdk-prefix],
2043 [Use the provided prefix for detecting the Intel MediaSDK]),
2044 [AS_IF([test "x$with_msdk_prefix" != "x"],
2045 [MSDK_PREFIX="$with_msdk_prefix"])],
2046 [AS_IF([test "x$MFX_HOME" != "x"],
2047 [MSDK_PREFIX="$MFX_HOME"],
2048 [MSDK_PREFIX="/opt/intel/media"])])
2049 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2050 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2051 AC_SUBST(MSDK_CFLAGS)
2054 save_CPPFLAGS="$CPPFLAGS"
2055 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2056 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2057 CPPFLAGS="$save_CPPFLAGS"
2060 LIBS="$MSDK_LIBS $LIBS"
2062 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2066 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2068 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2069 -a "x$HAVE_MFX_LIB" = "xyes" \
2070 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2076 AM_CONDITIONAL(USE_MSDK_LIBVA,
2077 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2079 dnl *** ext plug-ins ***
2080 dnl keep this list sorted alphabetically !
2082 if test "x$BUILD_EXTERNAL" = "xyes"; then
2084 dnl *** assrender ***
2085 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2086 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2087 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2088 HAVE_ASSRENDER="yes" ], [
2092 AC_SUBST(ASSRENDER_CFLAGS)
2093 AC_SUBST(ASSRENDER_LIBS)
2095 dnl *** vo-amrwbenc ***
2096 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2097 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2098 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2101 dnl *** vo-aacenc ***
2102 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2103 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2104 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2108 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2109 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2110 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2113 AC_SUBST(BS2B_CFLAGS)
2118 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2119 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2122 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2123 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2124 AC_MSG_RESULT($HAVE_BZ2)
2126 if test "x$HAVE_BZ2" = "xyes"; then
2134 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2135 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2136 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2139 # AC_SUBST(CAIRO_CFLAGS)
2140 # AC_SUBST(CAIRO_LIBS)
2143 dnl *** chromaprint ***
2144 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2145 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2146 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2147 HAVE_CHROMAPRINT="no"
2149 AC_SUBST(CHROMAPRINT_CFLAGS)
2150 AC_SUBST(CHROMAPRINT_LIBS)
2154 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2155 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2156 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2158 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2159 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2161 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2162 [[#ifdef HAVE_SYS_TYPES_H
2163 # include <sys/types.h>
2165 #ifdef HAVE_NETINET_IN_H
2166 # include <netinet/in.h>
2169 AC_MSG_CHECKING([for socket support needed by curlsink])
2170 AC_MSG_RESULT($HAVE_CURL)
2174 AC_SUBST(CURL_CFLAGS)
2176 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2178 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2182 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2183 AC_SUBST(SSH2_CFLAGS)
2185 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2188 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2189 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2190 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2191 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2193 AC_SUBST(LIBXML2_CFLAGS)
2194 AC_SUBST(LIBXML2_LIBS)
2198 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2199 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2200 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2201 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2210 AC_SUBST(LIBDC1394_CFLAGS)
2211 AC_SUBST(LIBDC1394_LIBS)
2214 dnl *** decklink ***
2215 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2216 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2223 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2224 AC_CHECK_LIB(dl, dlopen,
2228 DECKLINK_LIBS="-lpthread -ldl"
2233 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2234 AC_CHECK_LIB(dl, dlopen,
2238 DECKLINK_LIBS="-lpthread -ldl"
2239 HAVE_DECKLINK_OSX=yes
2248 AC_SUBST(DECKLINK_CXXFLAGS)
2249 AC_SUBST(DECKLINK_LIBS)
2251 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2253 dnl **** DirectFB ****
2254 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2255 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2256 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2261 dnl **** Wayland ****
2262 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2263 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2264 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2265 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2266 if test "x$wayland_scanner" != "x"; then
2268 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2270 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2279 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2280 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2281 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2282 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2284 AC_SUBST(WEBP_CFLAGS)
2289 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2290 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2291 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2292 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2297 AC_SUBST(DAALA_CFLAGS)
2298 AC_SUBST(DAALA_LIBS)
2303 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2304 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2306 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2307 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2308 if test $HAVE_DTS = "no"; then
2309 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2310 [ DTS_LIBS="-ldts_pic $LIBM"
2311 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2317 dnl *** resindvd ***
2318 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2319 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2320 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2325 dnl **** Free AAC Encoder (FAAC) ****
2326 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2327 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2328 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2329 FAAC_LIBS="-lfaac $LIBM")
2333 dnl **** Free AAC Decoder (FAAD2) ****
2334 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2335 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2336 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2337 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2338 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2340 #elif !defined(LATM)
2341 #error Not faad2 >= 2.7
2347 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2357 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2358 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2359 if test "x$HAVE_FBDEV" != "xyes"; then
2360 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2365 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2366 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2367 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2369 HAVE_FDK_AAC_0_1_4="yes"
2370 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2372 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2377 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2378 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2379 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2380 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2382 AC_SUBST(FLITE_CFLAGS)
2383 AC_SUBST(FLITE_LIBS)
2387 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2388 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2389 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2390 if test $HAVE_GSM != "yes"; then
2391 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2392 if test $HAVE_GSM = "yes"; then
2393 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2399 dnl *** fluidSynth ***
2400 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2401 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2402 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2403 HAVE_FLUIDSYNTH="no"
2408 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2409 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2410 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2413 AC_SUBST(KATE_CFLAGS)
2415 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2418 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2424 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2425 AC_SUBST(TIGER_CFLAGS)
2426 AC_SUBST(TIGER_LIBS)
2427 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2430 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2431 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2432 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2433 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2437 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2438 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2439 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2441 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2442 if test $HAVE_LRDF = "yes"; then
2443 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2446 AC_SUBST(LRDF_CFLAGS)
2450 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2451 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2452 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2454 HAVE_LILV_0_22="yes"
2455 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2457 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2459 AC_SUBST(LILV_CFLAGS)
2463 dnl *** libde265 ***
2464 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2465 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2466 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2467 AC_SUBST(LIBDE265_CFLAGS)
2468 AC_SUBST(LIBDE265_LIBS)
2472 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2473 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2474 dnl check with pkg-config first
2475 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2479 AC_SUBST(LIBMMS_LIBS)
2483 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2484 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2485 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2486 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2489 AC_SUBST(SRTP_CFLAGS)
2493 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2494 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2495 PKG_CHECK_MODULES(DTLS, [ openssl1.1 >= 1.0.1 libcrypto1.1 ], [
2497 AC_SUBST(DTLS_CFLAGS)
2505 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2506 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2507 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2515 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2516 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2517 if test "x$HAVE_CXX" != "xyes"; then
2518 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2521 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2523 AC_SUBST(MODPLUG_CFLAGS)
2524 AC_SUBST(MODPLUG_LIBS)
2527 dnl *** mjpegtools version info ***
2528 dnl some may prefer older version (given quirks above)
2529 dnl hm, no version info seems available within mjpegtools headers
2530 dnl and API really moves along
2532 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2533 mjpegtools_api=10601
2535 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2536 mjpegtools_api=10800
2538 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2539 mjpegtools_api=20000
2541 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2542 dnl logging API changed in release candidates
2543 OLD_CFLAGS="$CFLAGS"
2545 CFLAGS="$MJPEG_CFLAGS"
2546 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2547 AC_CHECK_FUNC(mjpeg_loglev_t, [
2548 mjpegtools_api=10903
2550 mjpegtools_api=10900
2552 CFLAGS="$OLD_CFLAGS"
2560 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2561 [mjpegtools API evolution])
2563 dnl *** mpeg2enc ***
2564 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2565 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2567 dnl we require a c++ compiler for this one
2568 if [ test x$HAVE_CXX = xyes ]; then
2569 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2570 dnl since many distros include mjpegtools specifically without mplex
2571 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2572 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2573 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2575 dnl switch over to c++ to test things
2577 OLD_CPPFLAGS="$CPPFLAGS"
2579 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2580 CPPFLAGS="$CPPFLAGS_GOOD -I."
2582 mpeg2enc_headers_ok=no
2583 AC_CHECK_HEADER([mpeg2encoder.hh], [
2584 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2586 LIBS="$LIBS $MPEG2ENC_LIBS"
2587 AC_MSG_CHECKING([for valid mpeg2enc objects])
2588 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2589 #include <mpeg2encoder.hh>
2590 #include <mpeg2encoptions.hh>
2596 MPEG2EncOptions *options = new MPEG2EncOptions ();
2597 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2602 dnl so far so good, let's check more things:
2603 dnl mjpegtools-1.8.0 does not install the required
2604 dnl mpeg2syntaxcodes.h header by default, and a new release
2605 dnl is not in sight, so check for this oversight in case
2606 dnl distros or folks have fixed this themselves
2607 if test "$mjpegtools_api" -ge "10800"; then
2608 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2609 mpeg2enc_headers_ok=yes
2611 mpeg2enc_headers_ok=no
2614 mpeg2enc_headers_ok=yes
2616 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2619 CPPFLAGS="$CPPFLAGS_GOOD"
2620 AC_SUBST(MPEG2ENC_CFLAGS)
2621 AC_SUBST(MPEG2ENC_LIBS)
2628 CPPFLAGS="$OLD_CPPFLAGS"
2637 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2638 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2640 dnl we require a c++ compiler for this one
2641 if [ test x$HAVE_CXX = xyes ]; then
2642 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2643 dnl since many distros include mjpegtools specifically without mplex
2644 dnl and mpeg2enc, we check for mplex on its own, too.
2645 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2646 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2647 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2649 dnl switch over to c++ to test things
2651 OLD_CPPFLAGS="$CPPFLAGS"
2653 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2654 CPPFLAGS="$CPPFLAGS_GOOD -I."
2655 AC_CHECK_HEADER(interact.hpp, [
2656 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2658 LIBS="$LIBS $MPLEX_LIBS"
2659 OLD_LDFLAGS="$LDFLAGS"
2660 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2661 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2662 dnl don't want this here
2663 AC_MSG_CHECKING([for valid mplex objects])
2664 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2666 #include <interact.hpp>
2667 #include <outputstrm.hpp>
2668 #include <multiplexor.hpp>
2673 class TestOutputStream : public OutputStream {
2675 TestOutputStream () : OutputStream () { }
2676 void Write (uint8_t *a, unsigned int b) { }
2677 void NextSegment () { }
2678 uint64_t SegmentSize () { }
2682 MultiplexJob *job = new MultiplexJob ();
2683 vector<IBitStream *> inputs;
2684 job->SetupInputStreams (inputs);
2685 TestOutputStream *out = new TestOutputStream ();
2686 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2691 CPPFLAGS="$CPPFLAGS_GOOD"
2692 AC_SUBST(MPLEX_CFLAGS)
2693 AC_SUBST(MPLEX_LIBS)
2694 AC_SUBST(MPLEX_LDFLAGS)
2696 ],[AC_MSG_RESULT(no)],[])
2698 LDFLAGS="$OLD_LDFLAGS"
2700 CPPFLAGS="$OLD_CPPFLAGS"
2706 dnl *** musepack ***
2707 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2708 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2709 AC_CHECK_HEADER([mpc/mpcdec.h], [
2711 MUSEPACK_LIBS="-lmpcdec"
2712 AC_SUBST(MUSEPACK_LIBS)
2713 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2715 MUSEPACK_LIBS="-lmpcdec"
2716 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2717 AC_SUBST(MUSEPACK_LIBS)
2718 ], [HAVE_MUSEPACK="no"])])
2722 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2723 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2724 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2727 AC_SUBST(NEON_CFLAGS)
2732 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2733 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2734 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2737 AC_SUBST(OFA_CFLAGS)
2742 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2743 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2744 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2747 AC_SUBST(OPENAL_CFLAGS)
2748 AC_SUBST(OPENAL_LIBS)
2752 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2753 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2754 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2755 dnl and don't want the build to break when a new opencv version comes out.
2756 dnl Need to adjust this upwards once we know that our code compiles fine with
2757 dnl a new version and the no-backward-compatibility define. (There doesn't
2758 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2760 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2763 OLD_CPPFLAGS=$CPPFLAGS
2764 CPPFLAGS=$OPENCV_CFLAGS
2765 something_not_found=no
2766 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2767 opencv2/core/version.hpp \
2768 opencv2/highgui/highgui_c.h \
2769 opencv2/imgproc/imgproc.hpp \
2770 opencv2/imgproc/imgproc_c.h \
2771 opencv2/objdetect/objdetect.hpp \
2772 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2774 dnl Only required for OpenCV >= 3, we have compat code for older versions
2775 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2776 dnl check opencv_contrib headers (not always present in opencv distributions)
2777 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2778 [NOT_A_PROBLEM=yes])
2780 CPPFLAGS=$OLD_CPPFLAGS
2783 if test $something_not_found = "yes"; then
2784 AC_MSG_RESULT([not all opencv2 headers were found])
2792 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2793 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2794 AC_SUBST(OPENCV_PREFIX)
2795 AC_SUBST(OPENCV_CFLAGS)
2796 AC_SUBST(OPENCV_LIBS)
2797 dnl the OpenCV prefix is used at runtime for some object properties, and also
2798 dnl used here to detect which directory is the correct one. For the second
2799 dnl case, make sure the right sysroot is used, ensuring correct behavior
2800 dnl during cross compilation.
2801 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2802 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2804 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2809 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2810 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2811 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2814 dnl *** openh264 ***
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2816 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2817 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2820 dnl *** OpenJPEG ***
2821 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2822 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2824 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2825 if test x"$HAVE_OPENJPEG" = x"yes"; then
2826 dnl minor API changes in v2.1
2827 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2828 if test x"$HAVE_OPENJPEG" = x"yes"; then
2829 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2834 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2835 HAVE_OPENJPEG="yes",
2836 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2838 if test x"$HAVE_OPENJPEG" = x"yes"; then
2839 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2842 AC_SUBST(OPENJPEG_CFLAGS)
2843 AC_SUBST(OPENJPEG_LIBS)
2847 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2848 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2849 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2850 AC_SUBST(OPENNI2_CFLAGS)
2851 AC_SUBST(OPENNI2_LIBS)
2855 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2856 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2857 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2858 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2863 AC_SUBST(OPUS_CFLAGS)
2868 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2869 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2870 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2874 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2875 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2878 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2885 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2886 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2887 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2888 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2893 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2895 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2896 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2897 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2898 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2900 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2902 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2903 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2904 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2905 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2907 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2909 if test "x$GDK_WINDOWING" = "xyes"; then
2910 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2917 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2920 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2921 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2922 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2923 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2924 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2926 AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
2928 AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2930 AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]),
2932 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2934 AS_HELP_STRING([--with-uic], [Set location of qt uic tool]),
2936 AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2937 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2938 AC_MSG_WARN([One of the required qt build programs was not found])
2942 HAVE_QT_WINDOWING="no"
2943 QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2944 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2945 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2946 QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2947 HAVE_QT_QPA_HEADER="yes"
2948 ], [AC_MSG_NOTICE([Cannot find QPA])])
2949 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2950 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2951 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2952 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2953 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2954 HAVE_QT_WINDOWING="yes"
2955 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2957 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
2958 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2959 AC_DEFINE([HAVE_QT_WAYLAND], [],
2960 [Define if Qt Wayland integration is installed])
2961 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2962 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2963 HAVE_QT_WINDOWING="yes"
2964 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2966 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2967 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2968 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2969 # c++ on android requires a standard library and there are multiple
2970 # choices. cerbero provides a pkg-config file the describes a choice
2971 # so try to use that. Outside cerbero one has to pass these flags
2972 # manually for the library one is using
2973 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2974 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2975 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2977 AC_MSG_NOTICE([Could not find Standard C++ library])])
2978 AC_DEFINE([HAVE_QT_EGLFS], [],
2979 [Define if Qt eglfs integration is installed])
2980 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2981 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2982 HAVE_QT_WINDOWING="yes"
2983 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2985 AC_DEFINE([HAVE_QT_EGLFS], [],
2986 [Define if Qt eglfs integration is installed])
2987 HAVE_QT_WINDOWING="yes"
2990 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2991 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2992 AC_DEFINE([HAVE_QT_MAC], [],
2993 [Define if Qt Mac integration is installed])
2994 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2995 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2996 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2997 HAVE_QT_WINDOWING="yes"
2998 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
3000 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
3001 if test "x$HAVE_IOS" = "xyes"; then
3002 # iOS doesn't have its own extras package so if we have the core
3003 # modules we are good to go
3004 AC_DEFINE([HAVE_QT_IOS], [],
3005 [Define if Qt iOS integration is installed])
3006 HAVE_QT_WINDOWING="yes"
3009 if test "x$HAVE_QT_WINDOWING" = "xno"; then
3010 AC_MSG_WARN([Could not find any Qt Windowing integration])
3013 AC_SUBST([QT_CFLAGS])
3022 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
3023 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
3024 AC_CHECK_HEADER(vulkan/vulkan.h, [
3025 AC_CHECK_LIB(vulkan, vkCreateDevice, [
3026 VULKAN_LIBS="-lvulkan"
3027 AC_SUBST(VULKAN_LIBS)
3028 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3031 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3038 dnl *** teletextdec ***
3039 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3040 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3041 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3044 dnl *** wildmidi ***
3045 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3046 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3047 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3050 WILDMIDI_LIBS="-lWildMidi")
3051 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3053 if test "x$HAVE_WILDMIDI" = "xyes"; then
3055 WILDMIDI_LIBS=-lWildMidi
3056 AC_MSG_NOTICE(compiling gstWildMidi)
3060 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3062 AC_SUBST(WILDMIDI_CFLAGS)
3063 AC_SUBST(WILDMIDI_LIBS)
3066 dnl **** Smooth Streaming ****
3067 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3068 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3069 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3071 HAVE_SMOOTHSTREAMING="yes"],
3073 HAVE_SMOOTHSTREAMING="no"])
3074 AC_SUBST(LIBXML2_CFLAGS)
3075 AC_SUBST(LIBXML2_LIBS)
3079 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3080 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3081 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3082 AC_SUBST(SNDFILE_CFLAGS)
3083 AC_SUBST(SNDFILE_LIBS)
3086 dnl *** soundtouch ***
3087 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3088 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3089 dnl We only need -lBPM on soundtouch < 1.4
3090 dnl We check for libSoundTouch since Debian used it before upstream
3091 dnl added a pkgconfig file.
3092 HAVE_SOUNDTOUCH_1_4=yes
3093 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3094 [HAVE_SOUNDTOUCH=yes],
3095 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3096 [HAVE_SOUNDTOUCH=yes],
3097 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3098 [HAVE_SOUNDTOUCH=yes
3099 HAVE_SOUNDTOUCH_1_4=no
3100 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3101 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3102 [HAVE_SOUNDTOUCH=yes],
3103 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3104 [HAVE_SOUNDTOUCH=yes
3105 HAVE_SOUNDTOUCH_1_4=no
3106 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3107 HAVE_SOUNDTOUCH=no)])])])])
3108 AC_SUBST(SOUNDTOUCH_CFLAGS)
3109 AC_SUBST(SOUNDTOUCH_LIBS)
3110 if test "x$HAVE_CXX" != "xyes"; then
3111 USE_SOUNDTOUCH=false
3112 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3114 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3115 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3116 [Defined if the available libSoundTouch is >= 1.4])
3121 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3122 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3123 AC_CHECK_HEADER(openspc.h, [
3124 AC_CHECK_LIB(openspc, OSPC_Init, [
3125 SPC_LIBS="-lopenspc"
3137 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3138 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3139 AC_CHECK_HEADER(gme/gme.h, [
3140 AC_CHECK_LIB(gme, gme_new_emu, [
3151 if test "x$HAVE_GME" = "xyes"; then
3152 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3153 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3159 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3160 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3161 AC_MSG_CHECKING([Checking for up to date dvb installation])
3162 AC_CHECK_HEADER(linux/dvb/version.h, [
3163 AC_MSG_CHECKING([for up-to-date dvb API])
3164 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3165 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3166 #error "Incompatible dvb API"
3168 ]])], [ AC_MSG_RESULT(yes)
3170 ], [ AC_MSG_RESULT(no)
3177 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3178 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3179 AC_MSG_CHECKING([Checking for ACM support])
3180 AC_CHECK_HEADERS([windows.h msacm.h],
3182 AC_SUBST(ACMENC_CFLAGS)
3183 AC_SUBST(ACMMP3DEC_CFLAGS)
3185 [AC_INCLUDES_DEFAULT
3186 #include <windows.h>])
3190 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3191 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3196 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3198 if test "$HAVE_VDPAU" = "no"; then
3199 saved_CPPFLAGS="$CPPFLAGS"
3200 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3202 if test -z "$HAVE_VDPAU_H"; then
3203 dnl Didn't find VDPAU header straight away.
3204 dnl Try /usr/include/nvidia. Need to clear caching vars first
3205 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3206 unset ac_cv_header_vdpau_vdpau_h
3207 unset ac_cv_header_vdpau_vdpau_x11_h
3208 VDPAU_CFLAGS="-I/usr/include/nvidia"
3209 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3210 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3211 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3214 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3216 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3217 dnl Found the headers - look for the lib
3218 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3220 LIBS="$VDPAU_LIBS $saved_LIBS"
3221 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3227 if test "$HAVE_VDPAU" = "yes"; then
3228 AC_MSG_NOTICE([Found up to date VDPAU installation])
3229 AC_SUBST(VDPAU_CFLAGS)
3230 AC_SUBST(VDPAU_LIBS)
3235 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3236 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3237 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3240 dnl *** schroedinger ***
3241 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3242 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3243 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3247 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3248 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3249 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3253 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3254 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3255 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3259 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3260 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3261 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3262 HAVE_SPANDSP="yes" ], [
3266 AC_SUBST(SPANDSP_CFLAGS)
3267 AC_SUBST(SPANDSP_LIBS)
3269 dnl *** hls-crypto ***
3270 AC_ARG_WITH([hls-crypto],
3271 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3272 which cryptographic library version to compile against for hls (default: auto)
3274 AS_CASE([$with_hls_crypto],
3278 [with_hls_crypto=auto]
3284 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3285 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3286 AS_CASE([$with_hls_crypto],
3288 PKG_CHECK_MODULES(NETTLE, nettle, [
3289 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3291 ],[AC_MSG_ERROR([Could not find nettle library])])
3294 AM_PATH_LIBGCRYPT([1.2.0], [
3295 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3297 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3300 PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
3301 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3303 ],[AC_MSG_ERROR([Could not find openssl library])])
3306 dnl Try to find a valid crypto library
3307 PKG_CHECK_MODULES(NETTLE, nettle, [
3308 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3311 AM_PATH_LIBGCRYPT([1.2.0], [
3312 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3315 PKG_CHECK_MODULES(OPENSSL, openssl1.1, [
3316 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3327 dnl *** x265 (H.265/HEVC encoder) ***
3328 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3329 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3330 AG_GST_PKG_CHECK_MODULES(X265, x265)
3333 dnl *** WebRTC Audio Processing ***
3334 dnl Note: We test for a specific version as there is no API stability
3335 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3336 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3338 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3340 # On Android, C++ headers comes with the STL implementation
3341 AS_CASE(["${host}"],
3344 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3345 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3346 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3348 AC_SUBST([WEBRTCDSP_CFLAGS])
3349 AC_SUBST([WEBRTCDSP_LIBS])
3352 old_CPPFLAGS=$CPPFLAGS
3353 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3354 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3355 CPPFLAGS=$old_CPPFLAGS
3361 dnl not building plugins with external dependencies,
3362 dnl but we still need to set the conditionals
3364 AM_CONDITIONAL(USE_ASSRENDER, false)
3365 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3366 AM_CONDITIONAL(USE_VOAACENC, false)
3367 AM_CONDITIONAL(USE_BS2B, false)
3368 AM_CONDITIONAL(USE_BZ2, false)
3369 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3370 AM_CONDITIONAL(USE_CURL, false)
3371 AM_CONDITIONAL(USE_SSH2, false)
3372 AM_CONDITIONAL(USE_DASH, false)
3373 AM_CONDITIONAL(USE_DC1394, false)
3374 AM_CONDITIONAL(USE_DECKLINK, false)
3375 AM_CONDITIONAL(DECKLINK_OSX, false)
3376 AM_CONDITIONAL(USE_DIRECTFB, false)
3377 AM_CONDITIONAL(USE_WAYLAND, false)
3378 AM_CONDITIONAL(USE_DAALA, false)
3379 AM_CONDITIONAL(USE_DTS, false)
3380 AM_CONDITIONAL(USE_EXIF, false)
3381 AM_CONDITIONAL(USE_RESINDVD, false)
3382 AM_CONDITIONAL(USE_FAAC, false)
3383 AM_CONDITIONAL(USE_FAAD, false)
3384 AM_CONDITIONAL(USE_FBDEV, false)
3385 AM_CONDITIONAL(USE_FDK_AAC, false)
3386 AM_CONDITIONAL(USE_FLITE, false)
3387 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3388 AM_CONDITIONAL(USE_GL, false)
3389 AM_CONDITIONAL(USE_GSM, false)
3390 AM_CONDITIONAL(USE_GTK3, false)
3391 AM_CONDITIONAL(USE_GTK3_GL, false)
3392 AM_CONDITIONAL(USE_HLS, false)
3393 AM_CONDITIONAL(USE_IQA, false)
3394 AM_CONDITIONAL(USE_KATE, false)
3395 AM_CONDITIONAL(USE_KMS, false)
3396 AM_CONDITIONAL(USE_TIGER, false)
3397 AM_CONDITIONAL(USE_LADSPA, false)
3398 AM_CONDITIONAL(USE_LV2, false)
3399 AM_CONDITIONAL(USE_LIBDE265, false)
3400 AM_CONDITIONAL(USE_LIBMMS, false)
3401 AM_CONDITIONAL(USE_MODPLUG, false)
3402 AM_CONDITIONAL(USE_MPEG2ENC, false)
3403 AM_CONDITIONAL(USE_MPLEX, false)
3404 AM_CONDITIONAL(USE_MUSEPACK, false)
3405 AM_CONDITIONAL(USE_NEON, false)
3406 AM_CONDITIONAL(USE_OFA, false)
3407 AM_CONDITIONAL(USE_OPENAL, false)
3408 AM_CONDITIONAL(USE_OPENCV, false)
3409 AM_CONDITIONAL(USE_OPENEXR, false)
3410 AM_CONDITIONAL(USE_OPENJPEG, false)
3411 AM_CONDITIONAL(USE_OPENNI2, false)
3412 AM_CONDITIONAL(USE_OPUS, false)
3413 AM_CONDITIONAL(USE_QT, false)
3414 AM_CONDITIONAL(USE_WILDMIDI, false)
3415 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3416 AM_CONDITIONAL(USE_SNDFILE, false)
3417 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3418 AM_CONDITIONAL(USE_SPANDSP, false)
3419 AM_CONDITIONAL(USE_SPC, false)
3420 AM_CONDITIONAL(USE_SRTP, false)
3421 AM_CONDITIONAL(USE_GME, false)
3422 AM_CONDITIONAL(USE_DVB, false)
3423 AM_CONDITIONAL(USE_ACM, false)
3424 AM_CONDITIONAL(USE_VDPAU, false)
3425 AM_CONDITIONAL(USE_SBC, false)
3426 AM_CONDITIONAL(USE_SCHRO, false)
3427 AM_CONDITIONAL(USE_ZBAR, false)
3428 AM_CONDITIONAL(USE_RSVG, false)
3429 AM_CONDITIONAL(USE_RTMP, false)
3430 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3431 AM_CONDITIONAL(USE_UVCH264, false)
3432 AM_CONDITIONAL(USE_WEBP, false)
3433 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3434 AM_CONDITIONAL(USE_OPENH264, false)
3435 AM_CONDITIONAL(USE_X265, false)
3436 AM_CONDITIONAL(USE_DTLS, false)
3437 AM_CONDITIONAL(USE_VULKAN, false)
3438 AM_CONDITIONAL(USE_TTML, false)
3440 fi dnl of EXT plugins
3442 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3445 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3446 dnl GST_*: flags shared by built objects to link against GStreamer
3447 dnl GST_ALL_LDFLAGS: linker flags shared by all
3448 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3449 dnl GST_LT_LDFLAGS: library versioning of our libraries
3450 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3452 dnl GST_OPTION_CFLAGS
3453 if test "x$USE_DEBUG" = xyes; then
3456 AC_SUBST(PROFILE_CFLAGS)
3458 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3459 dnl Define _only_ during CVS (not pre-releases or releases)
3460 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3462 DEPRECATED_CFLAGS=""
3464 AC_SUBST(DEPRECATED_CFLAGS)
3466 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3467 dnl at make time with e.g. make ERROR_CFLAGS=""
3468 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3469 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3470 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3471 AC_SUBST(GST_OPTION_CFLAGS)
3472 AC_SUBST(GST_OPTION_CXXFLAGS)
3473 AC_SUBST(GST_OPTION_OBJCFLAGS)
3475 dnl FIXME: do we want to rename to GST_ALL_* ?
3476 dnl prefer internal headers to already installed ones
3477 dnl also add builddir include for enumtypes and marshal
3478 dnl add GST_OPTION_CFLAGS, but overridable
3479 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3480 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3481 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3482 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3483 AC_SUBST(GST_CFLAGS)
3484 AC_SUBST(GST_CXXFLAGS)
3485 AC_SUBST(GST_OBJCFLAGS)
3487 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3488 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3489 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3490 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3491 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3492 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3494 dnl LDFLAGS really should only contain flags, not libs - they get added before
3495 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3496 GST_ALL_LDFLAGS="-no-undefined"
3497 if test "x${enable_Bsymbolic}" = "xyes"; then
3498 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3500 AC_SUBST(GST_ALL_LDFLAGS)
3503 dnl linker flags shared by all libraries
3504 dnl LDFLAGS modifier defining exported symbols from built libraries
3505 dnl (export _gst_foo but not __gst_foo)
3506 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3507 AC_SUBST(GST_LIB_LDFLAGS)
3509 dnl this really should only contain flags, not libs - they get added before
3510 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3511 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3512 AC_SUBST(GST_PLUGIN_LDFLAGS)
3514 dnl *** output files ***
3516 $MKDIR_P tests/check/orc
3525 gst/accurip/Makefile
3526 gst/adpcmdec/Makefile
3527 gst/adpcmenc/Makefile
3529 gst/videoframe_audiolevel/Makefile
3531 gst/audiobuffersplit/Makefile
3532 gst/audiofxbad/Makefile
3533 gst/audiomixer/Makefile
3534 gst/audiomixmatrix/Makefile
3535 gst/audiovisualizers/Makefile
3536 gst/autoconvert/Makefile
3538 gst/camerabin2/Makefile
3539 gst/coloreffects/Makefile
3540 gst/debugutils/Makefile
3541 gst/dvbsuboverlay/Makefile
3543 gst/faceoverlay/Makefile
3544 gst/festival/Makefile
3545 gst/fieldanalysis/Makefile
3546 gst/freeverb/Makefile
3548 gst/gaudieffects/Makefile
3549 gst/geometrictransform/Makefile
3553 gst/interlace/Makefile
3554 gst/ivfparse/Makefile
3556 gst/jp2kdecimator/Makefile
3557 gst/jpegformat/Makefile
3560 gst/mpegdemux/Makefile
3561 gst/mpegtsdemux/Makefile
3562 gst/mpegtsmux/Makefile
3563 gst/mpegtsmux/tsmux/Makefile
3564 gst/mpegpsmux/Makefile
3568 gst/pcapparse/Makefile
3570 gst/rawparse/Makefile
3571 gst/removesilence/Makefile
3573 gst/segmentclip/Makefile
3579 gst/timecode/Makefile
3580 gst/videofilters/Makefile
3581 gst/videoparsers/Makefile
3582 gst/videosignal/Makefile
3586 gst/compositor/Makefile
3588 gst-libs/gst/Makefile
3589 gst-libs/gst/adaptivedemux/Makefile
3590 gst-libs/gst/basecamerabinsrc/Makefile
3591 gst-libs/gst/gl/Makefile
3592 gst-libs/gst/gl/android/Makefile
3593 gst-libs/gst/gl/cocoa/Makefile
3594 gst-libs/gst/gl/dispmanx/Makefile
3595 gst-libs/gst/gl/glprototypes/Makefile
3596 gst-libs/gst/gl/eagl/Makefile
3597 gst-libs/gst/gl/egl/Makefile
3598 gst-libs/gst/gl/wayland/Makefile
3599 gst-libs/gst/gl/win32/Makefile
3600 gst-libs/gst/gl/x11/Makefile
3601 gst-libs/gst/gl/viv-fb/Makefile
3602 gst-libs/gst/insertbin/Makefile
3603 gst-libs/gst/interfaces/Makefile
3604 gst-libs/gst/isoff/Makefile
3605 gst-libs/gst/codecparsers/Makefile
3606 gst-libs/gst/mpegts/Makefile
3607 gst-libs/gst/uridownloader/Makefile
3608 gst-libs/gst/wayland/Makefile
3609 gst-libs/gst/base/Makefile
3610 gst-libs/gst/player/Makefile
3611 gst-libs/gst/video/Makefile
3612 gst-libs/gst/audio/Makefile
3613 gst-libs/gst/opencv/Makefile
3614 gst-libs/gst/allocators/Makefile
3616 sys/dshowdecwrapper/Makefile
3618 sys/acmmp3dec/Makefile
3619 sys/androidmedia/Makefile
3620 sys/applemedia/Makefile
3622 sys/d3dvideosink/Makefile
3623 sys/decklink/Makefile
3624 sys/directsound/Makefile
3625 sys/dshowsrcwrapper/Makefile
3626 sys/dshowvideosink/Makefile
3632 sys/opensles/Makefile
3634 sys/tinyalsa/Makefile
3635 sys/uvch264/Makefile
3640 sys/winscreencap/Makefile
3642 tests/check/Makefile
3643 tests/files/Makefile
3644 tests/examples/Makefile
3645 tests/examples/avsamplesink/Makefile
3646 tests/examples/camerabin2/Makefile
3647 tests/examples/codecparsers/Makefile
3648 tests/examples/directfb/Makefile
3649 tests/examples/audiomixmatrix/Makefile
3650 tests/examples/gl/Makefile
3651 tests/examples/gl/cocoa/Makefile
3652 tests/examples/gl/clutter/Makefile
3653 tests/examples/gl/generic/Makefile
3654 tests/examples/gl/generic/cube/Makefile
3655 tests/examples/gl/generic/cubeyuv/Makefile
3656 tests/examples/gl/generic/doublecube/Makefile
3657 tests/examples/gl/generic/recordgraphic/Makefile
3658 tests/examples/gl/gtk/Makefile
3659 tests/examples/gl/gtk/3dvideo/Makefile
3660 tests/examples/gl/gtk/filternovideooverlay/Makefile
3661 tests/examples/gl/gtk/filtervideooverlay/Makefile
3662 tests/examples/gl/gtk/fxtest/Makefile
3663 tests/examples/gl/gtk/switchvideooverlay/Makefile
3664 tests/examples/gl/qt/Makefile
3665 tests/examples/gl/sdl/Makefile
3666 tests/examples/gtk/Makefile
3667 tests/examples/mpegts/Makefile
3668 tests/examples/mxf/Makefile
3669 tests/examples/opencv/Makefile
3670 tests/examples/uvch264/Makefile
3671 tests/examples/waylandsink/Makefile
3672 tests/icles/Makefile
3673 ext/voamrwbenc/Makefile
3674 ext/voaacenc/Makefile
3675 ext/assrender/Makefile
3678 ext/chromaprint/Makefile
3682 ext/directfb/Makefile
3683 ext/wayland/Makefile
3692 ext/fluidsynth/Makefile
3699 ext/libde265/Makefile
3702 ext/modplug/Makefile
3703 ext/mpeg2enc/Makefile
3705 ext/musepack/Makefile
3710 ext/openexr/Makefile
3711 ext/openh264/Makefile
3712 ext/openjpeg/Makefile
3713 ext/openni2/Makefile
3717 ext/resindvd/Makefile
3720 ext/schroedinger/Makefile
3721 ext/smoothstreaming/Makefile
3722 ext/sndfile/Makefile
3723 ext/soundtouch/Makefile
3724 ext/spandsp/Makefile
3726 ext/teletextdec/Makefile
3729 ext/wildmidi/Makefile
3731 ext/vulkan/xcb/Makefile
3732 ext/vulkan/wayland/Makefile
3737 ext/webrtcdsp/Makefile
3741 docs/plugins/Makefile
3743 docs/version.entities
3745 pkgconfig/gstreamer-plugins-bad.pc
3746 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3747 pkgconfig/gstreamer-codecparsers.pc
3748 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3749 pkgconfig/gstreamer-insertbin.pc
3750 pkgconfig/gstreamer-insertbin-uninstalled.pc
3751 pkgconfig/gstreamer-gl.pc
3752 pkgconfig/gstreamer-gl-uninstalled.pc
3753 pkgconfig/gstreamer-mpegts.pc
3754 pkgconfig/gstreamer-mpegts-uninstalled.pc
3755 pkgconfig/gstreamer-player.pc
3756 pkgconfig/gstreamer-player-uninstalled.pc
3757 pkgconfig/gstreamer-wayland.pc
3758 pkgconfig/gstreamer-wayland-uninstalled.pc
3759 pkgconfig/gstreamer-bad-base.pc
3760 pkgconfig/gstreamer-bad-base-uninstalled.pc
3761 pkgconfig/gstreamer-bad-video.pc
3762 pkgconfig/gstreamer-bad-video-uninstalled.pc
3763 pkgconfig/gstreamer-bad-audio.pc
3764 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3765 pkgconfig/gstreamer-bad-allocators.pc
3766 pkgconfig/gstreamer-bad-allocators-uninstalled.pc
3773 AG_GST_OUTPUT_PLUGINS