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])
13 m4_define([default_glapi], [any])
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])
26 m4_define([glib_version], [2.28])
28 # gstreamer version number
29 m4_define([gst_api_version], [autodetect])
30 m4_define([gst1_version], [1.0.0])
31 m4_define([gst1_plugins_base_version], [1.0.0])
32 m4_define([gst1_plugins_bad_version], [1.0.0])
33 m4_define([gst12_version], [1.1.90])
34 m4_define([gst12_plugins_base_version], [1.1.0])
35 m4_define([gst12_plugins_bad_version], [1.1.0])
36 m4_define([gst14_version], [1.2.90])
37 m4_define([gst14_plugins_base_version], [1.3.0])
38 m4_define([gst14_plugins_bad_version], [1.3.0])
39 m4_define([gst16_version], [1.5.0])
40 m4_define([gst16_plugins_base_version], [1.5.0])
41 m4_define([gst16_plugins_bad_version], [1.5.0])
43 # Wayland minimum version number
44 m4_define([wayland_api_version], [1.0.0])
46 # VA-API minimum version number
47 m4_define([va_api_version], [0.30.4])
48 m4_define([va_api_enc_version], [0.34.0])
49 m4_define([va_api_drm_version], [0.33.0])
50 m4_define([va_api_x11_version], [0.31.0])
51 m4_define([va_api_wld_version], [0.33.0])
53 # libva package version number
54 m4_define([libva_enc_package_version], [1.2.0])
55 m4_define([libva_drm_package_version], [1.1.0])
56 m4_define([libva_x11_package_version], [1.0.3])
57 m4_define([libva_wld_package_version], [1.1.0])
59 # gtk-doc version number
60 # XXX: introspection annotations require gtk-doc >= 1.12
61 m4_define([gtkdoc_version], [1.9])
64 AC_INIT([gst_vaapi], [gst_vaapi_version],
65 [gwenole.beauchesne@intel.com],
68 AC_CONFIG_HEADERS([config.h])
69 AC_CONFIG_SRCDIR([Makefile.am])
70 AC_CONFIG_MACRO_DIR([m4])
71 AC_CONFIG_AUX_DIR([build-aux])
75 AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
77 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
80 LIBVA_PACKAGE_VERSION=libva_x11_package_version
81 AC_SUBST(LIBVA_PACKAGE_VERSION)
83 WAYLAND_API_VERSION=wayland_api_version
84 AC_SUBST(WAYLAND_API_VERSION)
86 dnl Use pretty build output with automake >= 1.11
87 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
88 AM_DEFAULT_VERBOSITY=1
89 AC_SUBST(AM_DEFAULT_VERBOSITY)
96 AC_ARG_VAR([GIT], [Path to git program, if any])
97 AC_PATH_PROG([GIT], [git])
98 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
100 AC_ARG_VAR([YASM], [Path to yasm program, if any])
101 AC_PATH_PROG([YASM], [yasm])
102 if test -z "$YASM" -a "$enable_builtin_libvpx" = "yes"; then
103 AC_MSG_ERROR([yasm is needed to build libvpx sources])
106 dnl Initialize libtool
110 AC_ARG_ENABLE(builtin_videoparsers,
111 AS_HELP_STRING([--enable-builtin-videoparsers],
112 [enable built-in videoparsers @<:@default=yes@:>@]),
113 [], [enable_builtin_videoparsers="yes"])
115 AC_ARG_ENABLE(builtin_codecparsers,
116 AS_HELP_STRING([--enable-builtin-codecparsers],
117 [enable built-in codecparsers @<:@default=yes@:>@]),
118 [], [enable_builtin_codecparsers="yes"])
120 AC_ARG_ENABLE(builtin_libvpx,
121 AS_HELP_STRING([--enable-builtin-libvpx],
122 [enable built-in libvpx @<:@default=yes@:>@]),
123 [], [enable_builtin_libvpx="yes"])
125 AC_ARG_ENABLE([encoders],
126 AS_HELP_STRING([--enable-encoders],
127 [enable video encoders @<:@default=yes@:>@]),
128 [], [enable_encoders="yes"])
131 AS_HELP_STRING([--enable-drm],
132 [enable DRM backend @<:@default=yes@:>@]),
133 [], [enable_drm="yes"])
136 AS_HELP_STRING([--enable-x11],
137 [enable X11 output @<:@default=yes@:>@]),
138 [], [enable_x11="yes"])
141 AS_HELP_STRING([--enable-glx],
142 [enable OpenGL/X11 output @<:@default=yes@:>@]),
143 [], [enable_glx="yes"])
145 AC_ARG_ENABLE(wayland,
146 AC_HELP_STRING([--enable-wayland],
147 [enable Wayland output @<:@default=yes@:>@]),
148 [], [enable_wayland="yes"])
151 AS_HELP_STRING([--enable-egl],
152 [enable EGL output @<:@default=yes@:>@]),
153 [], [enable_egl="yes"])
156 AS_HELP_STRING([--with-glapi=APIs],
157 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
158 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
160 dnl Check for basic libraries
163 dnl Check for Gtk doc
164 GTKDOC_VERSION=gtkdoc_version
165 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
166 m4_ifdef([GTK_DOC_CHECK], [
167 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
168 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
169 AC_SUBST(GTKDOC_VERSION)
172 GLIB_VERSION_REQUIRED=glib_version
173 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
174 AC_SUBST(GLIB_VERSION_REQUIRED)
176 dnl Check to see if dlopen is in default libraries (like Solaris, which
177 dnl has it in libc), or if libdl is needed to get it.
178 AC_CHECK_FUNC([dlopen], [], [
179 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
180 AC_SUBST([DLOPEN_LIBS])
182 dnl ---------------------------------------------------------------------------
184 dnl ---------------------------------------------------------------------------
185 AC_MSG_CHECKING([for GStreamer API version])
186 if $PKG_CONFIG --exists "gstreamer-1.0"; then
187 gst_version=`$PKG_CONFIG --modversion "gstreamer-1.0"`
188 gst_major_version=`echo "$gst_version" | cut -d'.' -f1`
189 gst_minor_version=`echo "$gst_version" | cut -d'.' -f2`
190 GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
191 GST_PKG_VERSION="1.0"
193 if test -z "$GST_PKG_VERSION"; then
194 AC_MSG_ERROR([gstreamer-$GST_PKG_VERSION was not found])
196 AC_MSG_RESULT([$GST_API_VERSION])
198 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
199 [Defined to the string representation of GStreamer version])
201 dnl Versions for GStreamer and plugins-base
202 case $GST_API_VERSION in
204 GST_VERSION_REQUIRED=gst1_version
205 GST_PLUGINS_BASE_VERSION_REQUIRED=gst1_plugins_base_version
206 GST_PLUGINS_BAD_VERSION_REQUIRED=gst1_plugins_bad_version
209 GST_VERSION_REQUIRED=gst12_version
210 GST_PLUGINS_BASE_VERSION_REQUIRED=gst12_plugins_base_version
211 GST_PLUGINS_BAD_VERSION_REQUIRED=gst12_plugins_bad_version
214 GST_VERSION_REQUIRED=gst14_version
215 GST_PLUGINS_BASE_VERSION_REQUIRED=gst14_plugins_base_version
216 GST_PLUGINS_BAD_VERSION_REQUIRED=gst14_plugins_bad_version
219 GST_VERSION_REQUIRED=gst16_version
220 GST_PLUGINS_BASE_VERSION_REQUIRED=gst16_plugins_base_version
221 GST_PLUGINS_BAD_VERSION_REQUIRED=gst16_plugins_bad_version
224 AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
227 AC_SUBST(GST_API_VERSION)
228 AC_SUBST(GST_VERSION_REQUIRED)
229 AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
230 AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
232 USE_GST_API_1_0p="no"
233 USE_GST_API_1_2p="no"
234 USE_GST_API_1_4p="no"
235 AS_VERSION_COMPARE([$GST_API_VERSION], [1.0],
236 [], [USE_GST_API_1_0p="yes"], [USE_GST_API_1_0p="yes"])
237 AS_VERSION_COMPARE([$GST_API_VERSION], [1.2],
238 [], [USE_GST_API_1_2p="yes"], [USE_GST_API_1_2p="yes"])
239 AS_VERSION_COMPARE([$GST_API_VERSION], [1.4],
240 [], [USE_GST_API_1_4p="yes"], [USE_GST_API_1_4p="yes"])
241 AM_CONDITIONAL([USE_GST_API_1_0p], [test "$USE_GST_API_1_0p" = "yes"])
242 AM_CONDITIONAL([USE_GST_API_1_2p], [test "$USE_GST_API_1_2p" = "yes"])
243 AM_CONDITIONAL([USE_GST_API_1_4p], [test "$USE_GST_API_1_4p" = "yes"])
245 AC_SUBST([GST_PKG_VERSION])
247 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
248 [Defined to the string representation of GStreamer API version])
250 dnl Validate certain features
251 if test "$GST_API_VERSION" = "1.0"; then
252 AC_MSG_WARN([support for GStreamer 1.0 is obsolete, and will be removed])
256 PKG_CHECK_MODULES([GST],
257 [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
258 PKG_CHECK_MODULES([GST_BASE],
259 [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
261 dnl GStreamer -base plugins
262 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
263 [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
264 if test "$GST_API_VERSION" = "0.10"; then
265 PKG_CHECK_MODULES([GST_INTERFACES],
266 [gstreamer-interfaces-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
269 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
270 PKG_CHECK_MODULES([GST_ALLOCATORS],
271 [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
273 dnl ... GstVideoOverlayComposition (gstreamer-video)
274 PKG_CHECK_MODULES([GST_VIDEO],
275 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
277 dnl GStreamer -bad plugins (deprecated in GStreamer v1.2)
278 if test "$USE_GST_API_1_2p" != "yes" && test "$USE_GST_API_1_4p" != "yes"; then
279 PKG_CHECK_MODULES([GST_BASEVIDEO],
280 [gstreamer-basevideo-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
283 dnl ... bitstream parsers
284 if test "$enable_builtin_codecparsers" = "yes"; then
285 ac_cv_have_gst_mpeg2_parser="no"
286 ac_cv_have_gst_h264_parser="no"
287 ac_cv_have_gst_jpeg_parser="no"
288 ac_cv_have_gst_vp8_parser="no"
290 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
291 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
294 dnl ... MPEG-2 parser, with the required extensions
295 AC_CACHE_CHECK([for MPEG-2 parser],
296 ac_cv_have_gst_mpeg2_parser, [
297 saved_CPPFLAGS="$CPPFLAGS"
298 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
300 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
303 [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
304 [[GstMpegVideoSequenceHdr seq_hdr;
305 GstMpegVideoSequenceExt seq_ext;
306 GstMpegVideoSequenceDisplayExt seq_dpy;
307 GstMpegVideoSliceHdr slice_hdr;
308 GstMpegVideoPacket packet;
309 gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
311 gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
312 &seq_ext, &seq_dpy);]])],
313 [ac_cv_have_gst_mpeg2_parser="yes"],
314 [ac_cv_have_gst_mpeg2_parser="no"]
316 CPPFLAGS="$saved_CPPFLAGS"
319 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
320 [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
322 dnl ... H.264 parser, with the required extensions
323 AC_CACHE_CHECK([for H.264 parser],
324 ac_cv_have_gst_h264_parser, [
325 saved_CPPFLAGS="$CPPFLAGS"
326 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
328 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
331 [[#include <gst/codecparsers/gsth264parser.h>]],
332 [[GstH264SliceHdr slice_hdr;
333 GstH264VUIParams vui_params;
334 GstH264Profile profile = GST_H264_PROFILE_HIGH;
335 slice_hdr.n_emulation_prevention_bytes = 0;
336 vui_params.par_n = 0;
337 vui_params.par_d = 0;]])],
338 [ac_cv_have_gst_h264_parser="yes"],
339 [ac_cv_have_gst_h264_parser="no"]
341 CPPFLAGS="$saved_CPPFLAGS"
344 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
345 [test "$ac_cv_have_gst_h264_parser" != "yes"])
347 dnl ... JPEG parser, not upstream yet
348 AC_CACHE_CHECK([for JPEG parser],
349 ac_cv_have_gst_jpeg_parser, [
350 saved_CPPFLAGS="$CPPFLAGS"
351 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
353 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
356 [[#include <gst/codecparsers/gstjpegparser.h>]],
357 [[GstJpegImage jpeg_image;]])],
358 [ac_cv_have_gst_jpeg_parser="yes"],
359 [ac_cv_have_gst_jpeg_parser="no"]
361 CPPFLAGS="$saved_CPPFLAGS"
364 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
365 [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
367 dnl ... VP8 parser, not upstream yet
368 if test "$enable_builtin_libvpx" = "yes"; then
369 ac_cv_have_gst_vp8_parser="no"
371 AC_CACHE_CHECK([for VP8 parser],
372 ac_cv_have_gst_vp8_parser, [
373 saved_CPPFLAGS="$CPPFLAGS"
374 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
376 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
379 [[#include <gst/codecparsers/gstvp8parser.h>]],
380 [[GstVp8FrameHdr frame_hdr;]])],
381 [ac_cv_have_gst_vp8_parser="yes"],
382 [ac_cv_have_gst_vp8_parser="no"]
384 CPPFLAGS="$saved_CPPFLAGS"
387 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
388 [test "$ac_cv_have_gst_vp8_parser" != "yes"])
389 AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
391 dnl ... video parsers
392 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
393 [test "$enable_builtin_videoparsers" = "yes"])
395 dnl ... opengl helper libraries
397 if test "$enable_glx" = "yes" -o "$enable_egl" = "yes"; then
398 PKG_CHECK_MODULES([GST_GL],
399 [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
400 [HAVE_GSTGL=1], [HAVE_GSTGL=0])
403 if test $HAVE_GSTGL -eq 1; then
404 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
405 [ac_cv_have_gst_gl_helpers], [
406 saved_CPPFLAGS="$CPPFLAGS"
407 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS"
410 AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
413 [[#include <gst/gl/gl.h>]],
414 [[GstGLContext gl_context;]])],
415 [ac_cv_have_gst_gl_helpers="yes"],
416 [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0]
418 CPPFLAGS="$saved_CPPFLAGS"
422 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
424 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
425 [Defined to 1 if GStreamer OpenGL helper libraries are available])
427 if test "$enable_egl" = "yes" -a $HAVE_GSTGL -ne 1; then
428 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
432 case $GST_API_VERSION in
433 1.0) lt_bias=gst1_vaapi_lt_current_bias;;
434 1.2) lt_bias=gst2_vaapi_lt_current_bias;;
435 1.4) lt_bias=gst4_vaapi_lt_current_bias;;
436 1.[[5-6]]) lt_bias=gst6_vaapi_lt_current_bias;;
438 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
439 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
441 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
442 [Defined to the string representation of gstreamer-vaapi major version])
444 dnl GST_VAAPI_LT_LDFLAGS:
445 GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
446 GST_VAAPI_LT_REV=gst_vaapi_lt_revision
447 GST_VAAPI_LT_AGE=gst_vaapi_lt_age
448 GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
449 GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
450 AC_SUBST(GST_VAAPI_LT_VERSION)
451 AC_SUBST(GST_VAAPI_LT_LDFLAGS)
454 dnl LDFLAGS really should only contain flags, not libs - they get added before
455 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
456 GST_ALL_LDFLAGS="-no-undefined"
457 AC_SUBST(GST_ALL_LDFLAGS)
459 dnl GST_PLUGIN_LDFLAGS:
460 dnl this really should only contain flags, not libs - they get added before
461 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
462 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
463 AC_SUBST(GST_PLUGIN_LDFLAGS)
465 dnl Check for the GStreamer plugins directory
466 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
467 AC_MSG_CHECKING([for GStreamer plugins directory])
468 if test -d "$GST_PLUGIN_PATH_1_0"; then
469 GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
471 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
472 if test -z "$GST_PLUGINS_DIR"; then
473 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
476 AC_MSG_RESULT([$GST_PLUGINS_DIR])
477 plugindir="$GST_PLUGINS_DIR"
480 dnl ---------------------------------------------------------------------------
482 dnl ---------------------------------------------------------------------------
484 dnl Check for DRM/libudev
486 if test "$enable_drm" = "yes"; then
487 PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
488 PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
490 if test $USE_DRM -eq 1; then
491 saved_CPPFLAGS="$CPPFLAGS"
492 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
493 AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
494 CPPFLAGS="$saved_CPPFLAGS"
500 if test "$enable_x11" = "yes"; then
501 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
502 if test $USE_X11 -eq 1; then
503 saved_CPPFLAGS="$CPPFLAGS"
504 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
505 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
506 CPPFLAGS="$saved_CPPFLAGS"
510 dnl Check for XKB library
512 if test $USE_X11 -eq 1; then
513 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
515 if test $HAVE_XKBLIB -eq 1; then
516 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
517 [Defined to 1 if the XKB extension exists.])
522 if test $USE_X11 -eq 1; then
524 PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
525 if test $HAVE_XRANDR -eq 1; then
526 saved_CPPFLAGS="$CPPFLAGS"
527 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
528 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
529 CPPFLAGS="$saved_CPPFLAGS"
532 if test $HAVE_XRANDR -eq 1; then
533 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
534 [Defined to 1 if the XRandR extension exists.])
537 dnl Check for XRender
539 if test $USE_X11 -eq 1; then
541 PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
542 if test $HAVE_XRENDER -eq 1; then
543 saved_CPPFLAGS="$CPPFLAGS"
544 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
545 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
546 CPPFLAGS="$saved_CPPFLAGS"
549 if test $HAVE_XRENDER -eq 1; then
550 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
551 [Defined to 1 if the XRender extension exists.])
556 if test "$enable_glx" = "yes"; then
559 if test "$enable_egl" = "yes"; then
565 if test "$enable_opengl" = "yes"; then
569 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
570 saved_CPPFLAGS="$CPPFLAGS"
571 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
572 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
577 CPPFLAGS="$saved_CPPFLAGS"
581 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
585 if test "$enable_opengl" = "yes"; then
589 PKG_CHECK_MODULES([GLES2], [glesv2], [:], [HAVE_GLESv2=0])
590 saved_CPPFLAGS="$CPPFLAGS"
591 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
592 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [:],
594 #ifdef HAVE_GLES2_GL2_H
595 # include <GLES2/gl2.h>
598 CPPFLAGS="$saved_CPPFLAGS"
602 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
606 if test "$enable_opengl" = "yes"; then
610 PKG_CHECK_MODULES([GLES3], [glesv2], [:], [HAVE_GLESv3=0])
611 saved_CPPFLAGS="$CPPFLAGS"
612 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
613 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [:],
615 #ifdef HAVE_GLES3_GL3_H
616 # include <GLES3/gl3.h>
619 CPPFLAGS="$saved_CPPFLAGS"
623 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
627 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
629 saved_CPPFLAGS="$CPPFLAGS"
631 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
632 LIBS="$LIBS $GL_LIBS"
633 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
638 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
639 CPPFLAGS="$saved_CPPFLAGS"
645 if test "$enable_egl" = "yes" -a $GLES_VERSION_MASK -ne 0; then
647 PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
648 saved_CPPFLAGS="$CPPFLAGS"
650 AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
651 AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
652 CPPFLAGS="$saved_CPPFLAGS"
656 dnl Check for Wayland
658 if test "$enable_wayland" = "yes"; then
659 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
660 [USE_WAYLAND=1], [USE_WAYLAND=0])
662 if test $USE_WAYLAND -eq 1; then
663 saved_CPPFLAGS="$CPPFLAGS"
664 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
665 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
666 CPPFLAGS="$saved_CPPFLAGS"
670 dnl ---------------------------------------------------------------------------
672 dnl ---------------------------------------------------------------------------
675 LIBVA_PKGNAME="libva"
676 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
677 AC_SUBST(LIBVA_PKGNAME)
679 VA_VERSION=`$PKG_CONFIG --modversion libva`
680 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
681 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
682 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
683 VA_VERSION_STR="$VA_VERSION"
687 if test $USE_DRM -eq 1; then
688 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
689 [HAVE_VA_DRM=1], [USE_DRM=0])
691 if test $HAVE_VA_DRM -eq 1; then
692 saved_CPPFLAGS="$CPPFLAGS"
693 CPPFLAGS="$LIBVA_DRM_CFLAGS"
694 AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
695 CPPFLAGS="$saved_CPPFLAGS"
701 LIBVA_X11_PKGNAME="libva-x11"
702 if test $USE_X11 -eq 1; then
703 PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
704 [HAVE_VA_X11=1], [USE_X11=0])
706 AC_SUBST(LIBVA_X11_PKGNAME)
708 dnl Check for va_dec_jpeg.h header
709 saved_CPPFLAGS="$CPPFLAGS"
710 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
711 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
712 CPPFLAGS="$saved_CPPFLAGS"
714 dnl Check for JPEG decoding API (0.32.1+)
716 AC_CACHE_CHECK([for JPEG decoding API],
717 ac_cv_have_jpeg_decoding_api, [
718 saved_CPPFLAGS="$CPPFLAGS"
719 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
721 LIBS="$LIBS $LIBVA_LIBS"
725 #ifdef HAVE_VA_VA_DEC_JPEG_H
726 #include <va/va_dec_jpeg.h>
729 [[VAPictureParameterBufferJPEGBaseline pic_param;
730 VASliceParameterBufferJPEGBaseline slice_param;
731 VAHuffmanTableBufferJPEGBaseline huffman_table;
732 VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
733 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
734 [ac_cv_have_jpeg_decoding_api="no"]
736 CPPFLAGS="$saved_CPPFLAGS"
740 dnl Check for va_dec_vp8.h header
741 saved_CPPFLAGS="$CPPFLAGS"
742 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
743 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
744 CPPFLAGS="$saved_CPPFLAGS"
746 dnl Check for VP8 decoding API (0.34+)
748 AC_CACHE_CHECK([for VP8 decoding API],
749 ac_cv_have_vp8_decoding_api, [
750 saved_CPPFLAGS="$CPPFLAGS"
751 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
753 LIBS="$LIBS $LIBVA_LIBS"
757 #ifdef HAVE_VA_VA_DEC_VP8_H
758 #include <va/va_dec_vp8.h>
761 [[VAPictureParameterBufferVP8 pic_param;
762 VASliceParameterBufferVP8 slice_param;
763 VAProbabilityDataBufferVP8 prob_data;
764 VAIQMatrixBufferVP8 iq_matrix;
765 slice_param.slice_data_offset = 0;
766 slice_param.slice_data_flag = 0;]])],
767 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
768 [ac_cv_have_vp8_decoding_api="no"]
770 CPPFLAGS="$saved_CPPFLAGS"
775 dnl Check for vpp (video post-processing) support
777 AC_CACHE_CHECK([for video post-postprocessing API],
778 ac_cv_have_va_vpp_api, [
779 saved_CPPFLAGS="$CPPFLAGS"
780 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
782 LIBS="$LIBS $LIBVA_LIBS"
786 #include <va/va_vpp.h>]],
789 VAProcFilterType filters[VAProcFilterCount];
790 unsigned int num_filters = VAProcFilterCount;
791 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
793 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
794 [ac_cv_have_va_vpp_api="no"]
796 CPPFLAGS="$saved_CPPFLAGS"
800 dnl Check for encoding support
804 if test "$enable_encoders" = "yes"; then
805 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
806 [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
808 if test $HAVE_VA_ENC -eq 1; then
809 saved_CPPFLAGS="$CPPFLAGS"
810 CPPFLAGS="$LIBVA_CFLAGS"
811 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
812 [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
816 dnl Check for JPEG Encoding API (0.37.0+)
817 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
818 [USE_JPEG_ENCODER=1], [],
821 AC_CACHE_CHECK([for JPEG encoding API],
822 ac_cv_have_jpeg_encoding_api, [
823 saved_CPPFLAGS="$CPPFLAGS"
824 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
826 LIBS="$LIBS $LIBVA_LIBS"
830 #ifdef HAVE_VA_VA_ENC_JPEG_H
831 #include <va/va_enc_jpeg.h>
834 [[VAEncPictureParameterBufferJPEG pic_param;
835 VAEncSliceParameterBufferJPEG slice_param;
836 VAQMatrixBufferJPEG q_matrix;]])],
837 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
838 [ac_cv_have_jpeg_encoding_api="no"]
840 CPPFLAGS="$saved_CPPFLAGS"
844 dnl Check for VP8 Encoding API
845 AC_CHECK_HEADERS([va/va_enc_vp8.h],
846 [USE_VP8_ENCODER=1], [],
849 AC_CACHE_CHECK([for VP8 encoding API],
850 ac_cv_have_vp8_encoding_api, [
851 saved_CPPFLAGS="$CPPFLAGS"
852 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
854 LIBS="$LIBS $LIBVA_LIBS"
858 #ifdef HAVE_VA_VA_ENC_VP8_H
859 #include <va/va_enc_vp8.h>
862 [[VAEncSequenceParameterBufferVP8 seq_param;
863 VAEncPictureParameterBufferVP8 pic_param;
864 VAQMatrixBufferVP8 q_matrix;]])],
865 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
866 [ac_cv_have_vp8_encoding_api="no" USE_VP8_ENCODER=0]
868 CPPFLAGS="$saved_CPPFLAGS"
871 CPPFLAGS="$saved_CPPFLAGS"
876 if test "$enable_wayland" = "yes"; then
877 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
878 [:], [USE_WAYLAND=0])
881 dnl ---------------------------------------------------------------------------
882 dnl -- Generate files and summary --
883 dnl ---------------------------------------------------------------------------
885 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
889 AC_MSG_ERROR([No renderer is enabled])
893 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
894 [Defined to 1 if video encoders are used])
895 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
897 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
898 [Defined to 1 if JPEG encoder is used])
899 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
901 AC_DEFINE_UNQUOTED(USE_VP8_ENCODER, $USE_VP8_ENCODER,
902 [Defined to 1 if VP8 encoder is used])
903 AM_CONDITIONAL(USE_VP8_ENCODER, test $USE_VP8_ENCODER -eq 1)
905 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
906 [Defined to 1 if video post-processing is used])
907 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
909 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
910 [Defined to 1 if JPEG decoder is used])
911 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
913 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
914 [Defined to 1 if VP8 decoder is used])
915 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
917 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
918 [Defined to 1 if DRM is enabled])
919 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
921 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
922 [Defined to 1 if X11 is enabled])
923 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
925 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
926 [Defined to 1 if GLX is enabled])
927 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
929 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
930 [Defined to 1 if EGL is enabled])
931 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
933 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
934 [Defined to the set of enabled OpenGL ES APIs])
936 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
937 [Defined to 1 if WAYLAND is enabled])
938 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
940 pkgconfigdir=${libdir}/pkgconfig
941 AC_SUBST(pkgconfigdir)
945 debian.upstream/Makefile
946 debian.upstream/changelog
947 debian.upstream/control
948 debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
949 debian.upstream/gstreamer-vaapi-doc.install.in
950 debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
951 debian.upstream/gstreamer-vaapi.install.in
952 debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
953 debian.upstream/libgstvaapi-dev.install.in
954 debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
955 debian.upstream/libgstvaapi.install.in
956 debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
957 debian.upstream/libgstvaapi-drm.install.in
958 debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
959 debian.upstream/libgstvaapi-glx.install.in
960 debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
961 debian.upstream/libgstvaapi-wayland.install.in
962 debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
963 debian.upstream/libgstvaapi-x11.install.in
965 docs/reference/Makefile
966 docs/reference/libs/Makefile
967 docs/reference/libs/libs-docs.xml
968 docs/reference/plugins/Makefile
969 docs/reference/plugins/plugins-docs.xml
973 gst-libs/gst/Makefile
974 gst-libs/gst/base/Makefile
975 gst-libs/gst/codecparsers/Makefile
976 gst-libs/gst/vaapi/Makefile
977 gst-libs/gst/video/Makefile
981 patches/videoparsers/Makefile
983 pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
984 pkgconfig/gstreamer-vaapi.pc.in
985 pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
986 pkgconfig/gstreamer-vaapi-drm.pc.in
987 pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
988 pkgconfig/gstreamer-vaapi-glx.pc.in
989 pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
990 pkgconfig/gstreamer-vaapi-wayland.pc.in
991 pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
992 pkgconfig/gstreamer-vaapi-x11.pc.in
999 test $1 -eq 1 && echo yes || echo no
1003 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
1004 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
1005 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
1006 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
1007 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
1010 echo $PACKAGE configuration summary:
1012 echo Installation Prefix .............. : ${prefix}
1013 echo GStreamer API version ............ : $GST_API_VERSION
1014 echo VA-API version ................... : $VA_VERSION_STR
1015 echo Video encoding ................... : $(yesno $USE_ENCODERS)
1016 echo Video outputs .................... : $VIDEO_OUTPUTS