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([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.0])
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"
273 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
274 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
277 dnl ... MPEG-2 parser, with the required extensions
278 AC_CACHE_CHECK([for MPEG-2 parser],
279 ac_cv_have_gst_mpeg2_parser, [
280 saved_CPPFLAGS="$CPPFLAGS"
281 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
283 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
286 [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
287 [[GstMpegVideoSequenceHdr seq_hdr;
288 GstMpegVideoSequenceExt seq_ext;
289 GstMpegVideoSequenceDisplayExt seq_dpy;
290 GstMpegVideoSliceHdr slice_hdr;
291 GstMpegVideoPacket packet;
292 gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
294 gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
295 &seq_ext, &seq_dpy);]])],
296 [ac_cv_have_gst_mpeg2_parser="yes"],
297 [ac_cv_have_gst_mpeg2_parser="no"]
299 CPPFLAGS="$saved_CPPFLAGS"
302 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
303 [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
305 dnl ... H.264 parser, with the required extensions
306 AC_CACHE_CHECK([for H.264 parser],
307 ac_cv_have_gst_h264_parser, [
308 saved_CPPFLAGS="$CPPFLAGS"
309 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
311 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
314 [[#include <gst/codecparsers/gsth264parser.h>]],
315 [[GstH264SliceHdr slice_hdr;
316 GstH264VUIParams vui_params;
317 GstH264Profile profile = GST_H264_PROFILE_HIGH;
318 slice_hdr.n_emulation_prevention_bytes = 0;
319 vui_params.par_n = 0;
320 vui_params.par_d = 0;]])],
321 [ac_cv_have_gst_h264_parser="yes"],
322 [ac_cv_have_gst_h264_parser="no"]
324 CPPFLAGS="$saved_CPPFLAGS"
327 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
328 [test "$ac_cv_have_gst_h264_parser" != "yes"])
330 dnl ... JPEG parser, not upstream yet
331 AC_CACHE_CHECK([for JPEG parser],
332 ac_cv_have_gst_jpeg_parser, [
333 saved_CPPFLAGS="$CPPFLAGS"
334 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
336 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
339 [[#include <gst/codecparsers/gstjpegparser.h>]],
340 [[GstJpegImage jpeg_image;]])],
341 [ac_cv_have_gst_jpeg_parser="yes"],
342 [ac_cv_have_gst_jpeg_parser="no"]
344 CPPFLAGS="$saved_CPPFLAGS"
347 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
348 [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
350 dnl ... VP8 parser, not upstream yet
351 if test "$enable_builtin_libvpx" = "yes"; then
352 ac_cv_have_gst_vp8_parser="no"
354 AC_CACHE_CHECK([for VP8 parser],
355 ac_cv_have_gst_vp8_parser, [
356 saved_CPPFLAGS="$CPPFLAGS"
357 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
359 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
362 [[#include <gst/codecparsers/gstvp8parser.h>]],
363 [[GstVp8FrameHdr frame_hdr;]])],
364 [ac_cv_have_gst_vp8_parser="yes"],
365 [ac_cv_have_gst_vp8_parser="no"]
367 CPPFLAGS="$saved_CPPFLAGS"
370 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
371 [test "$ac_cv_have_gst_vp8_parser" != "yes"])
372 AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
374 dnl ... video parsers
375 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
376 [test "$enable_builtin_videoparsers" = "yes"])
378 dnl ... opengl helper libraries
380 if test "$enable_glx" = "yes" -o "$enable_egl" = "yes"; then
381 PKG_CHECK_MODULES([GST_GL],
382 [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
383 [HAVE_GSTGL=1], [HAVE_GSTGL=0])
386 if test $HAVE_GSTGL -eq 1; then
387 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
388 [ac_cv_have_gst_gl_helpers], [
389 saved_CPPFLAGS="$CPPFLAGS"
390 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS"
393 AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
396 [[#include <gst/gl/gl.h>]],
397 [[GstGLContext gl_context;]])],
398 [ac_cv_have_gst_gl_helpers="yes"],
399 [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0]
401 CPPFLAGS="$saved_CPPFLAGS"
405 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
407 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
408 [Defined to 1 if GStreamer OpenGL helper libraries are available])
410 if test "$enable_egl" = "yes" -a $HAVE_GSTGL -ne 1; then
411 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
415 case $GST_API_VERSION in
416 1.0) lt_bias=gst1_vaapi_lt_current_bias;;
417 1.2) lt_bias=gst2_vaapi_lt_current_bias;;
418 1.4) lt_bias=gst4_vaapi_lt_current_bias;;
419 1.[[5-6]]) lt_bias=gst6_vaapi_lt_current_bias;;
421 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
422 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
424 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
425 [Defined to the string representation of gstreamer-vaapi major version])
427 dnl GST_VAAPI_LT_LDFLAGS:
428 GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
429 GST_VAAPI_LT_REV=gst_vaapi_lt_revision
430 GST_VAAPI_LT_AGE=gst_vaapi_lt_age
431 GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
432 GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
433 AC_SUBST(GST_VAAPI_LT_VERSION)
434 AC_SUBST(GST_VAAPI_LT_LDFLAGS)
437 dnl LDFLAGS really should only contain flags, not libs - they get added before
438 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
439 GST_ALL_LDFLAGS="-no-undefined"
440 AC_SUBST(GST_ALL_LDFLAGS)
442 dnl GST_PLUGIN_LDFLAGS:
443 dnl this really should only contain flags, not libs - they get added before
444 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
445 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
446 AC_SUBST(GST_PLUGIN_LDFLAGS)
448 dnl Check for the GStreamer plugins directory
449 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
450 AC_MSG_CHECKING([for GStreamer plugins directory])
451 if test -d "$GST_PLUGIN_PATH_1_0"; then
452 GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
454 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
455 if test -z "$GST_PLUGINS_DIR"; then
456 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
459 AC_MSG_RESULT([$GST_PLUGINS_DIR])
460 plugindir="$GST_PLUGINS_DIR"
463 dnl ---------------------------------------------------------------------------
465 dnl ---------------------------------------------------------------------------
467 dnl Check for DRM/libudev
469 if test "$enable_drm" = "yes"; then
470 PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
471 PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
473 if test $USE_DRM -eq 1; then
474 saved_CPPFLAGS="$CPPFLAGS"
475 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
476 AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
477 CPPFLAGS="$saved_CPPFLAGS"
483 if test "$enable_x11" = "yes"; then
484 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
485 if test $USE_X11 -eq 1; then
486 saved_CPPFLAGS="$CPPFLAGS"
487 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
488 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
489 CPPFLAGS="$saved_CPPFLAGS"
493 dnl Check for XKB library
495 if test $USE_X11 -eq 1; then
496 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
498 if test $HAVE_XKBLIB -eq 1; then
499 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
500 [Defined to 1 if the XKB extension exists.])
505 if test $USE_X11 -eq 1; then
507 PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
508 if test $HAVE_XRANDR -eq 1; then
509 saved_CPPFLAGS="$CPPFLAGS"
510 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
511 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
512 CPPFLAGS="$saved_CPPFLAGS"
515 if test $HAVE_XRANDR -eq 1; then
516 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
517 [Defined to 1 if the XRandR extension exists.])
520 dnl Check for XRender
522 if test $USE_X11 -eq 1; then
524 PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
525 if test $HAVE_XRENDER -eq 1; then
526 saved_CPPFLAGS="$CPPFLAGS"
527 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
528 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
529 CPPFLAGS="$saved_CPPFLAGS"
532 if test $HAVE_XRENDER -eq 1; then
533 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
534 [Defined to 1 if the XRender extension exists.])
539 if test "$enable_glx" = "yes"; then
542 if test "$enable_egl" = "yes"; then
548 if test "$enable_opengl" = "yes"; then
552 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
553 saved_CPPFLAGS="$CPPFLAGS"
554 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
555 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
560 CPPFLAGS="$saved_CPPFLAGS"
564 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
568 if test "$enable_opengl" = "yes"; then
572 PKG_CHECK_MODULES([GLES2], [glesv2], [:], [HAVE_GLESv2=0])
573 saved_CPPFLAGS="$CPPFLAGS"
574 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
575 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [:],
577 #ifdef HAVE_GLES2_GL2_H
578 # include <GLES2/gl2.h>
581 CPPFLAGS="$saved_CPPFLAGS"
585 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
589 if test "$enable_opengl" = "yes"; then
593 PKG_CHECK_MODULES([GLES3], [glesv2], [:], [HAVE_GLESv3=0])
594 saved_CPPFLAGS="$CPPFLAGS"
595 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
596 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [:],
598 #ifdef HAVE_GLES3_GL3_H
599 # include <GLES3/gl3.h>
602 CPPFLAGS="$saved_CPPFLAGS"
606 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
610 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
612 saved_CPPFLAGS="$CPPFLAGS"
614 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
615 LIBS="$LIBS $GL_LIBS"
616 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
621 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
622 CPPFLAGS="$saved_CPPFLAGS"
628 if test "$enable_egl" = "yes" -a $GLES_VERSION_MASK -ne 0; then
630 PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
631 saved_CPPFLAGS="$CPPFLAGS"
633 AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
634 AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
635 CPPFLAGS="$saved_CPPFLAGS"
639 dnl Check for Wayland
641 if test "$enable_wayland" = "yes"; then
642 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
643 [USE_WAYLAND=1], [USE_WAYLAND=0])
645 if test $USE_WAYLAND -eq 1; then
646 saved_CPPFLAGS="$CPPFLAGS"
647 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
648 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
649 CPPFLAGS="$saved_CPPFLAGS"
653 dnl ---------------------------------------------------------------------------
655 dnl ---------------------------------------------------------------------------
658 LIBVA_PKGNAME="libva"
659 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
660 AC_SUBST(LIBVA_PKGNAME)
662 VA_VERSION=`$PKG_CONFIG --modversion libva`
663 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
664 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
665 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
666 VA_VERSION_STR="$VA_VERSION"
670 if test $USE_DRM -eq 1; then
671 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
672 [HAVE_VA_DRM=1], [USE_DRM=0])
674 if test $HAVE_VA_DRM -eq 1; then
675 saved_CPPFLAGS="$CPPFLAGS"
676 CPPFLAGS="$LIBVA_DRM_CFLAGS"
677 AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
678 CPPFLAGS="$saved_CPPFLAGS"
684 LIBVA_X11_PKGNAME="libva-x11"
685 if test $USE_X11 -eq 1; then
686 PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
687 [HAVE_VA_X11=1], [USE_X11=0])
689 AC_SUBST(LIBVA_X11_PKGNAME)
691 dnl Check for va_dec_jpeg.h header
692 saved_CPPFLAGS="$CPPFLAGS"
693 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
694 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
695 CPPFLAGS="$saved_CPPFLAGS"
697 dnl Check for JPEG decoding API (0.32.1+)
699 AC_CACHE_CHECK([for JPEG decoding API],
700 ac_cv_have_jpeg_decoding_api, [
701 saved_CPPFLAGS="$CPPFLAGS"
702 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
704 LIBS="$LIBS $LIBVA_LIBS"
708 #ifdef HAVE_VA_VA_DEC_JPEG_H
709 #include <va/va_dec_jpeg.h>
712 [[VAPictureParameterBufferJPEGBaseline pic_param;
713 VASliceParameterBufferJPEGBaseline slice_param;
714 VAHuffmanTableBufferJPEGBaseline huffman_table;
715 VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
716 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
717 [ac_cv_have_jpeg_decoding_api="no"]
719 CPPFLAGS="$saved_CPPFLAGS"
723 dnl Check for va_dec_vp8.h header
724 saved_CPPFLAGS="$CPPFLAGS"
725 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
726 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
727 CPPFLAGS="$saved_CPPFLAGS"
729 dnl Check for VP8 decoding API (0.34+)
731 AC_CACHE_CHECK([for VP8 decoding API],
732 ac_cv_have_vp8_decoding_api, [
733 saved_CPPFLAGS="$CPPFLAGS"
734 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
736 LIBS="$LIBS $LIBVA_LIBS"
740 #ifdef HAVE_VA_VA_DEC_VP8_H
741 #include <va/va_dec_vp8.h>
744 [[VAPictureParameterBufferVP8 pic_param;
745 VASliceParameterBufferVP8 slice_param;
746 VAProbabilityDataBufferVP8 prob_data;
747 VAIQMatrixBufferVP8 iq_matrix;
748 slice_param.slice_data_offset = 0;
749 slice_param.slice_data_flag = 0;]])],
750 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
751 [ac_cv_have_vp8_decoding_api="no"]
753 CPPFLAGS="$saved_CPPFLAGS"
758 dnl Check for vpp (video post-processing) support
760 AC_CACHE_CHECK([for video post-postprocessing API],
761 ac_cv_have_va_vpp_api, [
762 saved_CPPFLAGS="$CPPFLAGS"
763 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
765 LIBS="$LIBS $LIBVA_LIBS"
769 #include <va/va_vpp.h>]],
772 VAProcFilterType filters[VAProcFilterCount];
773 unsigned int num_filters = VAProcFilterCount;
774 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
776 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
777 [ac_cv_have_va_vpp_api="no"]
779 CPPFLAGS="$saved_CPPFLAGS"
783 dnl Check for encoding support
787 if test "$enable_encoders" = "yes"; then
788 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
789 [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
791 if test $HAVE_VA_ENC -eq 1; then
792 saved_CPPFLAGS="$CPPFLAGS"
793 CPPFLAGS="$LIBVA_CFLAGS"
794 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
795 [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
799 dnl Check for JPEG Encoding API (0.37.0+)
800 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
801 [USE_JPEG_ENCODER=1], [],
804 AC_CACHE_CHECK([for JPEG encoding API],
805 ac_cv_have_jpeg_encoding_api, [
806 saved_CPPFLAGS="$CPPFLAGS"
807 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
809 LIBS="$LIBS $LIBVA_LIBS"
813 #ifdef HAVE_VA_VA_ENC_JPEG_H
814 #include <va/va_enc_jpeg.h>
817 [[VAEncPictureParameterBufferJPEG pic_param;
818 VAEncSliceParameterBufferJPEG slice_param;
819 VAQMatrixBufferJPEG q_matrix;]])],
820 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
821 [ac_cv_have_jpeg_encoding_api="no"]
823 CPPFLAGS="$saved_CPPFLAGS"
827 dnl Check for VP8 Encoding API
828 AC_CHECK_HEADERS([va/va_enc_vp8.h],
829 [USE_VP8_ENCODER=1], [],
832 AC_CACHE_CHECK([for VP8 encoding API],
833 ac_cv_have_vp8_encoding_api, [
834 saved_CPPFLAGS="$CPPFLAGS"
835 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
837 LIBS="$LIBS $LIBVA_LIBS"
841 #ifdef HAVE_VA_VA_ENC_VP8_H
842 #include <va/va_enc_vp8.h>
845 [[VAEncSequenceParameterBufferVP8 seq_param;
846 VAEncPictureParameterBufferVP8 pic_param;
847 VAQMatrixBufferVP8 q_matrix;]])],
848 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
849 [ac_cv_have_vp8_encoding_api="no" USE_VP8_ENCODER=0]
851 CPPFLAGS="$saved_CPPFLAGS"
854 CPPFLAGS="$saved_CPPFLAGS"
859 if test "$enable_wayland" = "yes"; then
860 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
861 [:], [USE_WAYLAND=0])
864 dnl ---------------------------------------------------------------------------
865 dnl -- Generate files and summary --
866 dnl ---------------------------------------------------------------------------
868 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
872 AC_MSG_ERROR([No renderer is enabled])
876 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
877 [Defined to 1 if video encoders are used])
878 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
880 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
881 [Defined to 1 if JPEG encoder is used])
882 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
884 AC_DEFINE_UNQUOTED(USE_VP8_ENCODER, $USE_VP8_ENCODER,
885 [Defined to 1 if VP8 encoder is used])
886 AM_CONDITIONAL(USE_VP8_ENCODER, test $USE_VP8_ENCODER -eq 1)
888 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
889 [Defined to 1 if video post-processing is used])
890 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
892 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
893 [Defined to 1 if JPEG decoder is used])
894 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
896 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
897 [Defined to 1 if VP8 decoder is used])
898 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
900 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
901 [Defined to 1 if DRM is enabled])
902 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
904 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
905 [Defined to 1 if X11 is enabled])
906 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
908 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
909 [Defined to 1 if GLX is enabled])
910 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
912 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
913 [Defined to 1 if EGL is enabled])
914 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
916 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
917 [Defined to the set of enabled OpenGL ES APIs])
919 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
920 [Defined to 1 if WAYLAND is enabled])
921 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
923 pkgconfigdir=${libdir}/pkgconfig
924 AC_SUBST(pkgconfigdir)
928 debian.upstream/Makefile
929 debian.upstream/changelog
930 debian.upstream/control
931 debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
932 debian.upstream/gstreamer-vaapi-doc.install.in
933 debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
934 debian.upstream/gstreamer-vaapi.install.in
935 debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
936 debian.upstream/libgstvaapi-dev.install.in
937 debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
938 debian.upstream/libgstvaapi.install.in
939 debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
940 debian.upstream/libgstvaapi-drm.install.in
941 debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
942 debian.upstream/libgstvaapi-glx.install.in
943 debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
944 debian.upstream/libgstvaapi-wayland.install.in
945 debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
946 debian.upstream/libgstvaapi-x11.install.in
948 docs/reference/Makefile
949 docs/reference/libs/Makefile
950 docs/reference/libs/libs-docs.xml
951 docs/reference/plugins/Makefile
952 docs/reference/plugins/plugins-docs.xml
956 gst-libs/gst/Makefile
957 gst-libs/gst/base/Makefile
958 gst-libs/gst/codecparsers/Makefile
959 gst-libs/gst/vaapi/Makefile
963 patches/videoparsers/Makefile
965 pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
966 pkgconfig/gstreamer-vaapi.pc.in
967 pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
968 pkgconfig/gstreamer-vaapi-drm.pc.in
969 pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
970 pkgconfig/gstreamer-vaapi-glx.pc.in
971 pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
972 pkgconfig/gstreamer-vaapi-wayland.pc.in
973 pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
974 pkgconfig/gstreamer-vaapi-x11.pc.in
981 test $1 -eq 1 && echo yes || echo no
985 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
986 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
987 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
988 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
989 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
992 echo $PACKAGE configuration summary:
994 echo Installation Prefix .............. : ${prefix}
995 echo GStreamer API version ............ : $GST_API_VERSION
996 echo VA-API version ................... : $VA_VERSION_STR
997 echo Video encoding ................... : $(yesno $USE_ENCODERS)
998 echo Video outputs .................... : $VIDEO_OUTPUTS