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_revision], [0])
18 m4_define([gst_vaapi_lt_age], [0])
21 m4_define([glib_version], [2.32])
23 # gmodule version number
24 m4_define([gmodule_version], [2.32])
26 # gstreamer version number
27 m4_define([gst_version], [1.6.3])
28 m4_define([gst_plugins_base_version], [1.6.3])
29 m4_define([gst_plugins_bad_version], [1.6.3])
31 # Wayland minimum version number
32 m4_define([wayland_api_version], [1.0.2])
34 # VA-API minimum version number
35 m4_define([va_api_version], [0.30.4])
36 m4_define([va_api_enc_version], [0.34.0])
37 m4_define([va_api_drm_version], [0.33.0])
38 m4_define([va_api_x11_version], [0.31.0])
39 m4_define([va_api_wld_version], [0.33.0])
41 # gtk-doc version number
42 # XXX: introspection annotations require gtk-doc >= 1.12
43 m4_define([gtkdoc_version], [1.12])
46 AC_INIT([GStreamer VA-API Plug-ins], [gst_vaapi_version],
47 [http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],
50 AC_CONFIG_HEADERS([config.h])
51 AC_CONFIG_SRCDIR([Makefile.am])
52 AC_CONFIG_MACRO_DIR([m4])
53 AC_CONFIG_AUX_DIR([build-aux])
57 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
59 dnl Use pretty build output
60 AM_SILENT_RULES([yes])
66 AC_ARG_VAR([GIT], [Path to git program, if any])
67 AC_PATH_PROG([GIT], [git])
68 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
70 dnl Initialize libtool
74 AC_ARG_ENABLE([encoders],
75 AS_HELP_STRING([--enable-encoders],
76 [enable video encoders @<:@default=yes@:>@]),
77 [], [enable_encoders="yes"])
80 AS_HELP_STRING([--enable-drm],
81 [enable DRM backend @<:@default=yes@:>@]),
82 [], [enable_drm="yes"])
85 AS_HELP_STRING([--enable-x11],
86 [enable X11 output @<:@default=yes@:>@]),
87 [], [enable_x11="yes"])
90 AS_HELP_STRING([--enable-glx],
91 [enable OpenGL/X11 output @<:@default=yes@:>@]),
92 [], [enable_glx="yes"])
94 AC_ARG_ENABLE([wayland],
95 AC_HELP_STRING([--enable-wayland],
96 [enable Wayland output @<:@default=yes@:>@]),
97 [], [enable_wayland="yes"])
100 AS_HELP_STRING([--enable-egl],
101 [enable EGL output @<:@default=yes@:>@]),
102 [], [enable_egl="yes"])
105 AS_HELP_STRING([--with-glapi=APIs],
106 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
107 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
109 dnl Check for basic libraries
110 AC_CHECK_LIB([m], [tan])
112 dnl Check for Gtk doc
113 GTKDOC_VERSION=gtkdoc_version
114 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
115 m4_ifdef([GTK_DOC_CHECK], [
116 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
117 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
120 GLIB_VERSION_REQUIRED=glib_version
121 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
123 dnl Check to see if dlopen is in default libraries (like Solaris, which
124 dnl has it in libc), or if libdl is needed to get it.
125 AC_CHECK_FUNC([dlopen], [], [
126 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
127 AC_SUBST([DLOPEN_LIBS])
129 dnl ---------------------------------------------------------------------------
131 dnl ---------------------------------------------------------------------------
132 GST_PKG_VERSION="1.0"
133 AC_SUBST([GST_PKG_VERSION])
134 AC_DEFINE_UNQUOTED([GST_PKG_VERSION_S], ["$GST_PKG_VERSION"],
135 [Defined to the string representation of GStreamer API version])
137 dnl Versions for GStreamer and plugins-base
138 GST_VERSION_REQUIRED=gst_version
139 GST_PLUGINS_BASE_VERSION_REQUIRED=gst_plugins_base_version
140 GST_PLUGINS_BAD_VERSION_REQUIRED=gst_plugins_bad_version
143 PKG_CHECK_MODULES([GST],
144 [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
146 AC_MSG_CHECKING([for GStreamer API version])
147 gst_api_version=`$PKG_CONFIG --modversion "gstreamer-$GST_PKG_VERSION"`
148 gst_major_version=`echo "$gst_api_version" | cut -d'.' -f1`
149 gst_minor_version=`echo "$gst_api_version" | cut -d'.' -f2`
150 GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
151 AC_MSG_RESULT([$GST_API_VERSION])
152 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_API_VERSION"],
153 [Defined to the string representation of GStreamer version])
155 PKG_CHECK_MODULES([GST_BASE],
156 [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
158 dnl GStreamer -base plugins
159 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
160 [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
162 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
163 PKG_CHECK_MODULES([GST_ALLOCATORS],
164 [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
166 dnl ... GstVideoOverlayComposition (gstreamer-video)
167 PKG_CHECK_MODULES([GST_VIDEO],
168 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
170 dnl ... GStreamer base utils (gstreamer-pbutils)
171 PKG_CHECK_MODULES([GST_PBUTILS],
172 [gstreamer-pbutils-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
174 dnl ... bitstream parsers
175 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
176 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
178 dnl ... VP9 parser, with required extensions
179 HAVE_GST_VP9_PARSER=0
180 AC_CACHE_CHECK([for VP9 parser],
181 [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"
191 #include <gst/codecparsers/gstvp9parser.h>
194 GstVp9FrameHdr frame_hdr;
197 [ac_cv_have_gst_vp9_parser="yes" HAVE_GST_VP9_PARSER=1],
198 [ac_cv_have_gst_vp9_parser="no"])
199 CPPFLAGS="$saved_CPPFLAGS"
203 AS_IF([test "x$enable_glx" = "xyes" -o "x$enable_egl" = "xyes"],
204 [enable_opengl="yes"], [enable_opengl="no"])
206 dnl ... opengl helper libraries
208 if test "x$enable_opengl" = "xyes"; then
209 PKG_CHECK_MODULES([GST_GL],
210 [gstreamer-gl-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED],
213 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
214 [ac_cv_have_gst_gl_helpers],
216 saved_CPPFLAGS="$CPPFLAGS"
217 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS $GST_VIDEO_CFLAGS"
220 AC_CHECK_HEADERS([gst/gl/gl.h], [], [HAVE_GSTGL=0])
225 #include <gst/gl/gl.h>
228 GstGLContext gl_context;
231 [ac_cv_have_gst_gl_helpers="yes"],
232 [ac_cv_have_gst_gl_helpers="no" HAVE_GSTGL=0])
233 CPPFLAGS="$saved_CPPFLAGS"
238 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
239 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
240 [Defined to 1 if GStreamer OpenGL helper libraries are available])
242 if test "x$enable_egl" = "xyes" -a $HAVE_GSTGL -ne 1; then
243 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
248 dnl LDFLAGS really should only contain flags, not libs - they get added before
249 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
250 GST_ALL_LDFLAGS="-no-undefined"
251 AC_SUBST([GST_ALL_LDFLAGS])
253 dnl GST_PLUGIN_LDFLAGS:
254 dnl this really should only contain flags, not libs - they get added before
255 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
256 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
257 AC_SUBST([GST_PLUGIN_LDFLAGS])
259 dnl Check for the GStreamer plugins directory
260 AC_ARG_VAR([GST_PLUGIN_PATH_1_0],
261 [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
262 AC_MSG_CHECKING([for GStreamer plugins directory])
263 if test -n "$GST_PLUGIN_PATH_1_0"; then
264 GST_PLUGINS_DIR="$GST_PLUGIN_PATH_1_0"
266 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
267 if test -z "$GST_PLUGINS_DIR"; then
268 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
271 AC_MSG_RESULT([$GST_PLUGINS_DIR])
272 plugindir="$GST_PLUGINS_DIR"
273 AC_SUBST([plugindir])
275 dnl ---------------------------------------------------------------------------
277 dnl ---------------------------------------------------------------------------
279 dnl Check for DRM/libudev
281 if test "x$enable_drm" = "xyes"; then
282 PKG_CHECK_MODULES([DRM], [libdrm libudev],
285 saved_CPPFLAGS="$CPPFLAGS"
286 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
287 AC_CHECK_HEADERS([drm_fourcc.h], [], [USE_DRM=0])
288 CPPFLAGS="$saved_CPPFLAGS"
294 if test "x$enable_x11" = "xyes"; then
295 PKG_CHECK_MODULES([X11], [x11],
298 saved_CPPFLAGS="$CPPFLAGS"
299 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
300 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [], [USE_X11=0])
301 CPPFLAGS="$saved_CPPFLAGS"
308 if test $USE_X11 -eq 1; then
309 dnl Check for XKB library
311 AC_CHECK_HEADERS([X11/XKBlib.h], [], [HAVE_XKBLIB=0])
314 PKG_CHECK_MODULES([XRANDR], [xrandr],
317 saved_CPPFLAGS="$CPPFLAGS"
318 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
319 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [], [HAVE_XRANDR=0])
320 CPPFLAGS="$saved_CPPFLAGS"
323 dnl Check for XRender
324 PKG_CHECK_MODULES([XRENDER], [xrender],
327 saved_CPPFLAGS="$CPPFLAGS"
328 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
329 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [], [HAVE_XRENDER=0])
330 CPPFLAGS="$saved_CPPFLAGS"
334 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], [$HAVE_XKBLIB],
335 [Defined to 1 if the XKB extension exists.])
336 AC_DEFINE_UNQUOTED([HAVE_XRANDR], [$HAVE_XRANDR],
337 [Defined to 1 if the XRandR extension exists.])
338 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [$HAVE_XRENDER],
339 [Defined to 1 if the XRender extension exists.])
347 if test "x$enable_opengl" = "xyes"; then
352 PKG_CHECK_MODULES([GL], [gl],
354 saved_CPPFLAGS="$CPPFLAGS"
355 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
356 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [], [HAVE_GL=0],
362 CPPFLAGS="$saved_CPPFLAGS"
364 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
372 PKG_CHECK_MODULES([GLES2], [glesv2],
374 saved_CPPFLAGS="$CPPFLAGS"
375 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
376 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [], [HAVE_GLESv2=0],
378 #ifdef HAVE_GLES2_GL2_H
379 # include <GLES2/gl2.h>
382 CPPFLAGS="$saved_CPPFLAGS"
384 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
392 PKG_CHECK_MODULES([GLES3], [glesv2],
394 saved_CPPFLAGS="$CPPFLAGS"
395 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
396 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [],
399 #ifdef HAVE_GLES3_GL3_H
400 # include <GLES3/gl3.h>
403 CPPFLAGS="$saved_CPPFLAGS"
405 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
412 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],
425 AC_CHECK_LIB([GL], [glXCreateContext], [], [USE_GLX=0])
426 CPPFLAGS="$saved_CPPFLAGS"
432 if test "x$enable_egl" = "xyes" -a $GLES_VERSION_MASK -ne 0; then
433 PKG_CHECK_MODULES([EGL], [egl],
437 saved_CPPFLAGS="$CPPFLAGS"
439 AC_CHECK_HEADERS([EGL/egl.h], [], [USE_EGL=0])
440 AC_CHECK_LIB([EGL], [eglGetDisplay], [], [USE_EGL=0])
442 dnl Check for GMODULE
443 GMODULE_VERSION_REQUIRED=gmodule_version
444 PKG_CHECK_MODULES([GMODULE],
445 [gmodule-2.0 >= $GMODULE_VERSION_REQUIRED])
446 CPPFLAGS="$saved_CPPFLAGS"
451 dnl Check for Wayland
453 if test "x$enable_wayland" = "xyes"; then
454 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= wayland_api_version],
457 saved_CPPFLAGS="$CPPFLAGS"
458 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
459 AC_CHECK_HEADERS([wayland-client.h], [], [USE_WAYLAND=0])
460 CPPFLAGS="$saved_CPPFLAGS"
464 dnl ---------------------------------------------------------------------------
466 dnl ---------------------------------------------------------------------------
469 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_version])
470 VA_VERSION_STR=`$PKG_CONFIG --modversion libva`
473 if test $USE_DRM -eq 1; then
474 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
476 saved_CPPFLAGS="$CPPFLAGS"
477 CPPFLAGS="$LIBVA_DRM_CFLAGS"
478 AC_CHECK_HEADERS([va/va_drm.h], [], [USE_DRM=0])
479 CPPFLAGS="$saved_CPPFLAGS"
484 if test $USE_X11 -eq 1; then
485 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11 >= va_api_x11_version],
489 dnl Check for va_dec_jpeg.h header
490 saved_CPPFLAGS="$CPPFLAGS"
491 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
492 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [],
496 CPPFLAGS="$saved_CPPFLAGS"
498 dnl Check for JPEG decoding API (0.32.1+)
500 AC_CACHE_CHECK([for JPEG decoding API],
501 [ac_cv_have_jpeg_decoding_api],
503 saved_CPPFLAGS="$CPPFLAGS"
504 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
506 LIBS="$LIBS $LIBVA_LIBS"
512 #ifdef HAVE_VA_VA_DEC_JPEG_H
513 # include <va/va_dec_jpeg.h>
517 VAPictureParameterBufferJPEGBaseline pic_param;
518 VASliceParameterBufferJPEGBaseline slice_param;
519 VAHuffmanTableBufferJPEGBaseline huffman_table;
520 VAIQMatrixBufferJPEGBaseline iq_matrix;
523 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
524 [ac_cv_have_jpeg_decoding_api="no"])
525 CPPFLAGS="$saved_CPPFLAGS"
529 dnl Check for va_dec_vp8.h header
530 saved_CPPFLAGS="$CPPFLAGS"
531 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
532 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [],
536 CPPFLAGS="$saved_CPPFLAGS"
538 dnl Check for VP8 decoding API (0.34+)
540 AC_CACHE_CHECK([for VP8 decoding API],
541 [ac_cv_have_vp8_decoding_api],
543 saved_CPPFLAGS="$CPPFLAGS"
544 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
546 LIBS="$LIBS $LIBVA_LIBS"
552 #ifdef HAVE_VA_VA_DEC_VP8_H
553 # include <va/va_dec_vp8.h>
557 VAPictureParameterBufferVP8 pic_param;
558 VASliceParameterBufferVP8 slice_param;
559 VAProbabilityDataBufferVP8 prob_data;
560 VAIQMatrixBufferVP8 iq_matrix;
561 slice_param.slice_data_offset = 0;
562 slice_param.slice_data_flag = 0;
565 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
566 [ac_cv_have_vp8_decoding_api="no"])
567 CPPFLAGS="$saved_CPPFLAGS"
571 dnl Check for va_dec_vp9.h header
572 saved_CPPFLAGS="$CPPFLAGS"
573 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
574 AC_CHECK_HEADERS([va/va_dec_vp9.h], [], [],
578 CPPFLAGS="$saved_CPPFLAGS"
580 dnl Check for VP9 decoding API (0.37+)
582 AC_CACHE_CHECK([for VP9 decoding API],
583 [ac_cv_have_vp9_decoding_api],
585 saved_CPPFLAGS="$CPPFLAGS"
586 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
588 LIBS="$LIBS $LIBVA_LIBS"
594 #ifdef HAVE_VA_VA_DEC_VP9_H
595 # include <va/va_dec_vp9.h>
599 VADecPictureParameterBufferVP9 pic_param;
600 VASliceParameterBufferVP9 slice_param;
601 VASegmentParameterVP9 seg_param;
602 slice_param.slice_data_offset = 0;
603 slice_param.slice_data_flag = 0;
606 [ac_cv_have_vp9_decoding_api="yes" USE_VP9_DECODER=$HAVE_GST_VP9_PARSER],
607 [ac_cv_have_vp9_decoding_api="no"])
608 CPPFLAGS="$saved_CPPFLAGS"
612 dnl Check for va_dec_hevc.h header
613 saved_CPPFLAGS="$CPPFLAGS"
614 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
615 AC_CHECK_HEADERS([va/va_dec_hevc.h], [], [],
619 CPPFLAGS="$saved_CPPFLAGS"
621 dnl Check for HEVC decoding API (0.38+)
623 AC_CACHE_CHECK([for HEVC decoding API],
624 [ac_cv_have_hevc_decoding_api],
626 saved_CPPFLAGS="$CPPFLAGS"
627 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
629 LIBS="$LIBS $LIBVA_LIBS"
635 #ifdef HAVE_VA_VA_DEC_HEVC_H
636 # include <va/va_dec_hevc.h>
640 VAPictureParameterBufferHEVC pic_param;
641 VASliceParameterBufferHEVC slice_param;
642 VAIQMatrixBufferHEVC iq_matrix;
643 slice_param.slice_data_offset = 0;
644 slice_param.slice_data_flag = 0;
647 [ac_cv_have_hevc_decoding_api="yes" USE_HEVC_DECODER=1],
648 [ac_cv_have_hevc_decoding_api="no"])
649 CPPFLAGS="$saved_CPPFLAGS"
653 dnl Check for vpp (video post-processing) support
655 AC_CACHE_CHECK([for video post-postprocessing API],
656 [ac_cv_have_va_vpp_api],
658 saved_CPPFLAGS="$CPPFLAGS"
659 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
661 LIBS="$LIBS $LIBVA_LIBS"
667 #include <va/va_vpp.h>
672 VAProcFilterType filters[VAProcFilterCount];
673 unsigned int num_filters = VAProcFilterCount;
674 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
677 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
678 [ac_cv_have_va_vpp_api="no"])
679 CPPFLAGS="$saved_CPPFLAGS"
683 dnl Check for encoding support
685 if test "x$enable_encoders" = "xyes"; then
686 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
689 saved_CPPFLAGS="$CPPFLAGS"
690 CPPFLAGS="$LIBVA_CFLAGS"
691 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h], [],
696 CPPFLAGS="$saved_CPPFLAGS"
703 if test $USE_ENCODERS -eq 1; then
704 dnl Check for JPEG Encoding API (0.37.0+)
705 AC_CHECK_HEADERS([va/va_enc_jpeg.h], [], [],
709 AC_CACHE_CHECK([for JPEG encoding API],
710 [ac_cv_have_jpeg_encoding_api],
712 saved_CPPFLAGS="$CPPFLAGS"
713 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
715 LIBS="$LIBS $LIBVA_LIBS"
721 #ifdef HAVE_VA_VA_ENC_JPEG_H
722 # include <va/va_enc_jpeg.h>
726 VAEncPictureParameterBufferJPEG pic_param;
727 VAEncSliceParameterBufferJPEG slice_param;
728 VAQMatrixBufferJPEG q_matrix;
731 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
732 [ac_cv_have_jpeg_encoding_api="no"])
733 CPPFLAGS="$saved_CPPFLAGS"
737 dnl Check for VP8 Encoding API
738 AC_CHECK_HEADERS([va/va_enc_vp8.h], [], [],
742 AC_CACHE_CHECK([for VP8 encoding API],
743 [ac_cv_have_vp8_encoding_api],
745 saved_CPPFLAGS="$CPPFLAGS"
746 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
748 LIBS="$LIBS $LIBVA_LIBS"
754 #ifdef HAVE_VA_VA_ENC_VP8_H
755 # include <va/va_enc_vp8.h>
759 VAEncSequenceParameterBufferVP8 seq_param;
760 VAEncPictureParameterBufferVP8 pic_param;
761 VAQMatrixBufferVP8 q_matrix;
764 [ac_cv_have_vp8_encoding_api="yes" USE_VP8_ENCODER=1],
765 [ac_cv_have_vp8_encoding_api="no"])
766 CPPFLAGS="$saved_CPPFLAGS"
770 dnl Check for H265/HEVC Encoding API
771 AC_CHECK_HEADERS([va/va_enc_hevc.h], [], [],
775 AC_CACHE_CHECK([for HEVC encoding API],
776 [ac_cv_have_hevc_encoding_api],
778 saved_CPPFLAGS="$CPPFLAGS"
779 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
781 LIBS="$LIBS $LIBVA_LIBS"
787 #ifdef HAVE_VA_VA_ENC_HEVC_H
788 # include <va/va_enc_hevc.h>
792 VAEncSequenceParameterBufferHEVC seq_param;
793 VAEncPictureParameterBufferHEVC pic_param;
794 VAEncSliceParameterBufferHEVC buf_param;
795 VAQMatrixBufferHEVC q_matrix;
798 [ac_cv_have_hevc_encoding_api="yes" USE_H265_ENCODER=1],
799 [ac_cv_have_hevc_encoding_api="no"])
800 CPPFLAGS="$saved_CPPFLAGS"
806 if test $USE_WAYLAND -eq 1; then
807 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
811 dnl ---------------------------------------------------------------------------
812 dnl -- Generate files and summary --
813 dnl ---------------------------------------------------------------------------
815 case ":$USE_X11:$USE_GLX:$USE_EGL:$USE_WAYLAND:$USE_DRM:" in
817 *) AC_MSG_ERROR([No renderer is enabled]) ;;
820 AC_DEFINE_UNQUOTED([USE_ENCODERS], [$USE_ENCODERS],
821 [Defined to 1 if video encoders are used])
822 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
824 AC_DEFINE_UNQUOTED([USE_JPEG_ENCODER], [$USE_JPEG_ENCODER],
825 [Defined to 1 if JPEG encoder is used])
826 AM_CONDITIONAL([USE_JPEG_ENCODER], [test $USE_JPEG_ENCODER -eq 1])
828 AC_DEFINE_UNQUOTED([USE_VP8_ENCODER], [$USE_VP8_ENCODER],
829 [Defined to 1 if VP8 encoder is used])
830 AM_CONDITIONAL([USE_VP8_ENCODER], [test $USE_VP8_ENCODER -eq 1])
832 AC_DEFINE_UNQUOTED([USE_H265_ENCODER], [$USE_H265_ENCODER],
833 [Defined to 1 if H265 encoder is used])
834 AM_CONDITIONAL([USE_H265_ENCODER], [test $USE_H265_ENCODER -eq 1])
836 AC_DEFINE_UNQUOTED([USE_VA_VPP], [$USE_VA_VPP],
837 [Defined to 1 if video post-processing is used])
838 AM_CONDITIONAL([USE_VA_VPP], [test $USE_VA_VPP -eq 1])
840 AC_DEFINE_UNQUOTED([USE_JPEG_DECODER], [$USE_JPEG_DECODER],
841 [Defined to 1 if JPEG decoder is used])
842 AM_CONDITIONAL([USE_JPEG_DECODER], [test $USE_JPEG_DECODER -eq 1])
844 AC_DEFINE_UNQUOTED([USE_VP8_DECODER], [$USE_VP8_DECODER],
845 [Defined to 1 if VP8 decoder is used])
846 AM_CONDITIONAL([USE_VP8_DECODER], [test $USE_VP8_DECODER -eq 1])
848 AC_DEFINE_UNQUOTED([USE_VP9_DECODER], [$USE_VP9_DECODER],
849 [Defined to 1 if VP9 decoder is used])
850 AM_CONDITIONAL([USE_VP9_DECODER], [test $USE_VP9_DECODER -eq 1])
852 AC_DEFINE_UNQUOTED([USE_HEVC_DECODER], [$USE_HEVC_DECODER],
853 [Defined to 1 if HEVC decoder is used])
854 AM_CONDITIONAL([USE_HEVC_DECODER], [test $USE_HEVC_DECODER -eq 1])
856 AC_DEFINE_UNQUOTED([USE_DRM], [$USE_DRM],
857 [Defined to 1 if DRM is enabled])
858 AM_CONDITIONAL([USE_DRM], [test $USE_DRM -eq 1])
860 AC_DEFINE_UNQUOTED([USE_X11], [$USE_X11],
861 [Defined to 1 if X11 is enabled])
862 AM_CONDITIONAL([USE_X11], [test $USE_X11 -eq 1])
864 AC_DEFINE_UNQUOTED([USE_GLX], [$USE_GLX],
865 [Defined to 1 if GLX is enabled])
866 AM_CONDITIONAL([USE_GLX], [test $USE_GLX -eq 1])
868 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
869 [Defined to 1 if EGL is enabled])
870 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
872 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
873 [Defined to the set of enabled OpenGL ES APIs])
875 AC_DEFINE_UNQUOTED([USE_WAYLAND], [$USE_WAYLAND],
876 [Defined to 1 if WAYLAND is enabled])
877 AM_CONDITIONAL([USE_WAYLAND], [test $USE_WAYLAND -eq 1])
879 dnl @TODO hack for egl's dynamic module loading. remove it!
880 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["0"],
881 [Defined to the string representation of gstreamer-vaapi major version])
886 docs/reference/Makefile
887 docs/reference/plugins/Makefile
888 docs/reference/plugins/plugins-docs.xml
890 gst-libs/gst/Makefile
891 gst-libs/gst/base/Makefile
892 gst-libs/gst/vaapi/Makefile
901 test $1 -eq 1 && echo yes || echo no
905 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
906 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
907 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
908 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
909 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
912 echo $PACKAGE configuration summary:
914 echo Installation Prefix .............. : ${prefix}
915 echo GStreamer API version ............ : $GST_API_VERSION
916 echo VA-API version ................... : $VA_VERSION_STR
917 echo Video encoding ................... : $(yesno $USE_ENCODERS)
918 echo Video outputs .................... : $VIDEO_OUTPUTS