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])
13 m4_define([default_glapi], [any])
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])
24 m4_define([glib_version], [2.32])
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])
38 # Wayland minimum version number
39 m4_define([wayland_api_version], [1.0.2])
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])
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])
54 # gtk-doc version number
55 # XXX: introspection annotations require gtk-doc >= 1.12
56 m4_define([gtkdoc_version], [1.9])
59 AC_INIT([gst_vaapi], [gst_vaapi_version],
60 [gwenole.beauchesne@intel.com, sreerenj.balachandran@intel.com],
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])
70 AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
72 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
75 LIBVA_PACKAGE_VERSION=libva_x11_package_version
76 AC_SUBST(LIBVA_PACKAGE_VERSION)
78 WAYLAND_API_VERSION=wayland_api_version
79 AC_SUBST(WAYLAND_API_VERSION)
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)
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"])
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])
101 dnl Initialize libtool
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"])
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"])
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"])
120 AC_ARG_ENABLE([encoders],
121 AS_HELP_STRING([--enable-encoders],
122 [enable video encoders @<:@default=yes@:>@]),
123 [], [enable_encoders="yes"])
126 AS_HELP_STRING([--enable-drm],
127 [enable DRM backend @<:@default=yes@:>@]),
128 [], [enable_drm="yes"])
131 AS_HELP_STRING([--enable-x11],
132 [enable X11 output @<:@default=yes@:>@]),
133 [], [enable_x11="yes"])
136 AS_HELP_STRING([--enable-glx],
137 [enable OpenGL/X11 output @<:@default=yes@:>@]),
138 [], [enable_glx="yes"])
140 AC_ARG_ENABLE(wayland,
141 AC_HELP_STRING([--enable-wayland],
142 [enable Wayland output @<:@default=yes@:>@]),
143 [], [enable_wayland="yes"])
146 AS_HELP_STRING([--enable-egl],
147 [enable EGL output @<:@default=yes@:>@]),
148 [], [enable_egl="yes"])
151 AS_HELP_STRING([--with-glapi=APIs],
152 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
153 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
155 dnl Check for basic libraries
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)
167 GLIB_VERSION_REQUIRED=glib_version
168 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
169 AC_SUBST(GLIB_VERSION_REQUIRED)
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])
177 dnl ---------------------------------------------------------------------------
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"
188 if test -z "$GST_PKG_VERSION"; then
189 AC_MSG_ERROR([gstreamer-$GST_PKG_VERSION was not found])
191 AC_MSG_RESULT([$GST_API_VERSION])
193 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
194 [Defined to the string representation of GStreamer version])
196 dnl Versions for GStreamer and plugins-base
197 case $GST_API_VERSION in
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
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
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
214 AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
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)
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"])
231 AC_SUBST([GST_PKG_VERSION])
233 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
234 [Defined to the string representation of GStreamer API version])
236 if test "$GST_API_VERSION" = "1.2"; then
237 AC_MSG_WARN([support for GStreamer 1.2 is deprecated, please upgrade])
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])
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])
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])
258 dnl ... GstVideoOverlayComposition (gstreamer-video)
259 PKG_CHECK_MODULES([GST_VIDEO],
260 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
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])
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"
276 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
277 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
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"
286 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
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,
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"]
302 CPPFLAGS="$saved_CPPFLAGS"
305 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
306 [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
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"
314 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
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"]
327 CPPFLAGS="$saved_CPPFLAGS"
330 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
331 [test "$ac_cv_have_gst_h264_parser" != "yes"])
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"
339 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
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"]
347 CPPFLAGS="$saved_CPPFLAGS"
350 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
351 [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
353 dnl ... VP8 parser, not upstream yet
354 if test "$enable_builtin_libvpx" = "yes"; then
355 ac_cv_have_gst_vp8_parser="no"
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"
362 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
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"]
370 CPPFLAGS="$saved_CPPFLAGS"
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"])
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"
383 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
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"]
396 CPPFLAGS="$saved_CPPFLAGS"
399 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H265],
400 [test "$ac_cv_have_gst_h265_parser" != "yes"])
402 dnl ... video parsers
403 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
404 [test "$enable_builtin_videoparsers" = "yes"])
406 dnl ... opengl helper libraries
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])
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"
421 AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
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]
429 CPPFLAGS="$saved_CPPFLAGS"
433 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
435 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
436 [Defined to 1 if GStreamer OpenGL helper libraries are available])
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])
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;;
448 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
449 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
451 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
452 [Defined to the string representation of gstreamer-vaapi major version])
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)
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)
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)
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"
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"
486 AC_MSG_RESULT([$GST_PLUGINS_DIR])
487 plugindir="$GST_PLUGINS_DIR"
490 dnl ---------------------------------------------------------------------------
492 dnl ---------------------------------------------------------------------------
494 dnl Check for DRM/libudev
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])
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"
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"
520 dnl Check for XKB library
522 if test $USE_X11 -eq 1; then
523 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
525 if test $HAVE_XKBLIB -eq 1; then
526 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
527 [Defined to 1 if the XKB extension exists.])
532 if test $USE_X11 -eq 1; then
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"
542 if test $HAVE_XRANDR -eq 1; then
543 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
544 [Defined to 1 if the XRandR extension exists.])
547 dnl Check for XRender
549 if test $USE_X11 -eq 1; then
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"
559 if test $HAVE_XRENDER -eq 1; then
560 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
561 [Defined to 1 if the XRender extension exists.])
566 if test "$enable_glx" = "yes"; then
569 if test "$enable_egl" = "yes"; then
575 if test "$enable_opengl" = "yes"; then
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], [
587 CPPFLAGS="$saved_CPPFLAGS"
591 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
595 if test "$enable_opengl" = "yes"; then
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], [:],
604 #ifdef HAVE_GLES2_GL2_H
605 # include <GLES2/gl2.h>
608 CPPFLAGS="$saved_CPPFLAGS"
612 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
616 if test "$enable_opengl" = "yes"; then
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], [:],
625 #ifdef HAVE_GLES3_GL3_H
626 # include <GLES3/gl3.h>
629 CPPFLAGS="$saved_CPPFLAGS"
633 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
637 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
639 saved_CPPFLAGS="$CPPFLAGS"
641 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
642 LIBS="$LIBS $GL_LIBS"
643 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
648 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
649 CPPFLAGS="$saved_CPPFLAGS"
655 if test "$enable_egl" = "yes" -a $GLES_VERSION_MASK -ne 0; then
657 PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
658 saved_CPPFLAGS="$CPPFLAGS"
660 AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
661 AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
662 CPPFLAGS="$saved_CPPFLAGS"
666 dnl Check for Wayland
668 if test "$enable_wayland" = "yes"; then
669 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
670 [USE_WAYLAND=1], [USE_WAYLAND=0])
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"
680 dnl ---------------------------------------------------------------------------
682 dnl ---------------------------------------------------------------------------
685 LIBVA_PKGNAME="libva"
686 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
687 AC_SUBST(LIBVA_PKGNAME)
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"
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])
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"
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])
716 AC_SUBST(LIBVA_X11_PKGNAME)
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"
724 dnl Check for JPEG decoding API (0.32.1+)
726 AC_CACHE_CHECK([for JPEG decoding API],
727 ac_cv_have_jpeg_decoding_api, [
728 saved_CPPFLAGS="$CPPFLAGS"
729 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
731 LIBS="$LIBS $LIBVA_LIBS"
735 #ifdef HAVE_VA_VA_DEC_JPEG_H
736 #include <va/va_dec_jpeg.h>
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"]
746 CPPFLAGS="$saved_CPPFLAGS"
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"
756 dnl Check for VP8 decoding API (0.34+)
758 AC_CACHE_CHECK([for VP8 decoding API],
759 ac_cv_have_vp8_decoding_api, [
760 saved_CPPFLAGS="$CPPFLAGS"
761 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
763 LIBS="$LIBS $LIBVA_LIBS"
767 #ifdef HAVE_VA_VA_DEC_VP8_H
768 #include <va/va_dec_vp8.h>
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"]
780 CPPFLAGS="$saved_CPPFLAGS"
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"
790 dnl Check for HEVC decoding API (0.38+)
792 AC_CACHE_CHECK([for HEVC decoding API],
793 ac_cv_have_hevc_decoding_api, [
794 saved_CPPFLAGS="$CPPFLAGS"
795 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
797 LIBS="$LIBS $LIBVA_LIBS"
801 #ifdef HAVE_VA_VA_DEC_HEVC_H
802 #include <va/va_dec_hevc.h>
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"]
813 CPPFLAGS="$saved_CPPFLAGS"
817 dnl Check for vpp (video post-processing) support
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"
824 LIBS="$LIBS $LIBVA_LIBS"
828 #include <va/va_vpp.h>]],
831 VAProcFilterType filters[VAProcFilterCount];
832 unsigned int num_filters = VAProcFilterCount;
833 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
835 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
836 [ac_cv_have_va_vpp_api="no"]
838 CPPFLAGS="$saved_CPPFLAGS"
842 dnl Check for encoding support
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])
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],
859 dnl Check for JPEG Encoding API (0.37.0+)
860 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
861 [USE_JPEG_ENCODER=1], [],
864 AC_CACHE_CHECK([for JPEG encoding API],
865 ac_cv_have_jpeg_encoding_api, [
866 saved_CPPFLAGS="$CPPFLAGS"
867 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
869 LIBS="$LIBS $LIBVA_LIBS"
873 #ifdef HAVE_VA_VA_ENC_JPEG_H
874 #include <va/va_enc_jpeg.h>
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"]
883 CPPFLAGS="$saved_CPPFLAGS"
887 dnl Check for VP8 Encoding API
888 AC_CHECK_HEADERS([va/va_enc_vp8.h],
889 [USE_VP8_ENCODER=1], [],
892 AC_CACHE_CHECK([for VP8 encoding API],
893 ac_cv_have_vp8_encoding_api, [
894 saved_CPPFLAGS="$CPPFLAGS"
895 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
897 LIBS="$LIBS $LIBVA_LIBS"
901 #ifdef HAVE_VA_VA_ENC_VP8_H
902 #include <va/va_enc_vp8.h>
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]
911 CPPFLAGS="$saved_CPPFLAGS"
914 CPPFLAGS="$saved_CPPFLAGS"
916 dnl Check for H265/HEVC Encoding API
917 AC_CHECK_HEADERS([va/va_enc_hevc.h],
918 [USE_H265_ENCODER=1], [],
921 AC_CACHE_CHECK([for HEVC encoding API],
922 ac_cv_have_hevc_encoding_api, [
923 saved_CPPFLAGS="$CPPFLAGS"
924 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
926 LIBS="$LIBS $LIBVA_LIBS"
930 #ifdef HAVE_VA_VA_ENC_HEVC_H
931 #include <va/va_enc_hevc.h>
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]
941 CPPFLAGS="$saved_CPPFLAGS"
944 CPPFLAGS="$saved_CPPFLAGS"
949 if test "$enable_wayland" = "yes"; then
950 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
951 [:], [USE_WAYLAND=0])
954 dnl ---------------------------------------------------------------------------
955 dnl -- Generate files and summary --
956 dnl ---------------------------------------------------------------------------
958 case ":$USE_X11:$USE_GLX:$USE_EGL:$USE_WAYLAND:$USE_DRM:" in
962 AC_MSG_ERROR([No renderer is enabled])
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])
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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])
1014 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
1015 [Defined to the set of enabled OpenGL ES APIs])
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)
1021 pkgconfigdir=${libdir}/pkgconfig
1022 AC_SUBST(pkgconfigdir)
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
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
1054 gst-libs/gst/Makefile
1055 gst-libs/gst/base/Makefile
1056 gst-libs/gst/codecparsers/Makefile
1057 gst-libs/gst/vaapi/Makefile
1061 patches/videoparsers/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
1079 test $1 -eq 1 && echo yes || echo no
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"])
1090 echo $PACKAGE configuration summary:
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