vaapisink: implement unlock/unlock_stop for wayland
[platform/upstream/gstreamer.git] / configure.ac
1 # gstreamer-vaapi package version number
2 m4_define([gst_vaapi_major_version], [0])
3 m4_define([gst_vaapi_minor_version], [5])
4 m4_define([gst_vaapi_micro_version], [11])
5 m4_define([gst_vaapi_pre_version],   [1])
6 m4_define([gst_vaapi_version],
7           [gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
8 m4_if(gst_vaapi_pre_version, [0], [], [
9 m4_append([gst_vaapi_version], gst_vaapi_pre_version, [.pre])
10 ])
11
12 # Configure defaults
13 m4_define([default_glapi],              [any])
14
15 # gstreamer-vaapi library (libtool) version number
16 m4_define([gst_vaapi_lt_current],       [6])
17 m4_define([gst0_vaapi_lt_current_bias], [0])
18 m4_define([gst1_vaapi_lt_current_bias], [2])
19 m4_define([gst2_vaapi_lt_current_bias], [4])
20 m4_define([gst4_vaapi_lt_current_bias], [5])
21 m4_define([gst6_vaapi_lt_current_bias], [6])
22 m4_define([gst_vaapi_lt_revision],      [0])
23 m4_define([gst_vaapi_lt_age],           [0])
24
25 # glib version number
26 m4_define([glib_version], [2.32])
27
28 # gstreamer version number
29 m4_define([gst_api_version],            [autodetect])
30 m4_define([gst12_version],              [1.1.90])
31 m4_define([gst12_plugins_base_version], [1.1.0])
32 m4_define([gst12_plugins_bad_version],  [1.1.0])
33 m4_define([gst14_version],              [1.2.90])
34 m4_define([gst14_plugins_base_version], [1.3.0])
35 m4_define([gst14_plugins_bad_version],  [1.3.0])
36 m4_define([gst16_version],              [1.5.0])
37 m4_define([gst16_plugins_base_version], [1.5.0])
38 m4_define([gst16_plugins_bad_version],  [1.5.0])
39
40 # Wayland minimum version number
41 m4_define([wayland_api_version], [1.0.2])
42
43 # VA-API minimum version number
44 m4_define([va_api_version],     [0.30.4])
45 m4_define([va_api_enc_version], [0.34.0])
46 m4_define([va_api_drm_version], [0.33.0])
47 m4_define([va_api_x11_version], [0.31.0])
48 m4_define([va_api_wld_version], [0.33.0])
49
50 # libva package version number
51 m4_define([libva_enc_package_version], [1.2.0])
52 m4_define([libva_drm_package_version], [1.1.0])
53 m4_define([libva_x11_package_version], [1.0.3])
54 m4_define([libva_wld_package_version], [1.1.0])
55
56 # gtk-doc version number
57 # XXX: introspection annotations require gtk-doc >= 1.12
58 m4_define([gtkdoc_version], [1.9])
59
60 AC_PREREQ([2.66])
61 AC_INIT([gst_vaapi], [gst_vaapi_version],
62     [gwenole.beauchesne@intel.com],
63     [gstreamer-vaapi])
64
65 AC_CONFIG_HEADERS([config.h])
66 AC_CONFIG_SRCDIR([Makefile.am])
67 AC_CONFIG_MACRO_DIR([m4])
68 AC_CONFIG_AUX_DIR([build-aux])
69
70 AC_CANONICAL_TARGET
71
72 AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
73
74 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
75 AC_SUBST(TODAY)
76
77 LIBVA_PACKAGE_VERSION=libva_x11_package_version
78 AC_SUBST(LIBVA_PACKAGE_VERSION)
79
80 WAYLAND_API_VERSION=wayland_api_version
81 AC_SUBST(WAYLAND_API_VERSION)
82
83 dnl Use pretty build output with automake >= 1.11
84 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
85   AM_DEFAULT_VERBOSITY=1
86   AC_SUBST(AM_DEFAULT_VERBOSITY)
87 ])
88
89 dnl Check for tools
90 AC_PROG_CC
91 AM_PROG_CC_C_O
92
93 AC_ARG_VAR([GIT], [Path to git program, if any])
94 AC_PATH_PROG([GIT], [git])
95 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
96
97 AC_ARG_VAR([YASM], [Path to yasm program, if any])
98 AC_PATH_PROG([YASM], [yasm])
99 if test -z "$YASM" -a "$enable_builtin_libvpx" = "yes"; then
100     AC_MSG_ERROR([yasm is needed to build libvpx sources])
101 fi
102
103 dnl Initialize libtool
104 LT_PREREQ([2.2])
105 LT_INIT
106
107 AC_ARG_ENABLE(builtin_videoparsers,
108     AS_HELP_STRING([--enable-builtin-videoparsers],
109                    [enable built-in videoparsers @<:@default=yes@:>@]),
110     [], [enable_builtin_videoparsers="yes"])
111
112 AC_ARG_ENABLE(builtin_codecparsers,
113     AS_HELP_STRING([--enable-builtin-codecparsers],
114                    [enable built-in codecparsers @<:@default=yes@:>@]),
115     [], [enable_builtin_codecparsers="yes"])
116
117 AC_ARG_ENABLE(builtin_libvpx,
118     AS_HELP_STRING([--enable-builtin-libvpx],
119                    [enable built-in libvpx @<:@default=yes@:>@]),
120     [], [enable_builtin_libvpx="yes"])
121
122 AC_ARG_ENABLE([encoders],
123     AS_HELP_STRING([--enable-encoders],
124                    [enable video encoders @<:@default=yes@:>@]),
125     [], [enable_encoders="yes"])
126
127 AC_ARG_ENABLE(drm,
128     AS_HELP_STRING([--enable-drm],
129                    [enable DRM backend @<:@default=yes@:>@]),
130     [], [enable_drm="yes"])
131
132 AC_ARG_ENABLE(x11,
133     AS_HELP_STRING([--enable-x11],
134                    [enable X11 output @<:@default=yes@:>@]),
135     [], [enable_x11="yes"])
136
137 AC_ARG_ENABLE(glx,
138     AS_HELP_STRING([--enable-glx],
139                    [enable OpenGL/X11 output @<:@default=yes@:>@]),
140     [], [enable_glx="yes"])
141
142 AC_ARG_ENABLE(wayland,
143     AC_HELP_STRING([--enable-wayland],
144                    [enable Wayland output @<:@default=yes@:>@]),
145     [], [enable_wayland="yes"])
146
147 AC_ARG_ENABLE([egl],
148     AS_HELP_STRING([--enable-egl],
149         [enable EGL output @<:@default=yes@:>@]),
150     [], [enable_egl="yes"])
151
152 AC_ARG_WITH([glapi],
153     AS_HELP_STRING([--with-glapi=APIs],
154         [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
155     [GLAPI="$with_glapi"], [GLAPI=default_glapi])
156
157 dnl Check for basic libraries
158 AC_CHECK_LIB(m, tan)
159
160 dnl Check for Gtk doc
161 GTKDOC_VERSION=gtkdoc_version
162 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
163 m4_ifdef([GTK_DOC_CHECK], [
164 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
165 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
166 AC_SUBST(GTKDOC_VERSION)
167
168 dnl Check for GLib
169 GLIB_VERSION_REQUIRED=glib_version
170 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
171 AC_SUBST(GLIB_VERSION_REQUIRED)
172
173 dnl Check to see if dlopen is in default libraries (like Solaris, which
174 dnl has it in libc), or if libdl is needed to get it.
175 AC_CHECK_FUNC([dlopen], [], [
176     AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
177 AC_SUBST([DLOPEN_LIBS])
178
179 dnl ---------------------------------------------------------------------------
180 dnl -- GStreamer                                                             --
181 dnl ---------------------------------------------------------------------------
182 AC_MSG_CHECKING([for GStreamer API version])
183 if $PKG_CONFIG --exists "gstreamer-1.0"; then
184     gst_version=`$PKG_CONFIG --modversion "gstreamer-1.0"`
185     gst_major_version=`echo "$gst_version" | cut -d'.' -f1`
186     gst_minor_version=`echo "$gst_version" | cut -d'.' -f2`
187     GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
188     GST_PKG_VERSION="1.0"
189 fi
190 if test -z "$GST_PKG_VERSION"; then
191     AC_MSG_ERROR([gstreamer-$GST_PKG_VERSION was not found])
192 fi
193 AC_MSG_RESULT([$GST_API_VERSION])
194
195 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
196     [Defined to the string representation of GStreamer version])
197
198 dnl Versions for GStreamer and plugins-base
199 case $GST_API_VERSION in
200 1.2)
201     GST_VERSION_REQUIRED=gst12_version
202     GST_PLUGINS_BASE_VERSION_REQUIRED=gst12_plugins_base_version
203     GST_PLUGINS_BAD_VERSION_REQUIRED=gst12_plugins_bad_version
204     ;;
205 1.4)
206     GST_VERSION_REQUIRED=gst14_version
207     GST_PLUGINS_BASE_VERSION_REQUIRED=gst14_plugins_base_version
208     GST_PLUGINS_BAD_VERSION_REQUIRED=gst14_plugins_bad_version
209     ;;
210 1.[[5-6]])
211     GST_VERSION_REQUIRED=gst16_version
212     GST_PLUGINS_BASE_VERSION_REQUIRED=gst16_plugins_base_version
213     GST_PLUGINS_BAD_VERSION_REQUIRED=gst16_plugins_bad_version
214     ;;
215 *)
216     AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
217     ;;
218 esac
219 AC_SUBST(GST_API_VERSION)
220 AC_SUBST(GST_VERSION_REQUIRED)
221 AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
222 AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
223
224 USE_GST_API_1_2p="no"
225 USE_GST_API_1_4p="no"
226 AS_VERSION_COMPARE([$GST_API_VERSION], [1.2],
227     [], [USE_GST_API_1_2p="yes"], [USE_GST_API_1_2p="yes"])
228 AS_VERSION_COMPARE([$GST_API_VERSION], [1.4],
229     [], [USE_GST_API_1_4p="yes"], [USE_GST_API_1_4p="yes"])
230 AM_CONDITIONAL([USE_GST_API_1_2p], [test "$USE_GST_API_1_2p" = "yes"])
231 AM_CONDITIONAL([USE_GST_API_1_4p], [test "$USE_GST_API_1_4p" = "yes"])
232
233 AC_SUBST([GST_PKG_VERSION])
234
235 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
236     [Defined to the string representation of GStreamer API version])
237
238 dnl GStreamer Core
239 PKG_CHECK_MODULES([GST],
240     [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
241 PKG_CHECK_MODULES([GST_BASE],
242     [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
243
244 dnl GStreamer -base plugins
245 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
246     [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
247 if test "$GST_API_VERSION" = "0.10"; then
248 PKG_CHECK_MODULES([GST_INTERFACES],
249     [gstreamer-interfaces-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
250 fi
251
252 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
253 PKG_CHECK_MODULES([GST_ALLOCATORS],
254     [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
255
256 dnl ... GstVideoOverlayComposition (gstreamer-video)
257 PKG_CHECK_MODULES([GST_VIDEO],
258     [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
259
260 dnl GStreamer -bad plugins (deprecated in GStreamer v1.2)
261 if test "$USE_GST_API_1_2p" != "yes" && test "$USE_GST_API_1_4p" != "yes"; then
262 PKG_CHECK_MODULES([GST_BASEVIDEO],
263     [gstreamer-basevideo-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
264 fi
265
266 dnl ... bitstream parsers
267 if test "$enable_builtin_codecparsers" = "yes"; then
268     ac_cv_have_gst_mpeg2_parser="no"
269     ac_cv_have_gst_h264_parser="no"
270     ac_cv_have_gst_jpeg_parser="no"
271     ac_cv_have_gst_vp8_parser="no"
272     ac_cv_have_gst_h265_parser="no"
273 else
274 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
275     [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
276 fi
277
278 dnl ... MPEG-2 parser, with the required extensions
279 AC_CACHE_CHECK([for MPEG-2 parser],
280     ac_cv_have_gst_mpeg2_parser, [
281     saved_CPPFLAGS="$CPPFLAGS"
282     CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
283     saved_LIBS="$LIBS"
284     LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
285     AC_COMPILE_IFELSE(
286         [AC_LANG_PROGRAM(
287             [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
288             [[GstMpegVideoSequenceHdr seq_hdr;
289               GstMpegVideoSequenceExt seq_ext;
290               GstMpegVideoSequenceDisplayExt seq_dpy;
291               GstMpegVideoSliceHdr slice_hdr;
292               GstMpegVideoPacket packet;
293               gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
294                   &seq_hdr, NULL);
295               gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
296                   &seq_ext, &seq_dpy);]])],
297         [ac_cv_have_gst_mpeg2_parser="yes"],
298         [ac_cv_have_gst_mpeg2_parser="no"]
299     )
300     CPPFLAGS="$saved_CPPFLAGS"
301     LIBS="$saved_LIBS"
302 ])
303 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
304     [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
305
306 dnl ... H.264 parser, with the required extensions
307 AC_CACHE_CHECK([for H.264 parser],
308     ac_cv_have_gst_h264_parser, [
309     saved_CPPFLAGS="$CPPFLAGS"
310     CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
311     saved_LIBS="$LIBS"
312     LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
313     AC_COMPILE_IFELSE(
314         [AC_LANG_PROGRAM(
315             [[#include <gst/codecparsers/gsth264parser.h>]],
316             [[GstH264SliceHdr slice_hdr;
317               GstH264VUIParams vui_params;
318               GstH264Profile profile = GST_H264_PROFILE_HIGH;
319               slice_hdr.n_emulation_prevention_bytes = 0;
320               vui_params.par_n = 0;
321               vui_params.par_d = 0;]])],
322         [ac_cv_have_gst_h264_parser="yes"],
323         [ac_cv_have_gst_h264_parser="no"]
324     )
325     CPPFLAGS="$saved_CPPFLAGS"
326     LIBS="$saved_LIBS"
327 ])
328 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
329     [test "$ac_cv_have_gst_h264_parser" != "yes"])
330
331 dnl ... JPEG parser, not upstream yet
332 AC_CACHE_CHECK([for JPEG parser],
333     ac_cv_have_gst_jpeg_parser, [
334     saved_CPPFLAGS="$CPPFLAGS"
335     CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
336     saved_LIBS="$LIBS"
337     LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
338     AC_COMPILE_IFELSE(
339         [AC_LANG_PROGRAM(
340             [[#include <gst/codecparsers/gstjpegparser.h>]],
341             [[GstJpegImage jpeg_image;]])],
342         [ac_cv_have_gst_jpeg_parser="yes"],
343         [ac_cv_have_gst_jpeg_parser="no"]
344     )
345     CPPFLAGS="$saved_CPPFLAGS"
346     LIBS="$saved_LIBS"
347 ])
348 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
349     [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
350
351 dnl ... VP8 parser, not upstream yet
352 if test "$enable_builtin_libvpx" = "yes"; then
353     ac_cv_have_gst_vp8_parser="no"
354 fi
355 AC_CACHE_CHECK([for VP8 parser],
356     ac_cv_have_gst_vp8_parser, [
357     saved_CPPFLAGS="$CPPFLAGS"
358     CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
359     saved_LIBS="$LIBS"
360     LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
361     AC_COMPILE_IFELSE(
362         [AC_LANG_PROGRAM(
363             [[#include <gst/codecparsers/gstvp8parser.h>]],
364             [[GstVp8FrameHdr frame_hdr;]])],
365         [ac_cv_have_gst_vp8_parser="yes"],
366         [ac_cv_have_gst_vp8_parser="no"]
367     )
368     CPPFLAGS="$saved_CPPFLAGS"
369     LIBS="$saved_LIBS"
370 ])
371 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
372     [test "$ac_cv_have_gst_vp8_parser" != "yes"])
373 AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
374
375 dnl ... H.265 parser, with the required extensions
376 AC_CACHE_CHECK([for H.265 parser],
377     ac_cv_have_gst_h265_parser, [
378     saved_CPPFLAGS="$CPPFLAGS"
379     CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
380     saved_LIBS="$LIBS"
381     LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
382     AC_COMPILE_IFELSE(
383         [AC_LANG_PROGRAM(
384             [[#include <gst/codecparsers/gsth265parser.h>]],
385             [[GstH265SliceHdr slice_hdr;
386               GstH265VUIParams vui_params;
387               GstH265Profile profile = GST_H265_PROFILE_MAIN_STILL_PICTURE;
388               slice_hdr.n_emulation_prevention_bytes = 0;
389               vui_params.par_n = 0;
390               vui_params.par_d = 0;]])],
391         [ac_cv_have_gst_h265_parser="yes"],
392         [ac_cv_have_gst_h265_parser="no"]
393     )
394     CPPFLAGS="$saved_CPPFLAGS"
395     LIBS="$saved_LIBS"
396 ])
397 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H265],
398     [test "$ac_cv_have_gst_h265_parser" != "yes"])
399
400 dnl ... video parsers
401 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
402     [test "$enable_builtin_videoparsers" = "yes"])
403
404 dnl ... opengl helper libraries
405 HAVE_GSTGL=0
406 if test "$enable_glx" = "yes" -o "$enable_egl" = "yes"; then
407     PKG_CHECK_MODULES([GST_GL],
408         [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
409         [HAVE_GSTGL=1], [HAVE_GSTGL=0])
410 fi
411
412 if test $HAVE_GSTGL -eq 1; then
413     AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
414         [ac_cv_have_gst_gl_helpers], [
415         saved_CPPFLAGS="$CPPFLAGS"
416         CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS"
417         saved_LIBS="$LIBS"
418         LIBS="$saved_LIBS"
419         AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
420         AC_COMPILE_IFELSE(
421             [AC_LANG_PROGRAM(
422                 [[#include <gst/gl/gl.h>]],
423                 [[GstGLContext gl_context;]])],
424             [ac_cv_have_gst_gl_helpers="yes"],
425             [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0]
426         )
427         CPPFLAGS="$saved_CPPFLAGS"
428         LIBS="$saved_LIBS"
429     ])
430 fi
431 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
432
433 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
434     [Defined to 1 if GStreamer OpenGL helper libraries are available])
435
436 if test "$enable_egl" = "yes" -a $HAVE_GSTGL -ne 1; then
437     AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
438     enable_egl="no"
439 fi
440
441 case $GST_API_VERSION in
442 1.0)    lt_bias=gst1_vaapi_lt_current_bias;;
443 1.2)    lt_bias=gst2_vaapi_lt_current_bias;;
444 1.4) lt_bias=gst4_vaapi_lt_current_bias;;
445 1.[[5-6]])    lt_bias=gst6_vaapi_lt_current_bias;;
446 esac
447 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
448 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
449
450 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
451     [Defined to the string representation of gstreamer-vaapi major version])
452
453 dnl GST_VAAPI_LT_LDFLAGS:
454 GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
455 GST_VAAPI_LT_REV=gst_vaapi_lt_revision
456 GST_VAAPI_LT_AGE=gst_vaapi_lt_age
457 GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
458 GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
459 AC_SUBST(GST_VAAPI_LT_VERSION)
460 AC_SUBST(GST_VAAPI_LT_LDFLAGS)
461
462 dnl GST_ALL_LDFLAGS:
463 dnl LDFLAGS really should only contain flags, not libs - they get added before
464 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
465 GST_ALL_LDFLAGS="-no-undefined"
466 AC_SUBST(GST_ALL_LDFLAGS)
467
468 dnl GST_PLUGIN_LDFLAGS:
469 dnl this really should only contain flags, not libs - they get added before
470 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
471 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
472 AC_SUBST(GST_PLUGIN_LDFLAGS)
473
474 dnl Check for the GStreamer plugins directory
475 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
476 AC_MSG_CHECKING([for GStreamer plugins directory])
477 if test -d "$GST_PLUGIN_PATH_1_0"; then
478     GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
479 else
480     GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
481     if test -z "$GST_PLUGINS_DIR"; then
482         GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
483     fi
484 fi
485 AC_MSG_RESULT([$GST_PLUGINS_DIR])
486 plugindir="$GST_PLUGINS_DIR"
487 AC_SUBST(plugindir)
488
489 dnl ---------------------------------------------------------------------------
490 dnl -- Renderers                                                             --
491 dnl ---------------------------------------------------------------------------
492
493 dnl Check for DRM/libudev
494 USE_DRM=0
495 if test "$enable_drm" = "yes"; then
496     PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
497     PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
498
499     if test $USE_DRM -eq 1; then
500         saved_CPPFLAGS="$CPPFLAGS"
501         CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
502         AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
503         CPPFLAGS="$saved_CPPFLAGS"
504     fi
505 fi
506
507 dnl Check for X11
508 USE_X11=0
509 if test "$enable_x11" = "yes"; then
510     PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
511     if test $USE_X11 -eq 1; then
512         saved_CPPFLAGS="$CPPFLAGS"
513         CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
514         AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
515         CPPFLAGS="$saved_CPPFLAGS"
516     fi
517 fi
518
519 dnl Check for XKB library
520 HAVE_XKBLIB=0
521 if test $USE_X11 -eq 1; then
522     AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
523 fi
524 if test $HAVE_XKBLIB -eq 1; then
525     AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
526         [Defined to 1 if the XKB extension exists.])
527 fi
528
529 dnl Check for XRandR
530 HAVE_XRANDR=0
531 if test $USE_X11 -eq 1; then
532     HAVE_XRANDR=1
533     PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
534     if test $HAVE_XRANDR -eq 1; then
535         saved_CPPFLAGS="$CPPFLAGS"
536         CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
537         AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
538         CPPFLAGS="$saved_CPPFLAGS"
539     fi
540 fi
541 if test $HAVE_XRANDR -eq 1; then
542     AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
543         [Defined to 1 if the XRandR extension exists.])
544 fi
545
546 dnl Check for XRender
547 HAVE_XRENDER=0
548 if test $USE_X11 -eq 1; then
549     HAVE_XRENDER=1
550     PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
551     if test $HAVE_XRENDER -eq 1; then
552         saved_CPPFLAGS="$CPPFLAGS"
553         CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
554         AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
555         CPPFLAGS="$saved_CPPFLAGS"
556     fi
557 fi
558 if test $HAVE_XRENDER -eq 1; then
559     AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
560         [Defined to 1 if the XRender extension exists.])
561 fi
562
563 dnl OpenGL
564 enable_opengl="no"
565 if test "$enable_glx" = "yes"; then
566     enable_opengl="yes"
567 fi
568 if test "$enable_egl" = "yes"; then
569     enable_opengl="yes"
570 fi
571 GLES_VERSION_MASK=0
572
573 HAVE_GL=0
574 if test "$enable_opengl" = "yes"; then
575 case ",$GLAPI," in
576 (*,any,*|*,gl,*)
577     HAVE_GL=1
578     PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
579     saved_CPPFLAGS="$CPPFLAGS"
580     CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
581     AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
582 #ifdef HAVE_GL_GL_H
583 # include <GL/gl.h>
584 #endif
585     ])
586     CPPFLAGS="$saved_CPPFLAGS"
587     ;;
588 esac
589 fi
590 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
591
592 dnl OpenGL|ESv2
593 HAVE_GLESv2=0
594 if test "$enable_opengl" = "yes"; then
595 case ",$GLAPI," in
596 (*,any,*|*,gles2,*)
597     HAVE_GLESv2=1
598     PKG_CHECK_MODULES([GLES2], [glesv2], [:], [HAVE_GLESv2=0])
599     saved_CPPFLAGS="$CPPFLAGS"
600     CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
601     AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [:],
602         [HAVE_GLESv2=0], [
603 #ifdef HAVE_GLES2_GL2_H
604 # include <GLES2/gl2.h>
605 #endif
606     ])
607     CPPFLAGS="$saved_CPPFLAGS"
608     ;;
609 esac
610 fi
611 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
612
613 dnl OpenGL|ESv3
614 HAVE_GLESv3=0
615 if test "$enable_opengl" = "yes"; then
616 case ",$GLAPI," in
617 (*,any,*|*,gles3,*)
618     HAVE_GLESv3=1
619     PKG_CHECK_MODULES([GLES3], [glesv2], [:], [HAVE_GLESv3=0])
620     saved_CPPFLAGS="$CPPFLAGS"
621     CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
622     AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [:],
623         [HAVE_GLESv3=0], [
624 #ifdef HAVE_GLES3_GL3_H
625 # include <GLES3/gl3.h>
626 #endif
627     ])
628     CPPFLAGS="$saved_CPPFLAGS"
629     ;;
630 esac
631 fi
632 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
633
634 dnl ... GLX
635 USE_GLX=0
636 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
637     USE_GLX=1
638     saved_CPPFLAGS="$CPPFLAGS"
639     saved_LIBS="$LIBS"
640     CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
641     LIBS="$LIBS $GL_LIBS"
642     AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
643 #ifdef HAVE_GL_GL_H
644 # include <GL/gl.h>
645 #endif
646     ])
647     AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
648     CPPFLAGS="$saved_CPPFLAGS"
649     LIBS="$saved_LIBS"
650 fi
651
652 dnl ... EGL
653 USE_EGL=0
654 if test "$enable_egl" = "yes" -a $GLES_VERSION_MASK -ne 0; then
655     USE_EGL=1
656     PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
657     saved_CPPFLAGS="$CPPFLAGS"
658     saved_LIBS="$LIBS"
659     AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
660     AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
661     CPPFLAGS="$saved_CPPFLAGS"
662     LIBS="$saved_LIBS"
663 fi
664
665 dnl Check for Wayland
666 USE_WAYLAND=0
667 if test "$enable_wayland" = "yes"; then
668     PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
669         [USE_WAYLAND=1], [USE_WAYLAND=0])
670
671     if test $USE_WAYLAND -eq 1; then
672         saved_CPPFLAGS="$CPPFLAGS"
673         CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
674         AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
675         CPPFLAGS="$saved_CPPFLAGS"
676     fi
677 fi
678
679 dnl ---------------------------------------------------------------------------
680 dnl -- VA-API                                                                --
681 dnl ---------------------------------------------------------------------------
682
683 dnl Core API
684 LIBVA_PKGNAME="libva"
685 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
686 AC_SUBST(LIBVA_PKGNAME)
687
688 VA_VERSION=`$PKG_CONFIG --modversion libva`
689 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
690 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
691 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
692 VA_VERSION_STR="$VA_VERSION"
693
694 dnl VA/DRM API
695 HAVE_VA_DRM=0
696 if test $USE_DRM -eq 1; then
697     PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
698         [HAVE_VA_DRM=1], [USE_DRM=0])
699
700     if test $HAVE_VA_DRM -eq 1; then
701         saved_CPPFLAGS="$CPPFLAGS"
702         CPPFLAGS="$LIBVA_DRM_CFLAGS"
703         AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
704         CPPFLAGS="$saved_CPPFLAGS"
705     fi
706 fi
707
708 dnl VA/X11 API
709 HAVE_VA_X11=0
710 LIBVA_X11_PKGNAME="libva-x11"
711 if test $USE_X11 -eq 1; then
712     PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
713         [HAVE_VA_X11=1], [USE_X11=0])
714 fi
715 AC_SUBST(LIBVA_X11_PKGNAME)
716
717 dnl Check for va_dec_jpeg.h header
718 saved_CPPFLAGS="$CPPFLAGS"
719 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
720 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
721 CPPFLAGS="$saved_CPPFLAGS"
722
723 dnl Check for JPEG decoding API (0.32.1+)
724 USE_JPEG_DECODER=0
725 AC_CACHE_CHECK([for JPEG decoding API],
726     ac_cv_have_jpeg_decoding_api, [
727     saved_CPPFLAGS="$CPPFLAGS"
728     CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
729     saved_LIBS="$LIBS"
730     LIBS="$LIBS $LIBVA_LIBS"
731     AC_COMPILE_IFELSE(
732         [AC_LANG_PROGRAM(
733             [[#include <va/va.h>
734               #ifdef HAVE_VA_VA_DEC_JPEG_H
735               #include <va/va_dec_jpeg.h>
736               #endif
737             ]],
738             [[VAPictureParameterBufferJPEGBaseline pic_param;
739               VASliceParameterBufferJPEGBaseline slice_param;
740               VAHuffmanTableBufferJPEGBaseline huffman_table;
741               VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
742         [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
743         [ac_cv_have_jpeg_decoding_api="no"]
744     )
745     CPPFLAGS="$saved_CPPFLAGS"
746     LIBS="$saved_LIBS"
747 ])
748
749 dnl Check for va_dec_vp8.h header
750 saved_CPPFLAGS="$CPPFLAGS"
751 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
752 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
753 CPPFLAGS="$saved_CPPFLAGS"
754
755 dnl Check for VP8 decoding API (0.34+)
756 USE_VP8_DECODER=0
757 AC_CACHE_CHECK([for VP8 decoding API],
758     ac_cv_have_vp8_decoding_api, [
759     saved_CPPFLAGS="$CPPFLAGS"
760     CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
761     saved_LIBS="$LIBS"
762     LIBS="$LIBS $LIBVA_LIBS"
763     AC_COMPILE_IFELSE(
764         [AC_LANG_PROGRAM(
765             [[#include <va/va.h>
766               #ifdef HAVE_VA_VA_DEC_VP8_H
767               #include <va/va_dec_vp8.h>
768               #endif
769             ]],
770             [[VAPictureParameterBufferVP8 pic_param;
771               VASliceParameterBufferVP8 slice_param;
772               VAProbabilityDataBufferVP8 prob_data;
773               VAIQMatrixBufferVP8 iq_matrix;
774               slice_param.slice_data_offset = 0;
775               slice_param.slice_data_flag = 0;]])],
776         [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
777         [ac_cv_have_vp8_decoding_api="no"]
778     )
779     CPPFLAGS="$saved_CPPFLAGS"
780     LIBS="$saved_LIBS"
781 ])
782
783 dnl Check for va_dec_hevc.h header
784 saved_CPPFLAGS="$CPPFLAGS"
785 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
786 AC_CHECK_HEADERS([va/va_dec_hevc.h], [], [], [#include <va/va.h>])
787 CPPFLAGS="$saved_CPPFLAGS"
788
789 dnl Check for HEVC decoding API (0.38+)
790 USE_HEVC_DECODER=0
791 AC_CACHE_CHECK([for HEVC decoding API],
792     ac_cv_have_hevc_decoding_api, [
793     saved_CPPFLAGS="$CPPFLAGS"
794     CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
795     saved_LIBS="$LIBS"
796     LIBS="$LIBS $LIBVA_LIBS"
797     AC_COMPILE_IFELSE(
798         [AC_LANG_PROGRAM(
799             [[#include <va/va.h>
800               #ifdef HAVE_VA_VA_DEC_HEVC_H
801               #include <va/va_dec_hevc.h>
802               #endif
803             ]],
804             [[VAPictureParameterBufferHEVC pic_param;
805               VASliceParameterBufferHEVC slice_param;
806               VAIQMatrixBufferHEVC iq_matrix;
807               slice_param.slice_data_offset = 0;
808               slice_param.slice_data_flag = 0;]])],
809         [ac_cv_have_hevc_decoding_api="yes" USE_HEVC_DECODER=1],
810         [ac_cv_have_hevc_decoding_api="no"]
811     )
812     CPPFLAGS="$saved_CPPFLAGS"
813     LIBS="$saved_LIBS"
814 ])
815
816 dnl Check for vpp (video post-processing) support
817 USE_VA_VPP=0
818 AC_CACHE_CHECK([for video post-postprocessing API],
819     ac_cv_have_va_vpp_api, [
820     saved_CPPFLAGS="$CPPFLAGS"
821     CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
822     saved_LIBS="$LIBS"
823     LIBS="$LIBS $LIBVA_LIBS"
824     AC_COMPILE_IFELSE(
825         [AC_LANG_PROGRAM(
826             [[#include <va/va.h>
827               #include <va/va_vpp.h>]],
828             [[VADisplay va_dpy;
829               VAContextID vpp_ctx;
830               VAProcFilterType filters[VAProcFilterCount];
831               unsigned int num_filters = VAProcFilterCount;
832               vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
833               ]])],
834         [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
835         [ac_cv_have_va_vpp_api="no"]
836     )
837     CPPFLAGS="$saved_CPPFLAGS"
838     LIBS="$saved_LIBS"
839 ])
840
841 dnl Check for encoding support
842 USE_ENCODERS=0
843 USE_JPEG_ENCODER=0
844 USE_VP8_ENCODER=0
845 if test "$enable_encoders" = "yes"; then
846     PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
847         [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
848
849     if test $HAVE_VA_ENC -eq 1; then
850         saved_CPPFLAGS="$CPPFLAGS"
851         CPPFLAGS="$LIBVA_CFLAGS"
852         AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
853             [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
854             [#include <va/va.h>
855             ])
856
857         dnl Check for JPEG Encoding API (0.37.0+)
858         AC_CHECK_HEADERS([va/va_enc_jpeg.h],
859             [USE_JPEG_ENCODER=1], [],
860             [#include <va/va.h>
861             ])
862         AC_CACHE_CHECK([for JPEG encoding API],
863             ac_cv_have_jpeg_encoding_api, [
864             saved_CPPFLAGS="$CPPFLAGS"
865             CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
866             saved_LIBS="$LIBS"
867             LIBS="$LIBS $LIBVA_LIBS"
868             AC_COMPILE_IFELSE(
869                 [AC_LANG_PROGRAM(
870                     [[#include <va/va.h>
871                       #ifdef HAVE_VA_VA_ENC_JPEG_H
872                       #include <va/va_enc_jpeg.h>
873                       #endif
874                     ]],
875                     [[VAEncPictureParameterBufferJPEG pic_param;
876                       VAEncSliceParameterBufferJPEG slice_param;
877                       VAQMatrixBufferJPEG q_matrix;]])],
878                 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
879                 [ac_cv_have_jpeg_encoding_api="no"]
880             )
881             CPPFLAGS="$saved_CPPFLAGS"
882             LIBS="$saved_LIBS"
883         ])
884
885         dnl Check for VP8 Encoding API
886         AC_CHECK_HEADERS([va/va_enc_vp8.h],
887             [USE_VP8_ENCODER=1], [],
888             [#include <va/va.h>
889             ])
890         AC_CACHE_CHECK([for VP8 encoding API],
891             ac_cv_have_vp8_encoding_api, [
892             saved_CPPFLAGS="$CPPFLAGS"
893             CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
894             saved_LIBS="$LIBS"
895             LIBS="$LIBS $LIBVA_LIBS"
896             AC_COMPILE_IFELSE(
897                 [AC_LANG_PROGRAM(
898                     [[#include <va/va.h>
899                       #ifdef HAVE_VA_VA_ENC_VP8_H
900                       #include <va/va_enc_vp8.h>
901                       #endif
902                     ]],
903                     [[VAEncSequenceParameterBufferVP8 seq_param;
904                       VAEncPictureParameterBufferVP8 pic_param;
905                       VAQMatrixBufferVP8 q_matrix;]])],
906                 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
907                 [ac_cv_have_vp8_encoding_api="no" USE_VP8_ENCODER=0]
908             )
909             CPPFLAGS="$saved_CPPFLAGS"
910             LIBS="$saved_LIBS"
911         ])
912         CPPFLAGS="$saved_CPPFLAGS"
913     fi
914 fi
915
916 dnl VA/Wayland API
917 if test "$enable_wayland" = "yes"; then
918     PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
919         [:], [USE_WAYLAND=0])
920 fi
921
922 dnl ---------------------------------------------------------------------------
923 dnl -- Generate files and summary                                            --
924 dnl ---------------------------------------------------------------------------
925
926 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
927 *:1:*)
928     ;;
929 *)
930     AC_MSG_ERROR([No renderer is enabled])
931     ;;
932 esac
933
934 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
935     [Defined to 1 if video encoders are used])
936 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
937
938 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
939     [Defined to 1 if JPEG encoder is used])
940 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
941
942 AC_DEFINE_UNQUOTED(USE_VP8_ENCODER, $USE_VP8_ENCODER,
943     [Defined to 1 if VP8 encoder is used])
944 AM_CONDITIONAL(USE_VP8_ENCODER, test $USE_VP8_ENCODER -eq 1)
945
946 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
947     [Defined to 1 if video post-processing is used])
948 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
949
950 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
951     [Defined to 1 if JPEG decoder is used])
952 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
953
954 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
955     [Defined to 1 if VP8 decoder is used])
956 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
957
958 AC_DEFINE_UNQUOTED(USE_HEVC_DECODER, $USE_HEVC_DECODER,
959     [Defined to 1 if HEVC decoder is used])
960 AM_CONDITIONAL(USE_HEVC_DECODER, test $USE_HEVC_DECODER -eq 1)
961
962 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
963     [Defined to 1 if DRM is enabled])
964 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
965
966 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
967     [Defined to 1 if X11 is enabled])
968 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
969
970 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
971     [Defined to 1 if GLX is enabled])
972 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
973
974 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
975     [Defined to 1 if EGL is enabled])
976 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
977
978 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
979     [Defined to the set of enabled OpenGL ES APIs])
980
981 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
982     [Defined to 1 if WAYLAND is enabled])
983 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
984
985 pkgconfigdir=${libdir}/pkgconfig
986 AC_SUBST(pkgconfigdir)
987
988 AC_CONFIG_FILES([
989     Makefile
990     debian.upstream/Makefile
991     debian.upstream/changelog
992     debian.upstream/control
993     debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
994 debian.upstream/gstreamer-vaapi-doc.install.in
995     debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
996 debian.upstream/gstreamer-vaapi.install.in
997     debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
998 debian.upstream/libgstvaapi-dev.install.in
999     debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
1000 debian.upstream/libgstvaapi.install.in
1001     debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
1002 debian.upstream/libgstvaapi-drm.install.in
1003     debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
1004 debian.upstream/libgstvaapi-glx.install.in
1005     debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
1006 debian.upstream/libgstvaapi-wayland.install.in
1007     debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
1008 debian.upstream/libgstvaapi-x11.install.in
1009     docs/Makefile
1010     docs/reference/Makefile
1011     docs/reference/libs/Makefile
1012     docs/reference/libs/libs-docs.xml
1013     docs/reference/plugins/Makefile
1014     docs/reference/plugins/plugins-docs.xml
1015     ext/Makefile
1016     ext/libvpx/Makefile
1017     gst-libs/Makefile
1018     gst-libs/gst/Makefile
1019     gst-libs/gst/base/Makefile
1020     gst-libs/gst/codecparsers/Makefile
1021     gst-libs/gst/vaapi/Makefile
1022     gst/Makefile
1023     gst/vaapi/Makefile
1024     patches/Makefile
1025     patches/videoparsers/Makefile
1026     pkgconfig/Makefile
1027     pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
1028 pkgconfig/gstreamer-vaapi.pc.in
1029     pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
1030 pkgconfig/gstreamer-vaapi-drm.pc.in
1031     pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
1032 pkgconfig/gstreamer-vaapi-glx.pc.in
1033     pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
1034 pkgconfig/gstreamer-vaapi-wayland.pc.in
1035     pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
1036 pkgconfig/gstreamer-vaapi-x11.pc.in
1037     tests/Makefile
1038 ])
1039 AC_OUTPUT
1040
1041 dnl Print summary
1042 yesno() {
1043     test $1 -eq 1 && echo yes || echo no
1044 }
1045
1046 VIDEO_OUTPUTS=""
1047 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
1048 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
1049 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
1050 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
1051 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
1052
1053 echo
1054 echo $PACKAGE configuration summary:
1055 echo
1056 echo Installation Prefix .............. : ${prefix}
1057 echo GStreamer API version ............ : $GST_API_VERSION
1058 echo VA-API version ................... : $VA_VERSION_STR
1059 echo Video encoding ................... : $(yesno $USE_ENCODERS)
1060 echo Video outputs .................... : $VIDEO_OUTPUTS
1061 echo