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.32])
28 # gstreamer version number
29 m4_define([gst_api_version], [autodetect])
30 m4_define([gst12_version], [1.1.90])
31 m4_define([gst12_plugins_base_version], [1.1.0])
32 m4_define([gst12_plugins_bad_version], [1.1.0])
33 m4_define([gst14_version], [1.2.90])
34 m4_define([gst14_plugins_base_version], [1.3.0])
35 m4_define([gst14_plugins_bad_version], [1.3.0])
36 m4_define([gst16_version], [1.5.0])
37 m4_define([gst16_plugins_base_version], [1.5.0])
38 m4_define([gst16_plugins_bad_version], [1.5.0])
40 # Wayland minimum version number
41 m4_define([wayland_api_version], [1.0.2])
43 # VA-API minimum version number
44 m4_define([va_api_version], [0.30.4])
45 m4_define([va_api_enc_version], [0.34.0])
46 m4_define([va_api_drm_version], [0.33.0])
47 m4_define([va_api_x11_version], [0.31.0])
48 m4_define([va_api_wld_version], [0.33.0])
50 # libva package version number
51 m4_define([libva_enc_package_version], [1.2.0])
52 m4_define([libva_drm_package_version], [1.1.0])
53 m4_define([libva_x11_package_version], [1.0.3])
54 m4_define([libva_wld_package_version], [1.1.0])
56 # gtk-doc version number
57 # XXX: introspection annotations require gtk-doc >= 1.12
58 m4_define([gtkdoc_version], [1.9])
61 AC_INIT([gst_vaapi], [gst_vaapi_version],
62 [gwenole.beauchesne@intel.com],
65 AC_CONFIG_HEADERS([config.h])
66 AC_CONFIG_SRCDIR([Makefile.am])
67 AC_CONFIG_MACRO_DIR([m4])
68 AC_CONFIG_AUX_DIR([build-aux])
72 AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
74 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
77 LIBVA_PACKAGE_VERSION=libva_x11_package_version
78 AC_SUBST(LIBVA_PACKAGE_VERSION)
80 WAYLAND_API_VERSION=wayland_api_version
81 AC_SUBST(WAYLAND_API_VERSION)
83 dnl Use pretty build output with automake >= 1.11
84 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
85 AM_DEFAULT_VERBOSITY=1
86 AC_SUBST(AM_DEFAULT_VERBOSITY)
93 AC_ARG_VAR([GIT], [Path to git program, if any])
94 AC_PATH_PROG([GIT], [git])
95 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
97 AC_ARG_VAR([YASM], [Path to yasm program, if any])
98 AC_PATH_PROG([YASM], [yasm])
99 if test -z "$YASM" -a "$enable_builtin_libvpx" = "yes"; then
100 AC_MSG_ERROR([yasm is needed to build libvpx sources])
103 dnl Initialize libtool
107 AC_ARG_ENABLE(builtin_videoparsers,
108 AS_HELP_STRING([--enable-builtin-videoparsers],
109 [enable built-in videoparsers @<:@default=yes@:>@]),
110 [], [enable_builtin_videoparsers="yes"])
112 AC_ARG_ENABLE(builtin_codecparsers,
113 AS_HELP_STRING([--enable-builtin-codecparsers],
114 [enable built-in codecparsers @<:@default=yes@:>@]),
115 [], [enable_builtin_codecparsers="yes"])
117 AC_ARG_ENABLE(builtin_libvpx,
118 AS_HELP_STRING([--enable-builtin-libvpx],
119 [enable built-in libvpx @<:@default=yes@:>@]),
120 [], [enable_builtin_libvpx="yes"])
122 AC_ARG_ENABLE([encoders],
123 AS_HELP_STRING([--enable-encoders],
124 [enable video encoders @<:@default=yes@:>@]),
125 [], [enable_encoders="yes"])
128 AS_HELP_STRING([--enable-drm],
129 [enable DRM backend @<:@default=yes@:>@]),
130 [], [enable_drm="yes"])
133 AS_HELP_STRING([--enable-x11],
134 [enable X11 output @<:@default=yes@:>@]),
135 [], [enable_x11="yes"])
138 AS_HELP_STRING([--enable-glx],
139 [enable OpenGL/X11 output @<:@default=yes@:>@]),
140 [], [enable_glx="yes"])
142 AC_ARG_ENABLE(wayland,
143 AC_HELP_STRING([--enable-wayland],
144 [enable Wayland output @<:@default=yes@:>@]),
145 [], [enable_wayland="yes"])
148 AS_HELP_STRING([--enable-egl],
149 [enable EGL output @<:@default=yes@:>@]),
150 [], [enable_egl="yes"])
153 AS_HELP_STRING([--with-glapi=APIs],
154 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
155 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
157 dnl Check for basic libraries
160 dnl Check for Gtk doc
161 GTKDOC_VERSION=gtkdoc_version
162 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
163 m4_ifdef([GTK_DOC_CHECK], [
164 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
165 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
166 AC_SUBST(GTKDOC_VERSION)
169 GLIB_VERSION_REQUIRED=glib_version
170 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
171 AC_SUBST(GLIB_VERSION_REQUIRED)
173 dnl Check to see if dlopen is in default libraries (like Solaris, which
174 dnl has it in libc), or if libdl is needed to get it.
175 AC_CHECK_FUNC([dlopen], [], [
176 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
177 AC_SUBST([DLOPEN_LIBS])
179 dnl ---------------------------------------------------------------------------
181 dnl ---------------------------------------------------------------------------
182 AC_MSG_CHECKING([for GStreamer API version])
183 if $PKG_CONFIG --exists "gstreamer-1.0"; then
184 gst_version=`$PKG_CONFIG --modversion "gstreamer-1.0"`
185 gst_major_version=`echo "$gst_version" | cut -d'.' -f1`
186 gst_minor_version=`echo "$gst_version" | cut -d'.' -f2`
187 GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
188 GST_PKG_VERSION="1.0"
190 if test -z "$GST_PKG_VERSION"; then
191 AC_MSG_ERROR([gstreamer-$GST_PKG_VERSION was not found])
193 AC_MSG_RESULT([$GST_API_VERSION])
195 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
196 [Defined to the string representation of GStreamer version])
198 dnl Versions for GStreamer and plugins-base
199 case $GST_API_VERSION in
201 GST_VERSION_REQUIRED=gst12_version
202 GST_PLUGINS_BASE_VERSION_REQUIRED=gst12_plugins_base_version
203 GST_PLUGINS_BAD_VERSION_REQUIRED=gst12_plugins_bad_version
206 GST_VERSION_REQUIRED=gst14_version
207 GST_PLUGINS_BASE_VERSION_REQUIRED=gst14_plugins_base_version
208 GST_PLUGINS_BAD_VERSION_REQUIRED=gst14_plugins_bad_version
211 GST_VERSION_REQUIRED=gst16_version
212 GST_PLUGINS_BASE_VERSION_REQUIRED=gst16_plugins_base_version
213 GST_PLUGINS_BAD_VERSION_REQUIRED=gst16_plugins_bad_version
216 AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
219 AC_SUBST(GST_API_VERSION)
220 AC_SUBST(GST_VERSION_REQUIRED)
221 AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
222 AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
224 USE_GST_API_1_2p="no"
225 USE_GST_API_1_4p="no"
226 AS_VERSION_COMPARE([$GST_API_VERSION], [1.2],
227 [], [USE_GST_API_1_2p="yes"], [USE_GST_API_1_2p="yes"])
228 AS_VERSION_COMPARE([$GST_API_VERSION], [1.4],
229 [], [USE_GST_API_1_4p="yes"], [USE_GST_API_1_4p="yes"])
230 AM_CONDITIONAL([USE_GST_API_1_2p], [test "$USE_GST_API_1_2p" = "yes"])
231 AM_CONDITIONAL([USE_GST_API_1_4p], [test "$USE_GST_API_1_4p" = "yes"])
233 AC_SUBST([GST_PKG_VERSION])
235 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
236 [Defined to the string representation of GStreamer API version])
239 PKG_CHECK_MODULES([GST],
240 [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
241 PKG_CHECK_MODULES([GST_BASE],
242 [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
244 dnl GStreamer -base plugins
245 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
246 [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
247 if test "$GST_API_VERSION" = "0.10"; then
248 PKG_CHECK_MODULES([GST_INTERFACES],
249 [gstreamer-interfaces-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
252 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
253 PKG_CHECK_MODULES([GST_ALLOCATORS],
254 [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
256 dnl ... GstVideoOverlayComposition (gstreamer-video)
257 PKG_CHECK_MODULES([GST_VIDEO],
258 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
260 dnl GStreamer -bad plugins (deprecated in GStreamer v1.2)
261 if test "$USE_GST_API_1_2p" != "yes" && test "$USE_GST_API_1_4p" != "yes"; then
262 PKG_CHECK_MODULES([GST_BASEVIDEO],
263 [gstreamer-basevideo-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
266 dnl ... bitstream parsers
267 if test "$enable_builtin_codecparsers" = "yes"; then
268 ac_cv_have_gst_mpeg2_parser="no"
269 ac_cv_have_gst_h264_parser="no"
270 ac_cv_have_gst_jpeg_parser="no"
271 ac_cv_have_gst_vp8_parser="no"
272 ac_cv_have_gst_h265_parser="no"
274 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
275 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
278 dnl ... MPEG-2 parser, with the required extensions
279 AC_CACHE_CHECK([for MPEG-2 parser],
280 ac_cv_have_gst_mpeg2_parser, [
281 saved_CPPFLAGS="$CPPFLAGS"
282 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
284 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
287 [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
288 [[GstMpegVideoSequenceHdr seq_hdr;
289 GstMpegVideoSequenceExt seq_ext;
290 GstMpegVideoSequenceDisplayExt seq_dpy;
291 GstMpegVideoSliceHdr slice_hdr;
292 GstMpegVideoPacket packet;
293 gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
295 gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
296 &seq_ext, &seq_dpy);]])],
297 [ac_cv_have_gst_mpeg2_parser="yes"],
298 [ac_cv_have_gst_mpeg2_parser="no"]
300 CPPFLAGS="$saved_CPPFLAGS"
303 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
304 [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
306 dnl ... H.264 parser, with the required extensions
307 AC_CACHE_CHECK([for H.264 parser],
308 ac_cv_have_gst_h264_parser, [
309 saved_CPPFLAGS="$CPPFLAGS"
310 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
312 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
315 [[#include <gst/codecparsers/gsth264parser.h>]],
316 [[GstH264SliceHdr slice_hdr;
317 GstH264VUIParams vui_params;
318 GstH264Profile profile = GST_H264_PROFILE_HIGH;
319 slice_hdr.n_emulation_prevention_bytes = 0;
320 vui_params.par_n = 0;
321 vui_params.par_d = 0;]])],
322 [ac_cv_have_gst_h264_parser="yes"],
323 [ac_cv_have_gst_h264_parser="no"]
325 CPPFLAGS="$saved_CPPFLAGS"
328 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
329 [test "$ac_cv_have_gst_h264_parser" != "yes"])
331 dnl ... JPEG parser, not upstream yet
332 AC_CACHE_CHECK([for JPEG parser],
333 ac_cv_have_gst_jpeg_parser, [
334 saved_CPPFLAGS="$CPPFLAGS"
335 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
337 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
340 [[#include <gst/codecparsers/gstjpegparser.h>]],
341 [[GstJpegImage jpeg_image;]])],
342 [ac_cv_have_gst_jpeg_parser="yes"],
343 [ac_cv_have_gst_jpeg_parser="no"]
345 CPPFLAGS="$saved_CPPFLAGS"
348 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
349 [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
351 dnl ... VP8 parser, not upstream yet
352 if test "$enable_builtin_libvpx" = "yes"; then
353 ac_cv_have_gst_vp8_parser="no"
355 AC_CACHE_CHECK([for VP8 parser],
356 ac_cv_have_gst_vp8_parser, [
357 saved_CPPFLAGS="$CPPFLAGS"
358 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
360 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
363 [[#include <gst/codecparsers/gstvp8parser.h>]],
364 [[GstVp8FrameHdr frame_hdr;]])],
365 [ac_cv_have_gst_vp8_parser="yes"],
366 [ac_cv_have_gst_vp8_parser="no"]
368 CPPFLAGS="$saved_CPPFLAGS"
371 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
372 [test "$ac_cv_have_gst_vp8_parser" != "yes"])
373 AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
375 dnl ... H.265 parser, with the required extensions
376 AC_CACHE_CHECK([for H.265 parser],
377 ac_cv_have_gst_h265_parser, [
378 saved_CPPFLAGS="$CPPFLAGS"
379 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
381 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
384 [[#include <gst/codecparsers/gsth265parser.h>]],
385 [[GstH265SliceHdr slice_hdr;
386 GstH265VUIParams vui_params;
387 GstH265Profile profile = GST_H265_PROFILE_MAIN_STILL_PICTURE;
388 slice_hdr.n_emulation_prevention_bytes = 0;
389 vui_params.par_n = 0;
390 vui_params.par_d = 0;]])],
391 [ac_cv_have_gst_h265_parser="yes"],
392 [ac_cv_have_gst_h265_parser="no"]
394 CPPFLAGS="$saved_CPPFLAGS"
397 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H265],
398 [test "$ac_cv_have_gst_h265_parser" != "yes"])
400 dnl ... video parsers
401 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
402 [test "$enable_builtin_videoparsers" = "yes"])
404 dnl ... opengl helper libraries
406 if test "$enable_glx" = "yes" -o "$enable_egl" = "yes"; then
407 PKG_CHECK_MODULES([GST_GL],
408 [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
409 [HAVE_GSTGL=1], [HAVE_GSTGL=0])
412 if test $HAVE_GSTGL -eq 1; then
413 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
414 [ac_cv_have_gst_gl_helpers], [
415 saved_CPPFLAGS="$CPPFLAGS"
416 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS"
419 AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
422 [[#include <gst/gl/gl.h>]],
423 [[GstGLContext gl_context;]])],
424 [ac_cv_have_gst_gl_helpers="yes"],
425 [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0]
427 CPPFLAGS="$saved_CPPFLAGS"
431 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
433 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
434 [Defined to 1 if GStreamer OpenGL helper libraries are available])
436 if test "$enable_egl" = "yes" -a $HAVE_GSTGL -ne 1; then
437 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
441 case $GST_API_VERSION in
442 1.0) lt_bias=gst1_vaapi_lt_current_bias;;
443 1.2) lt_bias=gst2_vaapi_lt_current_bias;;
444 1.4) lt_bias=gst4_vaapi_lt_current_bias;;
445 1.[[5-6]]) lt_bias=gst6_vaapi_lt_current_bias;;
447 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
448 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
450 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
451 [Defined to the string representation of gstreamer-vaapi major version])
453 dnl GST_VAAPI_LT_LDFLAGS:
454 GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
455 GST_VAAPI_LT_REV=gst_vaapi_lt_revision
456 GST_VAAPI_LT_AGE=gst_vaapi_lt_age
457 GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
458 GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
459 AC_SUBST(GST_VAAPI_LT_VERSION)
460 AC_SUBST(GST_VAAPI_LT_LDFLAGS)
463 dnl LDFLAGS really should only contain flags, not libs - they get added before
464 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
465 GST_ALL_LDFLAGS="-no-undefined"
466 AC_SUBST(GST_ALL_LDFLAGS)
468 dnl GST_PLUGIN_LDFLAGS:
469 dnl this really should only contain flags, not libs - they get added before
470 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
471 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
472 AC_SUBST(GST_PLUGIN_LDFLAGS)
474 dnl Check for the GStreamer plugins directory
475 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
476 AC_MSG_CHECKING([for GStreamer plugins directory])
477 if test -d "$GST_PLUGIN_PATH_1_0"; then
478 GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
480 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
481 if test -z "$GST_PLUGINS_DIR"; then
482 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
485 AC_MSG_RESULT([$GST_PLUGINS_DIR])
486 plugindir="$GST_PLUGINS_DIR"
489 dnl ---------------------------------------------------------------------------
491 dnl ---------------------------------------------------------------------------
493 dnl Check for DRM/libudev
495 if test "$enable_drm" = "yes"; then
496 PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
497 PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
499 if test $USE_DRM -eq 1; then
500 saved_CPPFLAGS="$CPPFLAGS"
501 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
502 AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
503 CPPFLAGS="$saved_CPPFLAGS"
509 if test "$enable_x11" = "yes"; then
510 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
511 if test $USE_X11 -eq 1; then
512 saved_CPPFLAGS="$CPPFLAGS"
513 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
514 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
515 CPPFLAGS="$saved_CPPFLAGS"
519 dnl Check for XKB library
521 if test $USE_X11 -eq 1; then
522 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
524 if test $HAVE_XKBLIB -eq 1; then
525 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
526 [Defined to 1 if the XKB extension exists.])
531 if test $USE_X11 -eq 1; then
533 PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
534 if test $HAVE_XRANDR -eq 1; then
535 saved_CPPFLAGS="$CPPFLAGS"
536 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
537 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
538 CPPFLAGS="$saved_CPPFLAGS"
541 if test $HAVE_XRANDR -eq 1; then
542 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
543 [Defined to 1 if the XRandR extension exists.])
546 dnl Check for XRender
548 if test $USE_X11 -eq 1; then
550 PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
551 if test $HAVE_XRENDER -eq 1; then
552 saved_CPPFLAGS="$CPPFLAGS"
553 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
554 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
555 CPPFLAGS="$saved_CPPFLAGS"
558 if test $HAVE_XRENDER -eq 1; then
559 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
560 [Defined to 1 if the XRender extension exists.])
565 if test "$enable_glx" = "yes"; then
568 if test "$enable_egl" = "yes"; then
574 if test "$enable_opengl" = "yes"; then
578 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
579 saved_CPPFLAGS="$CPPFLAGS"
580 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
581 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
586 CPPFLAGS="$saved_CPPFLAGS"
590 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
594 if test "$enable_opengl" = "yes"; then
598 PKG_CHECK_MODULES([GLES2], [glesv2], [:], [HAVE_GLESv2=0])
599 saved_CPPFLAGS="$CPPFLAGS"
600 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
601 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [:],
603 #ifdef HAVE_GLES2_GL2_H
604 # include <GLES2/gl2.h>
607 CPPFLAGS="$saved_CPPFLAGS"
611 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
615 if test "$enable_opengl" = "yes"; then
619 PKG_CHECK_MODULES([GLES3], [glesv2], [:], [HAVE_GLESv3=0])
620 saved_CPPFLAGS="$CPPFLAGS"
621 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
622 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [:],
624 #ifdef HAVE_GLES3_GL3_H
625 # include <GLES3/gl3.h>
628 CPPFLAGS="$saved_CPPFLAGS"
632 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
636 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
638 saved_CPPFLAGS="$CPPFLAGS"
640 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
641 LIBS="$LIBS $GL_LIBS"
642 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
647 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
648 CPPFLAGS="$saved_CPPFLAGS"
654 if test "$enable_egl" = "yes" -a $GLES_VERSION_MASK -ne 0; then
656 PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
657 saved_CPPFLAGS="$CPPFLAGS"
659 AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
660 AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
661 CPPFLAGS="$saved_CPPFLAGS"
665 dnl Check for Wayland
667 if test "$enable_wayland" = "yes"; then
668 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
669 [USE_WAYLAND=1], [USE_WAYLAND=0])
671 if test $USE_WAYLAND -eq 1; then
672 saved_CPPFLAGS="$CPPFLAGS"
673 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
674 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
675 CPPFLAGS="$saved_CPPFLAGS"
679 dnl ---------------------------------------------------------------------------
681 dnl ---------------------------------------------------------------------------
684 LIBVA_PKGNAME="libva"
685 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
686 AC_SUBST(LIBVA_PKGNAME)
688 VA_VERSION=`$PKG_CONFIG --modversion libva`
689 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
690 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
691 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
692 VA_VERSION_STR="$VA_VERSION"
696 if test $USE_DRM -eq 1; then
697 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
698 [HAVE_VA_DRM=1], [USE_DRM=0])
700 if test $HAVE_VA_DRM -eq 1; then
701 saved_CPPFLAGS="$CPPFLAGS"
702 CPPFLAGS="$LIBVA_DRM_CFLAGS"
703 AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
704 CPPFLAGS="$saved_CPPFLAGS"
710 LIBVA_X11_PKGNAME="libva-x11"
711 if test $USE_X11 -eq 1; then
712 PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
713 [HAVE_VA_X11=1], [USE_X11=0])
715 AC_SUBST(LIBVA_X11_PKGNAME)
717 dnl Check for va_dec_jpeg.h header
718 saved_CPPFLAGS="$CPPFLAGS"
719 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
720 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
721 CPPFLAGS="$saved_CPPFLAGS"
723 dnl Check for JPEG decoding API (0.32.1+)
725 AC_CACHE_CHECK([for JPEG decoding API],
726 ac_cv_have_jpeg_decoding_api, [
727 saved_CPPFLAGS="$CPPFLAGS"
728 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
730 LIBS="$LIBS $LIBVA_LIBS"
734 #ifdef HAVE_VA_VA_DEC_JPEG_H
735 #include <va/va_dec_jpeg.h>
738 [[VAPictureParameterBufferJPEGBaseline pic_param;
739 VASliceParameterBufferJPEGBaseline slice_param;
740 VAHuffmanTableBufferJPEGBaseline huffman_table;
741 VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
742 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
743 [ac_cv_have_jpeg_decoding_api="no"]
745 CPPFLAGS="$saved_CPPFLAGS"
749 dnl Check for va_dec_vp8.h header
750 saved_CPPFLAGS="$CPPFLAGS"
751 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
752 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
753 CPPFLAGS="$saved_CPPFLAGS"
755 dnl Check for VP8 decoding API (0.34+)
757 AC_CACHE_CHECK([for VP8 decoding API],
758 ac_cv_have_vp8_decoding_api, [
759 saved_CPPFLAGS="$CPPFLAGS"
760 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
762 LIBS="$LIBS $LIBVA_LIBS"
766 #ifdef HAVE_VA_VA_DEC_VP8_H
767 #include <va/va_dec_vp8.h>
770 [[VAPictureParameterBufferVP8 pic_param;
771 VASliceParameterBufferVP8 slice_param;
772 VAProbabilityDataBufferVP8 prob_data;
773 VAIQMatrixBufferVP8 iq_matrix;
774 slice_param.slice_data_offset = 0;
775 slice_param.slice_data_flag = 0;]])],
776 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
777 [ac_cv_have_vp8_decoding_api="no"]
779 CPPFLAGS="$saved_CPPFLAGS"
783 dnl Check for va_dec_hevc.h header
784 saved_CPPFLAGS="$CPPFLAGS"
785 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
786 AC_CHECK_HEADERS([va/va_dec_hevc.h], [], [], [#include <va/va.h>])
787 CPPFLAGS="$saved_CPPFLAGS"
789 dnl Check for HEVC decoding API (0.38+)
791 AC_CACHE_CHECK([for HEVC decoding API],
792 ac_cv_have_hevc_decoding_api, [
793 saved_CPPFLAGS="$CPPFLAGS"
794 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
796 LIBS="$LIBS $LIBVA_LIBS"
800 #ifdef HAVE_VA_VA_DEC_HEVC_H
801 #include <va/va_dec_hevc.h>
804 [[VAPictureParameterBufferHEVC pic_param;
805 VASliceParameterBufferHEVC slice_param;
806 VAIQMatrixBufferHEVC iq_matrix;
807 slice_param.slice_data_offset = 0;
808 slice_param.slice_data_flag = 0;]])],
809 [ac_cv_have_hevc_decoding_api="yes" USE_HEVC_DECODER=1],
810 [ac_cv_have_hevc_decoding_api="no"]
812 CPPFLAGS="$saved_CPPFLAGS"
816 dnl Check for vpp (video post-processing) support
818 AC_CACHE_CHECK([for video post-postprocessing API],
819 ac_cv_have_va_vpp_api, [
820 saved_CPPFLAGS="$CPPFLAGS"
821 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
823 LIBS="$LIBS $LIBVA_LIBS"
827 #include <va/va_vpp.h>]],
830 VAProcFilterType filters[VAProcFilterCount];
831 unsigned int num_filters = VAProcFilterCount;
832 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
834 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
835 [ac_cv_have_va_vpp_api="no"]
837 CPPFLAGS="$saved_CPPFLAGS"
841 dnl Check for encoding support
845 if test "$enable_encoders" = "yes"; then
846 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
847 [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
849 if test $HAVE_VA_ENC -eq 1; then
850 saved_CPPFLAGS="$CPPFLAGS"
851 CPPFLAGS="$LIBVA_CFLAGS"
852 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
853 [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
857 dnl Check for JPEG Encoding API (0.37.0+)
858 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
859 [USE_JPEG_ENCODER=1], [],
862 AC_CACHE_CHECK([for JPEG encoding API],
863 ac_cv_have_jpeg_encoding_api, [
864 saved_CPPFLAGS="$CPPFLAGS"
865 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
867 LIBS="$LIBS $LIBVA_LIBS"
871 #ifdef HAVE_VA_VA_ENC_JPEG_H
872 #include <va/va_enc_jpeg.h>
875 [[VAEncPictureParameterBufferJPEG pic_param;
876 VAEncSliceParameterBufferJPEG slice_param;
877 VAQMatrixBufferJPEG q_matrix;]])],
878 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
879 [ac_cv_have_jpeg_encoding_api="no"]
881 CPPFLAGS="$saved_CPPFLAGS"
885 dnl Check for VP8 Encoding API
886 AC_CHECK_HEADERS([va/va_enc_vp8.h],
887 [USE_VP8_ENCODER=1], [],
890 AC_CACHE_CHECK([for VP8 encoding API],
891 ac_cv_have_vp8_encoding_api, [
892 saved_CPPFLAGS="$CPPFLAGS"
893 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
895 LIBS="$LIBS $LIBVA_LIBS"
899 #ifdef HAVE_VA_VA_ENC_VP8_H
900 #include <va/va_enc_vp8.h>
903 [[VAEncSequenceParameterBufferVP8 seq_param;
904 VAEncPictureParameterBufferVP8 pic_param;
905 VAQMatrixBufferVP8 q_matrix;]])],
906 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
907 [ac_cv_have_vp8_encoding_api="no" USE_VP8_ENCODER=0]
909 CPPFLAGS="$saved_CPPFLAGS"
912 CPPFLAGS="$saved_CPPFLAGS"
917 if test "$enable_wayland" = "yes"; then
918 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
919 [:], [USE_WAYLAND=0])
922 dnl ---------------------------------------------------------------------------
923 dnl -- Generate files and summary --
924 dnl ---------------------------------------------------------------------------
926 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
930 AC_MSG_ERROR([No renderer is enabled])
934 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
935 [Defined to 1 if video encoders are used])
936 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
938 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
939 [Defined to 1 if JPEG encoder is used])
940 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
942 AC_DEFINE_UNQUOTED(USE_VP8_ENCODER, $USE_VP8_ENCODER,
943 [Defined to 1 if VP8 encoder is used])
944 AM_CONDITIONAL(USE_VP8_ENCODER, test $USE_VP8_ENCODER -eq 1)
946 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
947 [Defined to 1 if video post-processing is used])
948 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
950 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
951 [Defined to 1 if JPEG decoder is used])
952 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
954 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
955 [Defined to 1 if VP8 decoder is used])
956 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
958 AC_DEFINE_UNQUOTED(USE_HEVC_DECODER, $USE_HEVC_DECODER,
959 [Defined to 1 if HEVC decoder is used])
960 AM_CONDITIONAL(USE_HEVC_DECODER, test $USE_HEVC_DECODER -eq 1)
962 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
963 [Defined to 1 if DRM is enabled])
964 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
966 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
967 [Defined to 1 if X11 is enabled])
968 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
970 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
971 [Defined to 1 if GLX is enabled])
972 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
974 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
975 [Defined to 1 if EGL is enabled])
976 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
978 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
979 [Defined to the set of enabled OpenGL ES APIs])
981 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
982 [Defined to 1 if WAYLAND is enabled])
983 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
985 pkgconfigdir=${libdir}/pkgconfig
986 AC_SUBST(pkgconfigdir)
990 debian.upstream/Makefile
991 debian.upstream/changelog
992 debian.upstream/control
993 debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
994 debian.upstream/gstreamer-vaapi-doc.install.in
995 debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
996 debian.upstream/gstreamer-vaapi.install.in
997 debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
998 debian.upstream/libgstvaapi-dev.install.in
999 debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
1000 debian.upstream/libgstvaapi.install.in
1001 debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
1002 debian.upstream/libgstvaapi-drm.install.in
1003 debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
1004 debian.upstream/libgstvaapi-glx.install.in
1005 debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
1006 debian.upstream/libgstvaapi-wayland.install.in
1007 debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
1008 debian.upstream/libgstvaapi-x11.install.in
1010 docs/reference/Makefile
1011 docs/reference/libs/Makefile
1012 docs/reference/libs/libs-docs.xml
1013 docs/reference/plugins/Makefile
1014 docs/reference/plugins/plugins-docs.xml
1018 gst-libs/gst/Makefile
1019 gst-libs/gst/base/Makefile
1020 gst-libs/gst/codecparsers/Makefile
1021 gst-libs/gst/vaapi/Makefile
1025 patches/videoparsers/Makefile
1027 pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
1028 pkgconfig/gstreamer-vaapi.pc.in
1029 pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
1030 pkgconfig/gstreamer-vaapi-drm.pc.in
1031 pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
1032 pkgconfig/gstreamer-vaapi-glx.pc.in
1033 pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
1034 pkgconfig/gstreamer-vaapi-wayland.pc.in
1035 pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
1036 pkgconfig/gstreamer-vaapi-x11.pc.in
1043 test $1 -eq 1 && echo yes || echo no
1047 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
1048 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
1049 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
1050 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
1051 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
1054 echo $PACKAGE configuration summary:
1056 echo Installation Prefix .............. : ${prefix}
1057 echo GStreamer API version ............ : $GST_API_VERSION
1058 echo VA-API version ................... : $VA_VERSION_STR
1059 echo Video encoding ................... : $(yesno $USE_ENCODERS)
1060 echo Video outputs .................... : $VIDEO_OUTPUTS