1 # gstreamer-vaapi package version number
2 m4_define([gst_vaapi_major_version], [1])
3 m4_define([gst_vaapi_minor_version], [7])
4 m4_define([gst_vaapi_micro_version], [0])
5 m4_define([gst_vaapi_nano_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_nano_version, [0], [],
9 [m4_append([gst_vaapi_version], gst_vaapi_nano_version, [.])])
12 m4_define([default_glapi], [any])
14 dnl - library source changed -> increment REVISION
15 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
16 dnl - interfaces added -> increment AGE
17 dnl - interfaces removed -> AGE = 0
18 # gstreamer-vaapi library (libtool) version number
19 m4_define([gst_vaapi_lt_current], [700])
20 m4_define([gst_vaapi_lt_revision], [0])
21 m4_define([gst_vaapi_lt_age], [700])
24 m4_define([glib_version], [2.32])
26 # gstreamer version number
27 m4_define([gst_version], [1.7.1.1])
28 m4_define([gst_plugins_base_version], [1.7.1.1])
29 m4_define([gst_plugins_bad_version], [1.7.1.1])
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 dnl define the output header for config
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 dnl initialize automake
59 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
61 dnl define PACKAGE_VERSION_* variables
64 dnl check if this is a release version
65 AS_NANO(GST_GIT="no", GST_GIT="yes")
67 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
68 AM_MAINTAINER_MODE([enable])
70 dnl use pretty build output by default
71 AM_SILENT_RULES([yes])
73 dnl our libraries and install dirs use GST_API_VERSION in the filename
74 dnl to allow side-by-side installation of different API versions
76 AC_SUBST([GST_API_VERSION])
77 AC_DEFINE_UNQUOTED([GST_API_VERSION], ["$GST_API_VERSION"],
78 [GStreamer API Version])
80 AG_GST_LIBTOOL_PREPARE
82 dnl CURRENT, REVISION, AGE
83 dnl sets GST_LT_LDFLAGS
84 AS_LIBTOOL(GST, gst_vaapi_lt_current, gst_vaapi_lt_revision, gst_vaapi_lt_age)
86 dnl *** required versions of GStreamer stuff ***
89 GST_PBREQ=gst_plugins_base_version
90 GST_PBADREQ=gst_plugins_bad_version
91 WAYLAND_REQ=wayland_api_version
92 GTKDOC_REQ=gtkdoc_version
94 dnl *** required versions of VA-API stuff ***
95 VAAPI_REQ=va_api_version
96 VAAPI_ENC_REQ=va_api_enc_version
97 VAAPI_DRM_REQ=va_api_drm_version
98 VAAPI_X11_REQ=va_api_x11_version
99 VAAPI_WLD_REQ=va_api_wld_version
101 dnl *** autotools stuff ****
103 dnl allow for different autotools
104 AS_AUTOTOOLS_ALTERNATE
106 dnl Add parameters for aclocal
107 AC_SUBST([ACLOCAL_AMFLAGS], ["-I m4 -I common/m4"])
109 dnl *** check for arguments to configure ***
111 AG_GST_ARG_DISABLE_FATAL_WARNINGS
114 AG_GST_ARG_WITH_PKG_CONFIG_PATH
116 AC_ARG_ENABLE([encoders],
117 AS_HELP_STRING([--enable-encoders],
118 [enable video encoders @<:@default=yes@:>@]),
119 [], [enable_encoders="yes"])
122 AS_HELP_STRING([--enable-drm],
123 [enable DRM backend @<:@default=yes@:>@]),
124 [], [enable_drm="yes"])
127 AS_HELP_STRING([--enable-x11],
128 [enable X11 output @<:@default=yes@:>@]),
129 [], [enable_x11="yes"])
132 AS_HELP_STRING([--enable-glx],
133 [enable OpenGL/X11 output @<:@default=yes@:>@]),
134 [], [enable_glx="yes"])
136 AC_ARG_ENABLE([wayland],
137 AC_HELP_STRING([--enable-wayland],
138 [enable Wayland output @<:@default=yes@:>@]),
139 [], [enable_wayland="yes"])
142 AS_HELP_STRING([--enable-egl],
143 [enable EGL output @<:@default=yes@:>@]),
144 [], [enable_egl="yes"])
147 AS_HELP_STRING([--with-glapi=APIs],
148 [build with the specified OpenGL APIs @<:@default=default_glapi@:>@]),
149 [GLAPI="$with_glapi"], [GLAPI=default_glapi])
151 dnl *** checks for platform ***
153 dnl * hardware/architecture *
158 dnl *** checks for programs ***
164 dnl check if the compiler supports '-c' and '-o' options
167 dnl check for git command for version generation in libgstvaapi
168 AC_PATH_PROG([GIT], [git])
169 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
171 dnl check for documentation tools
172 GTK_DOC_CHECK([$GTKDOC_REQ])
173 AG_GST_PLUGIN_DOCS([$GTKDOC_REQ])
175 dnl *** checks for libraries ***
176 dnl check for libm, for sin() etc.
177 AC_CHECK_LIB([m], [tan])
179 dnl Check to see if dlopen is in default libraries (like Solaris, which
180 dnl has it in libc), or if libdl is needed to get it.
181 AC_CHECK_FUNC([dlopen], [], [
182 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
183 AC_SUBST([DLOPEN_LIBS])
185 dnl define LIBDIR so we can inform people where we live
186 AS_AC_EXPAND([LIBDIR], [$libdir])
187 AC_DEFINE_UNQUOTED([LIBDIR], ["$LIBDIR"], [library dir])
189 dnl set location of plugin directory
192 dnl *** checks for header files ***
194 dnl *** checks for types/defines ***
196 dnl *** checks for structures ***
198 dnl *** checks for compiler characteristics ***
200 dnl *** checks for library functions ***
202 dnl *** checks for headers ***
204 dnl *** checks for dependency libraries ***
206 dnl ---------------------------------------------------------------------------
208 dnl ---------------------------------------------------------------------------
210 AG_GST_GLIB_CHECK([$GLIB_REQ])
212 dnl checks for gstreamer
213 dnl uninstalled is selected preferentially -- see pkg-config(1)
214 AG_GST_CHECK_GST([$GST_API_VERSION], [$GST_REQ], [yes])
216 dnl back compatibility
217 AC_MSG_CHECKING([for GStreamer API version])
218 gst_api_version=`$PKG_CONFIG --modversion "gstreamer-$GST_API_VERSION"`
219 gst_major_version=`echo "$gst_api_version" | cut -d'.' -f1`
220 gst_minor_version=`echo "$gst_api_version" | cut -d'.' -f2`
221 GST_VERSION="${gst_major_version}.${gst_minor_version}"
222 AC_MSG_RESULT([$GST_VERSION])
223 AC_DEFINE_UNQUOTED([GST_API_VERSION_S], ["$GST_VERSION"],
224 [Defined to the string representation of GStreamer version])
226 AG_GST_CHECK_GST_BASE([$GST_API_VERSION], [$GST_REQ], [yes])
227 AG_GST_CHECK_GST_PLUGINS_BASE([$GST_API_VERSION], [$GST_PBREQ], [yes])
229 dnl gst_dmabuf_memory_get_fd (gstreamer-allocators)
230 AG_GST_CHECK_MODULES([GST_ALLOCATORS],
231 [gstreamer-allocators-$GST_API_VERSION], [$GST_PBREQ], [yes])
233 dnl GstVideoOverlayComposition (gstreamer-video)
234 AG_GST_CHECK_MODULES([GST_VIDEO],
235 [gstreamer-video-$GST_API_VERSION], [$GST_PBREQ], [yes])
237 dnl ... GStreamer base utils (gstreamer-pbutils)
238 AG_GST_CHECK_MODULES([GST_PBUTILS],
239 [gstreamer-pbutils-$GST_API_VERSION], [$GST_PBREQ], [yes])
241 dnl bitstream parsers (gstreamer-codecparsers)
242 AG_GST_CHECK_MODULES([GST_CODEC_PARSERS],
243 [gstreamer-codecparsers-$GST_API_VERSION], [$GST_PBADREQ], [yes])
245 dnl ... VP9 parser, with required extensions
246 HAVE_GST_VP9_PARSER=0
247 AC_CACHE_CHECK([for VP9 parser],
248 [ac_cv_have_gst_vp9_parser],
250 saved_CPPFLAGS="$CPPFLAGS"
251 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
253 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
258 #include <gst/codecparsers/gstvp9parser.h>
261 GstVp9FrameHdr frame_hdr;
264 [ac_cv_have_gst_vp9_parser="yes"],
265 [ac_cv_have_gst_vp9_parser="no"])
266 CPPFLAGS="$saved_CPPFLAGS"
269 AS_IF([test "x$ac_cv_have_gst_vp9_parser" = "xyes"], [HAVE_GST_VP9_PARSER=1])
271 AS_IF([test "x$enable_glx" = "xyes" -o "x$enable_egl" = "xyes"],
272 [enable_opengl="yes"], [enable_opengl="no"])
274 dnl ... opengl helper libraries
276 if test "x$enable_opengl" = "xyes"; then
277 PKG_CHECK_MODULES([GST_GL],
278 [gstreamer-gl-$GST_API_VERSION >= $GST_PBADREQ],
281 AC_CACHE_CHECK([for GStreamer OpenGL helper libraries],
282 [ac_cv_have_gst_gl_helpers],
284 saved_CPPFLAGS="$CPPFLAGS"
285 CPPFLAGS="$CPPFLAGS $GST_GL_CFLAGS $GST_VIDEO_CFLAGS"
288 AC_CHECK_HEADERS([gst/gl/gl.h], [], [HAVE_GSTGL=0])
293 #include <gst/gl/gl.h>
296 GstGLContext gl_context;
299 [ac_cv_have_gst_gl_helpers="yes"],
300 [ac_cv_have_gst_gl_helpers="no"])
301 CPPFLAGS="$saved_CPPFLAGS"
306 AS_IF([test "x$ac_cv_have_gst_gl_helpers" = "xno"], [HAVE_GSTGL=0])
307 AM_CONDITIONAL([USE_GST_GL_HELPERS], [test $HAVE_GSTGL -eq 1])
308 AC_DEFINE_UNQUOTED([USE_GST_GL_HELPERS], [$HAVE_GSTGL],
309 [Defined to 1 if GStreamer OpenGL helper libraries are available])
311 if test "x$enable_egl" = "xyes" -a $HAVE_GSTGL -ne 1; then
312 AC_MSG_WARN([GStreamer/GL helper libraries not found, disabling EGL support])
316 dnl ---------------------------------------------------------------------------
318 dnl ---------------------------------------------------------------------------
320 dnl Check for DRM/libudev
322 if test "x$enable_drm" = "xyes"; then
323 PKG_CHECK_MODULES([DRM], [libdrm libudev],
326 saved_CPPFLAGS="$CPPFLAGS"
327 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
328 AC_CHECK_HEADERS([drm_fourcc.h], [], [USE_DRM=0])
329 CPPFLAGS="$saved_CPPFLAGS"
335 if test "x$enable_x11" = "xyes"; then
336 PKG_CHECK_MODULES([X11], [x11],
339 saved_CPPFLAGS="$CPPFLAGS"
340 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
341 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [], [USE_X11=0])
342 CPPFLAGS="$saved_CPPFLAGS"
349 if test $USE_X11 -eq 1; then
350 dnl Check for XKB library
352 AC_CHECK_HEADERS([X11/XKBlib.h], [], [HAVE_XKBLIB=0])
355 PKG_CHECK_MODULES([XRANDR], [xrandr],
358 saved_CPPFLAGS="$CPPFLAGS"
359 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
360 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [], [HAVE_XRANDR=0])
361 CPPFLAGS="$saved_CPPFLAGS"
364 dnl Check for XRender
365 PKG_CHECK_MODULES([XRENDER], [xrender],
368 saved_CPPFLAGS="$CPPFLAGS"
369 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
370 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [], [HAVE_XRENDER=0])
371 CPPFLAGS="$saved_CPPFLAGS"
375 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], [$HAVE_XKBLIB],
376 [Defined to 1 if the XKB extension exists.])
377 AC_DEFINE_UNQUOTED([HAVE_XRANDR], [$HAVE_XRANDR],
378 [Defined to 1 if the XRandR extension exists.])
379 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [$HAVE_XRENDER],
380 [Defined to 1 if the XRender extension exists.])
388 if test "x$enable_opengl" = "xyes"; then
393 PKG_CHECK_MODULES([GL], [gl],
395 saved_CPPFLAGS="$CPPFLAGS"
396 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
397 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [], [HAVE_GL=0],
403 CPPFLAGS="$saved_CPPFLAGS"
405 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GL "*" 1`
413 PKG_CHECK_MODULES([GLES2], [glesv2],
415 saved_CPPFLAGS="$CPPFLAGS"
416 CPPFLAGS="$CPPFLAGS $GLES2_CFLAGS"
417 AC_CHECK_HEADERS([GLES2/gl2.h GLES2/gl2ext.h], [], [HAVE_GLESv2=0],
419 #ifdef HAVE_GLES2_GL2_H
420 # include <GLES2/gl2.h>
423 CPPFLAGS="$saved_CPPFLAGS"
425 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv2 "*" 4`
433 PKG_CHECK_MODULES([GLES3], [glesv2],
435 saved_CPPFLAGS="$CPPFLAGS"
436 CPPFLAGS="$CPPFLAGS $GLES3_CFLAGS"
437 AC_CHECK_HEADERS([GLES3/gl3.h GLES3/gl3ext.h GLES2/gl2ext.h], [],
440 #ifdef HAVE_GLES3_GL3_H
441 # include <GLES3/gl3.h>
444 CPPFLAGS="$saved_CPPFLAGS"
446 GLES_VERSION_MASK=`expr $GLES_VERSION_MASK "+" $HAVE_GLESv3 "*" 8`
453 if test "x$enable_glx" = "xyes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
456 saved_CPPFLAGS="$CPPFLAGS"
458 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
459 LIBS="$LIBS $GL_LIBS"
460 AC_CHECK_HEADERS([GL/glx.h], [], [USE_GLX=0],
466 AC_CHECK_LIB([GL], [glXCreateContext], [], [USE_GLX=0])
467 CPPFLAGS="$saved_CPPFLAGS"
473 if test "x$enable_egl" = "xyes" -a $GLES_VERSION_MASK -ne 0; then
474 PKG_CHECK_MODULES([EGL], [egl],
478 saved_CPPFLAGS="$CPPFLAGS"
480 AC_CHECK_HEADERS([EGL/egl.h], [], [USE_EGL=0])
481 AC_CHECK_LIB([EGL], [eglGetDisplay], [], [USE_EGL=0])
482 CPPFLAGS="$saved_CPPFLAGS"
485 dnl Check for GMODULE
486 PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= $GLIB_REQ])
490 dnl Check for Wayland
492 if test "x$enable_wayland" = "xyes"; then
493 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQ],
496 saved_CPPFLAGS="$CPPFLAGS"
497 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
498 AC_CHECK_HEADERS([wayland-client.h], [], [USE_WAYLAND=0])
499 CPPFLAGS="$saved_CPPFLAGS"
503 dnl ---------------------------------------------------------------------------
505 dnl ---------------------------------------------------------------------------
508 PKG_CHECK_MODULES([LIBVA], [libva >= $VAAPI_REQ])
509 VA_VERSION_STR=`$PKG_CONFIG --modversion libva`
512 if test $USE_DRM -eq 1; then
513 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= $VAAPI_DRM_REQ],
515 saved_CPPFLAGS="$CPPFLAGS"
516 CPPFLAGS="$LIBVA_DRM_CFLAGS"
517 AC_CHECK_HEADERS([va/va_drm.h], [], [USE_DRM=0])
518 CPPFLAGS="$saved_CPPFLAGS"
523 if test $USE_X11 -eq 1; then
524 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11 >= $VAAPI_X11_REQ],
528 dnl Check for va_dec_jpeg.h header
529 saved_CPPFLAGS="$CPPFLAGS"
530 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
531 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [],
535 CPPFLAGS="$saved_CPPFLAGS"
537 dnl Check for JPEG decoding API (0.32.1+)
539 AC_CACHE_CHECK([for JPEG decoding API],
540 [ac_cv_have_jpeg_decoding_api],
542 saved_CPPFLAGS="$CPPFLAGS"
543 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
545 LIBS="$LIBS $LIBVA_LIBS"
551 #ifdef HAVE_VA_VA_DEC_JPEG_H
552 # include <va/va_dec_jpeg.h>
556 VAPictureParameterBufferJPEGBaseline pic_param;
557 VASliceParameterBufferJPEGBaseline slice_param;
558 VAHuffmanTableBufferJPEGBaseline huffman_table;
559 VAIQMatrixBufferJPEGBaseline iq_matrix;
562 [ac_cv_have_jpeg_decoding_api="yes"],
563 [ac_cv_have_jpeg_decoding_api="no"])
564 CPPFLAGS="$saved_CPPFLAGS"
567 AS_IF([test "x$ac_cv_have_jpeg_decoding_api" = "xyes"], [USE_JPEG_DECODER=1])
569 dnl Check for va_dec_vp8.h header
570 saved_CPPFLAGS="$CPPFLAGS"
571 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
572 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [],
576 CPPFLAGS="$saved_CPPFLAGS"
578 dnl Check for VP8 decoding API (0.34+)
580 AC_CACHE_CHECK([for VP8 decoding API],
581 [ac_cv_have_vp8_decoding_api],
583 saved_CPPFLAGS="$CPPFLAGS"
584 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
586 LIBS="$LIBS $LIBVA_LIBS"
592 #ifdef HAVE_VA_VA_DEC_VP8_H
593 # include <va/va_dec_vp8.h>
597 VAPictureParameterBufferVP8 pic_param;
598 VASliceParameterBufferVP8 slice_param;
599 VAProbabilityDataBufferVP8 prob_data;
600 VAIQMatrixBufferVP8 iq_matrix;
601 slice_param.slice_data_offset = 0;
602 slice_param.slice_data_flag = 0;
605 [ac_cv_have_vp8_decoding_api="yes"],
606 [ac_cv_have_vp8_decoding_api="no"])
607 CPPFLAGS="$saved_CPPFLAGS"
610 AS_IF([test "x$ac_cv_have_vp8_decoding_api" = "xyes"], [USE_VP8_DECODER=1])
612 dnl Check for va_dec_vp9.h header
613 saved_CPPFLAGS="$CPPFLAGS"
614 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
615 AC_CHECK_HEADERS([va/va_dec_vp9.h], [], [],
619 CPPFLAGS="$saved_CPPFLAGS"
621 dnl Check for VP9 decoding API (0.37+)
623 AC_CACHE_CHECK([for VP9 decoding API],
624 [ac_cv_have_vp9_decoding_api],
626 saved_CPPFLAGS="$CPPFLAGS"
627 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
629 LIBS="$LIBS $LIBVA_LIBS"
635 #ifdef HAVE_VA_VA_DEC_VP9_H
636 # include <va/va_dec_vp9.h>
640 VADecPictureParameterBufferVP9 pic_param;
641 VASliceParameterBufferVP9 slice_param;
642 VASegmentParameterVP9 seg_param;
643 slice_param.slice_data_offset = 0;
644 slice_param.slice_data_flag = 0;
647 [ac_cv_have_vp9_decoding_api="yes"],
648 [ac_cv_have_vp9_decoding_api="no"])
649 CPPFLAGS="$saved_CPPFLAGS"
652 AS_IF([test "x$ac_cv_have_vp9_decoding_api" = "xyes"],
653 [USE_VP9_DECODER=$HAVE_GST_VP9_PARSER])
655 dnl Check for va_dec_hevc.h header
656 saved_CPPFLAGS="$CPPFLAGS"
657 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
658 AC_CHECK_HEADERS([va/va_dec_hevc.h], [], [],
662 CPPFLAGS="$saved_CPPFLAGS"
664 dnl Check for HEVC decoding API (0.38+)
666 AC_CACHE_CHECK([for HEVC decoding API],
667 [ac_cv_have_hevc_decoding_api],
669 saved_CPPFLAGS="$CPPFLAGS"
670 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
672 LIBS="$LIBS $LIBVA_LIBS"
678 #ifdef HAVE_VA_VA_DEC_HEVC_H
679 # include <va/va_dec_hevc.h>
683 VAPictureParameterBufferHEVC pic_param;
684 VASliceParameterBufferHEVC slice_param;
685 VAIQMatrixBufferHEVC iq_matrix;
686 slice_param.slice_data_offset = 0;
687 slice_param.slice_data_flag = 0;
690 [ac_cv_have_hevc_decoding_api="yes"],
691 [ac_cv_have_hevc_decoding_api="no"])
692 CPPFLAGS="$saved_CPPFLAGS"
695 AS_IF([test "x$ac_cv_have_hevc_decoding_api" = "xyes"], [USE_HEVC_DECODER=1])
697 dnl Check for vpp (video post-processing) support
699 AC_CACHE_CHECK([for video post-postprocessing API],
700 [ac_cv_have_va_vpp_api],
702 saved_CPPFLAGS="$CPPFLAGS"
703 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
705 LIBS="$LIBS $LIBVA_LIBS"
711 #include <va/va_vpp.h>
716 VAProcFilterType filters[VAProcFilterCount];
717 unsigned int num_filters = VAProcFilterCount;
718 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
721 [ac_cv_have_va_vpp_api="yes"],
722 [ac_cv_have_va_vpp_api="no"])
723 CPPFLAGS="$saved_CPPFLAGS"
726 AS_IF([test "x$ac_cv_have_va_vpp_api" = "xyes"], [USE_VA_VPP=1])
728 dnl Check for encoding support
730 if test "x$enable_encoders" = "xyes"; then
731 PKG_CHECK_MODULES([LIBVA], [libva >= $VAAPI_ENC_REQ],
734 saved_CPPFLAGS="$CPPFLAGS"
735 CPPFLAGS="$LIBVA_CFLAGS"
736 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h], [],
741 CPPFLAGS="$saved_CPPFLAGS"
748 if test $USE_ENCODERS -eq 1; then
749 dnl Check for JPEG Encoding API (0.37.0+)
750 AC_CHECK_HEADERS([va/va_enc_jpeg.h], [], [],
754 AC_CACHE_CHECK([for JPEG encoding API],
755 [ac_cv_have_jpeg_encoding_api],
757 saved_CPPFLAGS="$CPPFLAGS"
758 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
760 LIBS="$LIBS $LIBVA_LIBS"
766 #ifdef HAVE_VA_VA_ENC_JPEG_H
767 # include <va/va_enc_jpeg.h>
771 VAEncPictureParameterBufferJPEG pic_param;
772 VAEncSliceParameterBufferJPEG slice_param;
773 VAQMatrixBufferJPEG q_matrix;
776 [ac_cv_have_jpeg_encoding_api="yes"],
777 [ac_cv_have_jpeg_encoding_api="no"])
778 CPPFLAGS="$saved_CPPFLAGS"
781 AS_IF([test "x$ac_cv_have_jpeg_encoding_api" = "xyes"], [USE_JPEG_ENCODER=1])
783 dnl Check for VP8 Encoding API
784 AC_CHECK_HEADERS([va/va_enc_vp8.h], [], [],
788 AC_CACHE_CHECK([for VP8 encoding API],
789 [ac_cv_have_vp8_encoding_api],
791 saved_CPPFLAGS="$CPPFLAGS"
792 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
794 LIBS="$LIBS $LIBVA_LIBS"
800 #ifdef HAVE_VA_VA_ENC_VP8_H
801 # include <va/va_enc_vp8.h>
805 VAEncSequenceParameterBufferVP8 seq_param;
806 VAEncPictureParameterBufferVP8 pic_param;
807 VAQMatrixBufferVP8 q_matrix;
810 [ac_cv_have_vp8_encoding_api="yes"],
811 [ac_cv_have_vp8_encoding_api="no"])
812 CPPFLAGS="$saved_CPPFLAGS"
815 AS_IF([test "x$ac_cv_have_vp8_encoding_api" = "xyes"], [USE_VP8_ENCODER=1])
817 dnl Check for H265/HEVC Encoding API
818 AC_CHECK_HEADERS([va/va_enc_hevc.h], [], [],
822 AC_CACHE_CHECK([for HEVC encoding API],
823 [ac_cv_have_hevc_encoding_api],
825 saved_CPPFLAGS="$CPPFLAGS"
826 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
828 LIBS="$LIBS $LIBVA_LIBS"
834 #ifdef HAVE_VA_VA_ENC_HEVC_H
835 # include <va/va_enc_hevc.h>
839 VAEncSequenceParameterBufferHEVC seq_param;
840 VAEncPictureParameterBufferHEVC pic_param;
841 VAEncSliceParameterBufferHEVC buf_param;
842 VAQMatrixBufferHEVC q_matrix;
845 [ac_cv_have_hevc_encoding_api="yes"],
846 [ac_cv_have_hevc_encoding_api="no"])
847 CPPFLAGS="$saved_CPPFLAGS"
850 AS_IF([test "x$ac_cv_have_hevc_encoding_api" = "xyes"], [USE_H265_ENCODER=1])
854 if test $USE_WAYLAND -eq 1; then
855 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= $VAAPI_WLD_REQ],
859 dnl *** finalize CFLAGS, LDFLAGS, LIBS
861 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
862 dnl make sure it doesn't complain about unused variables if debugging is disabled
864 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [
865 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
866 -Wwrite-strings -Wformat-security -Wold-style-definition
867 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
868 -Wnested-externs $NO_WARNINGS])
870 dnl define an ERROR_CFLAGS Makefile variable
871 AG_GST_SET_ERROR_CFLAGS([$FATAL_WARNINGS], [$NO_WARNINGS])
873 dnl define correct level for debugging messages
874 AG_GST_SET_LEVEL_DEFAULT([$GST_GIT])
877 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
878 dnl GST_*: flags shared by built objects to link against GStreamer
879 dnl GST_ALL_LDFLAGS: linker flags shared by all
880 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
881 dnl GST_LT_LDFLAGS: library versioning of our libraries
882 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
884 dnl GST_OPTION_CFLAGS
885 if test "x$USE_DEBUG" = xyes; then
888 AC_SUBST([PROFILE_CFLAGS])
890 if test "x$GST_GIT" = "xyes"; then
891 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
895 AC_SUBST([DEPRECATED_CFLAGS])
897 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
898 dnl at make time with e.g. make ERROR_CFLAGS=""
899 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(DEPRECATED_CFLAGS)"
900 AC_SUBST([GST_OPTION_CFLAGS])
902 dnl FIXME: do we want to rename to GST_ALL_* ?
903 dnl prefer internal headers to already installed ones
904 dnl also add builddir include for enumtypes and marshal
905 dnl add GST_OPTION_CFLAGS, but overridable
906 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
907 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
908 AC_SUBST([GST_CFLAGS])
910 dnl LDFLAGS really should only contain flags, not libs - they get added before
911 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
912 GST_ALL_LDFLAGS="-no-undefined"
913 if test "x${enable_Bsymbolic}" = "xyes"; then
914 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
916 AC_SUBST([GST_ALL_LDFLAGS])
919 dnl linker flags shared by all libraries
920 dnl LDFLAGS modifier defining exported symbols from built libraries
921 dnl (export _gst_foo but not __gst_foo)
922 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
923 AC_SUBST([GST_LIB_LDFLAGS])
925 dnl this really should only contain flags, not libs - they get added before
926 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
927 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
928 AC_SUBST([GST_PLUGIN_LDFLAGS])
930 dnl ---------------------------------------------------------------------------
931 dnl -- Generate files and summary --
932 dnl ---------------------------------------------------------------------------
934 case ":$USE_X11:$USE_GLX:$USE_EGL:$USE_WAYLAND:$USE_DRM:" in
936 *) AC_MSG_ERROR([No renderer is enabled]) ;;
939 AC_DEFINE_UNQUOTED([USE_ENCODERS], [$USE_ENCODERS],
940 [Defined to 1 if video encoders are used])
941 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
943 AC_DEFINE_UNQUOTED([USE_JPEG_ENCODER], [$USE_JPEG_ENCODER],
944 [Defined to 1 if JPEG encoder is used])
945 AM_CONDITIONAL([USE_JPEG_ENCODER], [test $USE_JPEG_ENCODER -eq 1])
947 AC_DEFINE_UNQUOTED([USE_VP8_ENCODER], [$USE_VP8_ENCODER],
948 [Defined to 1 if VP8 encoder is used])
949 AM_CONDITIONAL([USE_VP8_ENCODER], [test $USE_VP8_ENCODER -eq 1])
951 AC_DEFINE_UNQUOTED([USE_H265_ENCODER], [$USE_H265_ENCODER],
952 [Defined to 1 if H265 encoder is used])
953 AM_CONDITIONAL([USE_H265_ENCODER], [test $USE_H265_ENCODER -eq 1])
955 AC_DEFINE_UNQUOTED([USE_VA_VPP], [$USE_VA_VPP],
956 [Defined to 1 if video post-processing is used])
957 AM_CONDITIONAL([USE_VA_VPP], [test $USE_VA_VPP -eq 1])
959 AC_DEFINE_UNQUOTED([USE_JPEG_DECODER], [$USE_JPEG_DECODER],
960 [Defined to 1 if JPEG decoder is used])
961 AM_CONDITIONAL([USE_JPEG_DECODER], [test $USE_JPEG_DECODER -eq 1])
963 AC_DEFINE_UNQUOTED([USE_VP8_DECODER], [$USE_VP8_DECODER],
964 [Defined to 1 if VP8 decoder is used])
965 AM_CONDITIONAL([USE_VP8_DECODER], [test $USE_VP8_DECODER -eq 1])
967 AC_DEFINE_UNQUOTED([USE_VP9_DECODER], [$USE_VP9_DECODER],
968 [Defined to 1 if VP9 decoder is used])
969 AM_CONDITIONAL([USE_VP9_DECODER], [test $USE_VP9_DECODER -eq 1])
971 AC_DEFINE_UNQUOTED([USE_HEVC_DECODER], [$USE_HEVC_DECODER],
972 [Defined to 1 if HEVC decoder is used])
973 AM_CONDITIONAL([USE_HEVC_DECODER], [test $USE_HEVC_DECODER -eq 1])
975 AC_DEFINE_UNQUOTED([USE_DRM], [$USE_DRM],
976 [Defined to 1 if DRM is enabled])
977 AM_CONDITIONAL([USE_DRM], [test $USE_DRM -eq 1])
979 AC_DEFINE_UNQUOTED([USE_X11], [$USE_X11],
980 [Defined to 1 if X11 is enabled])
981 AM_CONDITIONAL([USE_X11], [test $USE_X11 -eq 1])
983 AC_DEFINE_UNQUOTED([USE_GLX], [$USE_GLX],
984 [Defined to 1 if GLX is enabled])
985 AM_CONDITIONAL([USE_GLX], [test $USE_GLX -eq 1])
987 AC_DEFINE_UNQUOTED([USE_EGL], [$USE_EGL],
988 [Defined to 1 if EGL is enabled])
989 AM_CONDITIONAL([USE_EGL], [test $USE_EGL -eq 1])
991 AC_DEFINE_UNQUOTED([USE_GLES_VERSION_MASK], [$GLES_VERSION_MASK],
992 [Defined to the set of enabled OpenGL ES APIs])
994 AC_DEFINE_UNQUOTED([USE_WAYLAND], [$USE_WAYLAND],
995 [Defined to 1 if WAYLAND is enabled])
996 AM_CONDITIONAL([USE_WAYLAND], [test $USE_WAYLAND -eq 1])
998 dnl @TODO hack for egl's dynamic module loading. remove it!
999 AC_DEFINE_UNQUOTED([GST_VAAPI_MAJOR_VERSION_S], ["0"],
1000 [Defined to the string representation of gstreamer-vaapi major version])
1007 docs/version.entities
1008 docs/plugins/Makefile
1009 docs/plugins/gstreamer-vaapi-plugins-docs.xml
1011 gst-libs/gst/Makefile
1012 gst-libs/gst/base/Makefile
1013 gst-libs/gst/vaapi/Makefile
1022 test $1 -eq 1 && echo yes || echo no
1026 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
1027 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
1028 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
1029 AS_IF([test $USE_EGL -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS egl"])
1030 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
1033 echo $PACKAGE configuration summary:
1035 echo Installation Prefix .............. : ${prefix}
1036 echo GStreamer API version ............ : $GST_VERSION
1037 echo VA-API version ................... : $VA_VERSION_STR
1038 echo Video encoding ................... : $(yesno $USE_ENCODERS)
1039 echo Video outputs .................... : $VIDEO_OUTPUTS