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