1 # gstreamer-vaapi package version number
2 m4_define([gst_vaapi_major_version], [0])
3 m4_define([gst_vaapi_minor_version], [7])
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([gst_vaapi_lt_current_bias], [7])
18 m4_define([gst_vaapi_lt_revision], [0])
19 m4_define([gst_vaapi_lt_age], [0])
22 m4_define([glib_version], [2.32])
24 # gmodule version number
25 m4_define([gmodule_version], [2.32])
27 # gstreamer version number
28 m4_define([gst_version], [1.6.3])
29 m4_define([gst_plugins_base_version], [1.6.3])
30 m4_define([gst_plugins_bad_version], [1.6.3])
32 # Wayland minimum version number
33 m4_define([wayland_api_version], [1.0.2])
35 # VA-API minimum version number
36 m4_define([va_api_version], [0.30.4])
37 m4_define([va_api_enc_version], [0.34.0])
38 m4_define([va_api_drm_version], [0.33.0])
39 m4_define([va_api_x11_version], [0.31.0])
40 m4_define([va_api_wld_version], [0.33.0])
42 # gtk-doc version number
43 # XXX: introspection annotations require gtk-doc >= 1.12
44 m4_define([gtkdoc_version], [1.12])
47 AC_INIT([gst_vaapi], [gst_vaapi_version],
48 [gwenole.beauchesne@intel.com, sreerenj.balachandran@intel.com],
51 AC_CONFIG_HEADERS([config.h])
52 AC_CONFIG_SRCDIR([Makefile.am])
53 AC_CONFIG_MACRO_DIR([m4])
54 AC_CONFIG_AUX_DIR([build-aux])
58 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
60 dnl Use pretty build output
61 AM_SILENT_RULES([yes])
67 AC_ARG_VAR([GIT], [Path to git program, if any])
68 AC_PATH_PROG([GIT], [git])
69 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
71 dnl Initialize libtool
75 AC_ARG_ENABLE([encoders],
76 AS_HELP_STRING([--enable-encoders],
77 [enable video encoders @<:@default=yes@:>@]),
78 [], [enable_encoders="yes"])
81 AS_HELP_STRING([--enable-drm],
82 [enable DRM backend @<:@default=yes@:>@]),
83 [], [enable_drm="yes"])
86 AS_HELP_STRING([--enable-x11],
87 [enable X11 output @<:@default=yes@:>@]),
88 [], [enable_x11="yes"])
91 AS_HELP_STRING([--enable-glx],
92 [enable OpenGL/X11 output @<:@default=yes@:>@]),
93 [], [enable_glx="yes"])
95 AC_ARG_ENABLE(wayland,
96 AC_HELP_STRING([--enable-wayland],
97 [enable Wayland output @<:@default=yes@:>@]),
98 [], [enable_wayland="yes"])
101 AS_HELP_STRING([--enable-egl],
102 [enable EGL output @<:@default=yes@:>@]),
103 [], [enable_egl="yes"])
106 AS_HELP_STRING([--with-glapi=APIs],
107 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
108 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
110 dnl Check for basic libraries
113 dnl Check for Gtk doc
114 GTKDOC_VERSION=gtkdoc_version
115 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
116 m4_ifdef([GTK_DOC_CHECK], [
117 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
118 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
121 GLIB_VERSION_REQUIRED=glib_version
122 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
124 dnl Check to see if dlopen is in default libraries (like Solaris, which
125 dnl has it in libc), or if libdl is needed to get it.
126 AC_CHECK_FUNC([dlopen], [], [
127 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
128 AC_SUBST([DLOPEN_LIBS])
130 dnl ---------------------------------------------------------------------------
132 dnl ---------------------------------------------------------------------------
133 GST_PKG_VERSION="1.0"
134 AC_SUBST([GST_PKG_VERSION])
135 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
136 [Defined to the string representation of GStreamer API version])
138 dnl Versions for GStreamer and plugins-base
139 GST_VERSION_REQUIRED=gst_version
140 GST_PLUGINS_BASE_VERSION_REQUIRED=gst_plugins_base_version
141 GST_PLUGINS_BAD_VERSION_REQUIRED=gst_plugins_bad_version
144 PKG_CHECK_MODULES([GST],
145 [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
147 AC_MSG_CHECKING([for GStreamer API version])
148 gst_api_version=`$PKG_CONFIG --modversion "gstreamer-$GST_PKG_VERSION"`
149 gst_major_version=`echo "$gst_api_version" | cut -d'.' -f1`
150 gst_minor_version=`echo "$gst_api_version" | cut -d'.' -f2`
151 GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
152 AC_MSG_RESULT([$GST_API_VERSION])
153 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
154 [Defined to the string representation of GStreamer version])
156 PKG_CHECK_MODULES([GST_BASE],
157 [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
159 dnl GStreamer -base plugins
160 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
161 [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
163 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
164 PKG_CHECK_MODULES([GST_ALLOCATORS],
165 [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
167 dnl ... GstVideoOverlayComposition (gstreamer-video)
168 PKG_CHECK_MODULES([GST_VIDEO],
169 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
171 dnl ... GStreamer base utils (gstreamer-pbutils)
172 PKG_CHECK_MODULES([GST_PBUTILS],
173 [gstreamer-pbutils-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
175 dnl ... bitstream parsers
176 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
177 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
179 dnl ... VP9 parser, with required extensions
180 HAVE_GST_VP9_PARSER=0
181 AC_CACHE_CHECK([for VP9 parser],
182 ac_cv_have_gst_vp9_parser, [
183 saved_CPPFLAGS="$CPPFLAGS"
184 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
186 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
189 [[#include <gst/codecparsers/gstvp9parser.h>]],
190 [[GstVp9FrameHdr frame_hdr;]])],
191 [ac_cv_have_gst_vp9_parser="yes" HAVE_GST_VP9_PARSER=1],
192 [ac_cv_have_gst_vp9_parser="no"]
194 CPPFLAGS="$saved_CPPFLAGS"
198 dnl ... opengl helper libraries
200 if test "x$enable_glx" = "xyes" -o "x$enable_egl" = "xyes"; then
201 PKG_CHECK_MODULES([GST_GL],
202 [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
203 [HAVE_GSTGL=1], [HAVE_GSTGL=0])
206 if test $HAVE_GSTGL -eq 1; then
207 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
208 [ac_cv_have_gst_gl_helpers], [
209 saved_CPPFLAGS="$CPPFLAGS"
210 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS $GST_VIDEO_CFLAGS"
213 AC_CHECK_HEADERS([gst/gl/gl.h], [:], [HAVE_GSTGL=0])
216 [[#include <gst/gl/gl.h>]],
217 [[GstGLContext gl_context;]])],
218 [ac_cv_have_gst_gl_helpers="yes"],
219 [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0]
221 CPPFLAGS="$saved_CPPFLAGS"
225 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
227 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
228 [Defined to 1 if GStreamer OpenGL helper libraries are available])
230 if test "x$enable_egl" = "xyes" -a $HAVE_GSTGL -ne 1; then
231 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
235 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - gst_vaapi_lt_current_bias`
236 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["$GST_VAAPI_MAJOR_VERSION"],
237 [Defined to the string representation of gstreamer-vaapi major version])
240 dnl LDFLAGS really should only contain flags, not libs - they get added before
241 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
242 GST_ALL_LDFLAGS="-no-undefined"
243 AC_SUBST(GST_ALL_LDFLAGS)
245 dnl GST_PLUGIN_LDFLAGS:
246 dnl this really should only contain flags, not libs - they get added before
247 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
248 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
249 AC_SUBST(GST_PLUGIN_LDFLAGS)
251 dnl Check for the GStreamer plugins directory
252 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
253 AC_MSG_CHECKING([for GStreamer plugins directory])
254 if test -n "$GST_PLUGIN_PATH_1_0"; then
255 GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
257 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
258 if test -z "$GST_PLUGINS_DIR"; then
259 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
262 AC_MSG_RESULT([$GST_PLUGINS_DIR])
263 plugindir="$GST_PLUGINS_DIR"
266 dnl ---------------------------------------------------------------------------
268 dnl ---------------------------------------------------------------------------
270 dnl Check for DRM/libudev
272 if test "x$enable_drm" = "xyes"; then
273 PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
274 PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
276 if test $USE_DRM -eq 1; then
277 saved_CPPFLAGS="$CPPFLAGS"
278 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
279 AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
280 CPPFLAGS="$saved_CPPFLAGS"
286 if test "x$enable_x11" = "xyes"; then
287 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
288 if test $USE_X11 -eq 1; then
289 saved_CPPFLAGS="$CPPFLAGS"
290 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
291 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
292 CPPFLAGS="$saved_CPPFLAGS"
296 dnl Check for XKB library
298 if test $USE_X11 -eq 1; then
299 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
301 if test $HAVE_XKBLIB -eq 1; then
302 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
303 [Defined to 1 if the XKB extension exists.])
308 if test $USE_X11 -eq 1; then
310 PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
311 if test $HAVE_XRANDR -eq 1; then
312 saved_CPPFLAGS="$CPPFLAGS"
313 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
314 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
315 CPPFLAGS="$saved_CPPFLAGS"
318 if test $HAVE_XRANDR -eq 1; then
319 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
320 [Defined to 1 if the XRandR extension exists.])
323 dnl Check for XRender
325 if test $USE_X11 -eq 1; then
327 PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
328 if test $HAVE_XRENDER -eq 1; then
329 saved_CPPFLAGS="$CPPFLAGS"
330 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
331 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
332 CPPFLAGS="$saved_CPPFLAGS"
335 if test $HAVE_XRENDER -eq 1; then
336 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
337 [Defined to 1 if the XRender extension exists.])
342 if test "x$enable_glx" = "xyes"; then
345 if test "x$enable_egl" = "xyes"; then
351 if test "x$enable_opengl" = "xyes"; then
355 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
356 saved_CPPFLAGS="$CPPFLAGS"
357 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
358 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
363 CPPFLAGS="$saved_CPPFLAGS"
367 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
371 if test "x$enable_opengl" = "xyes"; then
375 PKG_CHECK_MODULES([GLES2], [glesv2], [:], [HAVE_GLESv2=0])
376 saved_CPPFLAGS="$CPPFLAGS"
377 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
378 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [:],
380 #ifdef HAVE_GLES2_GL2_H
381 # include <GLES2/gl2.h>
384 CPPFLAGS="$saved_CPPFLAGS"
388 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
392 if test "x$enable_opengl" = "xyes"; then
396 PKG_CHECK_MODULES([GLES3], [glesv2], [:], [HAVE_GLESv3=0])
397 saved_CPPFLAGS="$CPPFLAGS"
398 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
399 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [:],
401 #ifdef HAVE_GLES3_GL3_H
402 # include <GLES3/gl3.h>
405 CPPFLAGS="$saved_CPPFLAGS"
409 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
413 if test "x$enable_glx" = "xyes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
415 saved_CPPFLAGS="$CPPFLAGS"
417 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
418 LIBS="$LIBS $GL_LIBS"
419 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
424 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
425 CPPFLAGS="$saved_CPPFLAGS"
431 if test "x$enable_egl" = "xyes" -a $GLES_VERSION_MASK -ne 0; then
433 PKG_CHECK_MODULES([EGL], [egl], [:], [USE_EGL=0])
434 saved_CPPFLAGS="$CPPFLAGS"
436 AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL=0])
437 AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL=0])
438 CPPFLAGS="$saved_CPPFLAGS"
441 dnl Check for GMODULE
442 GMODULE_VERSION_REQUIRED=gmodule_version
443 PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= $GMODULE_VERSION_REQUIRED])
446 dnl Check for Wayland
448 if test "x$enable_wayland" = "xyes"; then
449 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
450 [USE_WAYLAND=1], [USE_WAYLAND=0])
452 if test $USE_WAYLAND -eq 1; then
453 saved_CPPFLAGS="$CPPFLAGS"
454 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
455 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
456 CPPFLAGS="$saved_CPPFLAGS"
460 dnl ---------------------------------------------------------------------------
462 dnl ---------------------------------------------------------------------------
465 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_version])
466 VA_VERSION_STR=`$PKG_CONFIG --modversion libva`
470 if test $USE_DRM -eq 1; then
471 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
472 [HAVE_VA_DRM=1], [USE_DRM=0])
474 if test $HAVE_VA_DRM -eq 1; then
475 saved_CPPFLAGS="$CPPFLAGS"
476 CPPFLAGS="$LIBVA_DRM_CFLAGS"
477 AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
478 CPPFLAGS="$saved_CPPFLAGS"
483 if test $USE_X11 -eq 1; then
484 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11 >= va_api_x11_version],
488 dnl Check for va_dec_jpeg.h header
489 saved_CPPFLAGS="$CPPFLAGS"
490 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
491 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
492 CPPFLAGS="$saved_CPPFLAGS"
494 dnl Check for JPEG decoding API (0.32.1+)
496 AC_CACHE_CHECK([for JPEG decoding API],
497 ac_cv_have_jpeg_decoding_api, [
498 saved_CPPFLAGS="$CPPFLAGS"
499 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
501 LIBS="$LIBS $LIBVA_LIBS"
505 #ifdef HAVE_VA_VA_DEC_JPEG_H
506 #include <va/va_dec_jpeg.h>
509 [[VAPictureParameterBufferJPEGBaseline pic_param;
510 VASliceParameterBufferJPEGBaseline slice_param;
511 VAHuffmanTableBufferJPEGBaseline huffman_table;
512 VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
513 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
514 [ac_cv_have_jpeg_decoding_api="no"]
516 CPPFLAGS="$saved_CPPFLAGS"
520 dnl Check for va_dec_vp8.h header
521 saved_CPPFLAGS="$CPPFLAGS"
522 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
523 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
524 CPPFLAGS="$saved_CPPFLAGS"
526 dnl Check for VP8 decoding API (0.34+)
528 AC_CACHE_CHECK([for VP8 decoding API],
529 ac_cv_have_vp8_decoding_api, [
530 saved_CPPFLAGS="$CPPFLAGS"
531 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
533 LIBS="$LIBS $LIBVA_LIBS"
537 #ifdef HAVE_VA_VA_DEC_VP8_H
538 #include <va/va_dec_vp8.h>
541 [[VAPictureParameterBufferVP8 pic_param;
542 VASliceParameterBufferVP8 slice_param;
543 VAProbabilityDataBufferVP8 prob_data;
544 VAIQMatrixBufferVP8 iq_matrix;
545 slice_param.slice_data_offset = 0;
546 slice_param.slice_data_flag = 0;]])],
547 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
548 [ac_cv_have_vp8_decoding_api="no"]
550 CPPFLAGS="$saved_CPPFLAGS"
554 dnl Check for va_dec_vp9.h header
555 saved_CPPFLAGS="$CPPFLAGS"
556 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
557 AC_CHECK_HEADERS([va/va_dec_vp9.h], [], [], [#include <va/va.h>])
558 CPPFLAGS="$saved_CPPFLAGS"
560 dnl Check for VP9 decoding API (0.37+)
562 AC_CACHE_CHECK([for VP9 decoding API],
563 ac_cv_have_vp9_decoding_api, [
564 saved_CPPFLAGS="$CPPFLAGS"
565 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
567 LIBS="$LIBS $LIBVA_LIBS"
571 #ifdef HAVE_VA_VA_DEC_VP9_H
572 #include <va/va_dec_vp9.h>
575 [[VADecPictureParameterBufferVP9 pic_param;
576 VASliceParameterBufferVP9 slice_param;
577 VASegmentParameterVP9 seg_param;
578 slice_param.slice_data_offset = 0;
579 slice_param.slice_data_flag = 0;]])],
580 [ac_cv_have_vp9_decoding_api="yes" USE_VP9_DECODER=$HAVE_GST_VP9_PARSER],
581 [ac_cv_have_vp9_decoding_api="no"]
583 CPPFLAGS="$saved_CPPFLAGS"
587 dnl Check for va_dec_hevc.h header
588 saved_CPPFLAGS="$CPPFLAGS"
589 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
590 AC_CHECK_HEADERS([va/va_dec_hevc.h], [], [], [#include <va/va.h>])
591 CPPFLAGS="$saved_CPPFLAGS"
593 dnl Check for HEVC decoding API (0.38+)
595 AC_CACHE_CHECK([for HEVC decoding API],
596 ac_cv_have_hevc_decoding_api, [
597 saved_CPPFLAGS="$CPPFLAGS"
598 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
600 LIBS="$LIBS $LIBVA_LIBS"
604 #ifdef HAVE_VA_VA_DEC_HEVC_H
605 #include <va/va_dec_hevc.h>
608 [[VAPictureParameterBufferHEVC pic_param;
609 VASliceParameterBufferHEVC slice_param;
610 VAIQMatrixBufferHEVC iq_matrix;
611 slice_param.slice_data_offset = 0;
612 slice_param.slice_data_flag = 0;]])],
613 [ac_cv_have_hevc_decoding_api="yes" USE_HEVC_DECODER=1],
614 [ac_cv_have_hevc_decoding_api="no"]
616 CPPFLAGS="$saved_CPPFLAGS"
620 dnl Check for vpp (video post-processing) support
622 AC_CACHE_CHECK([for video post-postprocessing API],
623 ac_cv_have_va_vpp_api, [
624 saved_CPPFLAGS="$CPPFLAGS"
625 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
627 LIBS="$LIBS $LIBVA_LIBS"
631 #include <va/va_vpp.h>]],
634 VAProcFilterType filters[VAProcFilterCount];
635 unsigned int num_filters = VAProcFilterCount;
636 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
638 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
639 [ac_cv_have_va_vpp_api="no"]
641 CPPFLAGS="$saved_CPPFLAGS"
645 dnl Check for encoding support
650 if test "x$enable_encoders" = "xyes"; then
651 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
652 [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
654 if test $HAVE_VA_ENC -eq 1; then
655 saved_CPPFLAGS="$CPPFLAGS"
656 CPPFLAGS="$LIBVA_CFLAGS"
657 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
658 [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
662 dnl Check for JPEG Encoding API (0.37.0+)
663 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
664 [USE_JPEG_ENCODER=1], [],
667 AC_CACHE_CHECK([for JPEG encoding API],
668 ac_cv_have_jpeg_encoding_api, [
669 saved_CPPFLAGS="$CPPFLAGS"
670 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
672 LIBS="$LIBS $LIBVA_LIBS"
676 #ifdef HAVE_VA_VA_ENC_JPEG_H
677 #include <va/va_enc_jpeg.h>
680 [[VAEncPictureParameterBufferJPEG pic_param;
681 VAEncSliceParameterBufferJPEG slice_param;
682 VAQMatrixBufferJPEG q_matrix;]])],
683 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
684 [ac_cv_have_jpeg_encoding_api="no"]
686 CPPFLAGS="$saved_CPPFLAGS"
690 dnl Check for VP8 Encoding API
691 AC_CHECK_HEADERS([va/va_enc_vp8.h],
692 [USE_VP8_ENCODER=1], [],
695 AC_CACHE_CHECK([for VP8 encoding API],
696 ac_cv_have_vp8_encoding_api, [
697 saved_CPPFLAGS="$CPPFLAGS"
698 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
700 LIBS="$LIBS $LIBVA_LIBS"
704 #ifdef HAVE_VA_VA_ENC_VP8_H
705 #include <va/va_enc_vp8.h>
708 [[VAEncSequenceParameterBufferVP8 seq_param;
709 VAEncPictureParameterBufferVP8 pic_param;
710 VAQMatrixBufferVP8 q_matrix;]])],
711 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
712 [ac_cv_have_vp8_encoding_api="no" USE_VP8_ENCODER=0]
714 CPPFLAGS="$saved_CPPFLAGS"
717 CPPFLAGS="$saved_CPPFLAGS"
719 dnl Check for H265/HEVC Encoding API
720 AC_CHECK_HEADERS([va/va_enc_hevc.h],
721 [USE_H265_ENCODER=1], [],
724 AC_CACHE_CHECK([for HEVC encoding API],
725 ac_cv_have_hevc_encoding_api, [
726 saved_CPPFLAGS="$CPPFLAGS"
727 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
729 LIBS="$LIBS $LIBVA_LIBS"
733 #ifdef HAVE_VA_VA_ENC_HEVC_H
734 #include <va/va_enc_hevc.h>
737 [[VAEncSequenceParameterBufferHEVC seq_param;
738 VAEncPictureParameterBufferHEVC pic_param;
739 VAEncSliceParameterBufferHEVC buf_param;
740 VAQMatrixBufferHEVC q_matrix;]])],
741 [ac_cv_have_hevc_encoding_api="yes" USE_H265_ENCODER=1],
742 [ac_cv_have_hevc_encoding_api="no" USE_H265_ENCODER=0]
744 CPPFLAGS="$saved_CPPFLAGS"
747 CPPFLAGS="$saved_CPPFLAGS"
752 if test "x$enable_wayland" = "xyes"; then
753 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
754 [:], [USE_WAYLAND=0])
757 dnl ---------------------------------------------------------------------------
758 dnl -- Generate files and summary --
759 dnl ---------------------------------------------------------------------------
761 case ":$USE_X11:$USE_GLX:$USE_EGL:$USE_WAYLAND:$USE_DRM:" in
765 AC_MSG_ERROR([No renderer is enabled])
769 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
770 [Defined to 1 if video encoders are used])
771 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
773 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
774 [Defined to 1 if JPEG encoder is used])
775 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
777 AC_DEFINE_UNQUOTED(USE_VP8_ENCODER, $USE_VP8_ENCODER,
778 [Defined to 1 if VP8 encoder is used])
779 AM_CONDITIONAL(USE_VP8_ENCODER, test $USE_VP8_ENCODER -eq 1)
781 AC_DEFINE_UNQUOTED(USE_H265_ENCODER, $USE_H265_ENCODER,
782 [Defined to 1 if H265 encoder is used])
783 AM_CONDITIONAL(USE_H265_ENCODER, test $USE_H265_ENCODER -eq 1)
785 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
786 [Defined to 1 if video post-processing is used])
787 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
789 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
790 [Defined to 1 if JPEG decoder is used])
791 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
793 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
794 [Defined to 1 if VP8 decoder is used])
795 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
797 AC_DEFINE_UNQUOTED(USE_VP9_DECODER, $USE_VP9_DECODER,
798 [Defined to 1 if VP9 decoder is used])
799 AM_CONDITIONAL(USE_VP9_DECODER, test $USE_VP9_DECODER -eq 1)
801 AC_DEFINE_UNQUOTED(USE_HEVC_DECODER, $USE_HEVC_DECODER,
802 [Defined to 1 if HEVC decoder is used])
803 AM_CONDITIONAL(USE_HEVC_DECODER, test $USE_HEVC_DECODER -eq 1)
805 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
806 [Defined to 1 if DRM is enabled])
807 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
809 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
810 [Defined to 1 if X11 is enabled])
811 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
813 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
814 [Defined to 1 if GLX is enabled])
815 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
817 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
818 [Defined to 1 if EGL is enabled])
819 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
821 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
822 [Defined to the set of enabled OpenGL ES APIs])
824 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
825 [Defined to 1 if WAYLAND is enabled])
826 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
831 docs/reference/Makefile
832 docs/reference/plugins/Makefile
833 docs/reference/plugins/plugins-docs.xml
835 gst-libs/gst/Makefile
836 gst-libs/gst/base/Makefile
837 gst-libs/gst/vaapi/Makefile
846 test $1 -eq 1 && echo yes || echo no
850 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
851 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
852 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
853 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
854 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
857 echo $PACKAGE configuration summary:
859 echo Installation Prefix .............. : ${prefix}
860 echo GStreamer API version ............ : $GST_API_VERSION
861 echo VA-API version ................... : $VA_VERSION_STR
862 echo Video encoding ................... : $(yesno $USE_ENCODERS)
863 echo Video outputs .................... : $VIDEO_OUTPUTS