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])
12 # gstreamer-vaapi library (libtool) version number
13 m4_define([gst_vaapi_lt_current], [6])
14 m4_define([gst0_vaapi_lt_current_bias], [0])
15 m4_define([gst1_vaapi_lt_current_bias], [2])
16 m4_define([gst2_vaapi_lt_current_bias], [4])
17 m4_define([gst4_vaapi_lt_current_bias], [5])
18 m4_define([gst6_vaapi_lt_current_bias], [6])
19 m4_define([gst_vaapi_lt_revision], [0])
20 m4_define([gst_vaapi_lt_age], [0])
23 m4_define([glib_version], [2.28])
25 # gstreamer version number
26 m4_define([gst_api_version], [autodetect])
27 m4_define([gst0_version], [0.10.36])
28 m4_define([gst0_plugins_base_version], [0.10.31])
29 m4_define([gst0_plugins_bad_version], [0.10.22])
30 m4_define([gst1_version], [1.0.0])
31 m4_define([gst1_plugins_base_version], [1.0.0])
32 m4_define([gst1_plugins_bad_version], [1.0.0])
33 m4_define([gst12_version], [1.1.90])
34 m4_define([gst12_plugins_base_version], [1.1.0])
35 m4_define([gst12_plugins_bad_version], [1.1.0])
36 m4_define([gst14_version], [1.2.90])
37 m4_define([gst14_plugins_base_version], [1.3.0])
38 m4_define([gst14_plugins_bad_version], [1.3.0])
39 m4_define([gst16_version], [1.5.0])
40 m4_define([gst16_plugins_base_version], [1.5.0])
41 m4_define([gst16_plugins_bad_version], [1.5.0])
43 # Wayland minimum version number
44 m4_define([wayland_api_version], [1.0.0])
46 # VA-API minimum version number
47 m4_define([va_api_version], [0.30.4])
48 m4_define([va_api_enc_version], [0.34.0])
49 m4_define([va_api_drm_version], [0.33.0])
50 m4_define([va_api_x11_version], [0.31.0])
51 m4_define([va_api_wld_version], [0.33.0])
53 # libva package version number
54 m4_define([libva_enc_package_version], [1.2.0])
55 m4_define([libva_drm_package_version], [1.1.0])
56 m4_define([libva_x11_package_version], [1.0.3])
57 m4_define([libva_wld_package_version], [1.1.0])
59 # gtk-doc version number
60 # XXX: introspection annotations require gtk-doc >= 1.12
61 m4_define([gtkdoc_version], [1.9])
64 AC_INIT([gst_vaapi], [gst_vaapi_version],
65 [gwenole.beauchesne@intel.com],
68 AC_CONFIG_HEADERS([config.h])
69 AC_CONFIG_SRCDIR([Makefile.am])
70 AC_CONFIG_MACRO_DIR([m4])
71 AC_CONFIG_AUX_DIR([build-aux])
75 AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
77 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
80 LIBVA_PACKAGE_VERSION=libva_x11_package_version
81 AC_SUBST(LIBVA_PACKAGE_VERSION)
83 WAYLAND_API_VERSION=wayland_api_version
84 AC_SUBST(WAYLAND_API_VERSION)
86 dnl Use pretty build output with automake >= 1.11
87 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
88 AM_DEFAULT_VERBOSITY=1
89 AC_SUBST(AM_DEFAULT_VERBOSITY)
96 AC_ARG_VAR([GIT], [Path to git program, if any])
97 AC_PATH_PROG([GIT], [git])
98 AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
100 AC_ARG_VAR([YASM], [Path to yasm program, if any])
101 AC_PATH_PROG([YASM], [yasm])
102 if test -z "$YASM" -a "$enable_builtin_libvpx" = "yes"; then
103 AC_MSG_ERROR([yasm is needed to build libvpx sources])
106 dnl Initialize libtool
110 AC_ARG_ENABLE(builtin_videoparsers,
111 AS_HELP_STRING([--enable-builtin-videoparsers],
112 [enable built-in videoparsers @<:@default=yes@:>@]),
113 [], [enable_builtin_videoparsers="yes"])
115 AC_ARG_ENABLE(builtin_codecparsers,
116 AS_HELP_STRING([--enable-builtin-codecparsers],
117 [enable built-in codecparsers @<:@default=yes@:>@]),
118 [], [enable_builtin_codecparsers="yes"])
120 AC_ARG_ENABLE(builtin_libvpx,
121 AS_HELP_STRING([--enable-builtin-libvpx],
122 [enable built-in libvpx @<:@default=yes@:>@]),
123 [], [enable_builtin_libvpx="yes"])
125 AC_ARG_ENABLE([encoders],
126 AS_HELP_STRING([--enable-encoders],
127 [enable video encoders @<:@default=yes@:>@]),
128 [], [enable_encoders="yes"])
131 AS_HELP_STRING([--enable-drm],
132 [enable DRM backend @<:@default=yes@:>@]),
133 [], [enable_drm="yes"])
136 AS_HELP_STRING([--enable-x11],
137 [enable X11 output @<:@default=yes@:>@]),
138 [], [enable_x11="yes"])
141 AS_HELP_STRING([--enable-glx],
142 [enable OpenGL/X11 output @<:@default=yes@:>@]),
143 [], [enable_glx="yes"])
145 AC_ARG_ENABLE(wayland,
146 AC_HELP_STRING([--enable-wayland],
147 [enable Wayland output @<:@default=yes@:>@]),
148 [], [enable_wayland="yes"])
150 AC_ARG_WITH([gstreamer-api],
151 AC_HELP_STRING([--with-gstreamer-api=VERSION],
152 [build against the specified GStreamer API version
153 @<:@default=gst_api_version@:>@]),
154 [GST_API_VERSION="$with_gstreamer_api"], [GST_API_VERSION=gst_api_version])
156 dnl Check for basic libraries
159 dnl Check for Gtk doc
160 GTKDOC_VERSION=gtkdoc_version
161 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
162 m4_ifdef([GTK_DOC_CHECK], [
163 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
164 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
165 AC_SUBST(GTKDOC_VERSION)
168 GLIB_VERSION_REQUIRED=glib_version
169 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
170 AC_SUBST(GLIB_VERSION_REQUIRED)
172 dnl Check to see if dlopen is in default libraries (like Solaris, which
173 dnl has it in libc), or if libdl is needed to get it.
174 AC_CHECK_FUNC([dlopen], [], [
175 AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
176 AC_SUBST([DLOPEN_LIBS])
178 dnl ---------------------------------------------------------------------------
180 dnl ---------------------------------------------------------------------------
182 dnl If GStreamer API version is to be autodetected, then always try
183 dnl with the latest version first
184 AC_MSG_CHECKING([for GStreamer API version])
185 if test "$GST_API_VERSION" = "autodetect"; then
186 gst_pkg_versions="1.0 0.10"
188 AS_VERSION_COMPARE([$GST_API_VERSION], [1.0],
189 [gst_pkg_versions="0.10"], [gst_pkg_versions="1.0"],
190 dnl GStreamer 1.2.x and 1.4.x APIs don't have their own namespace
191 [gst_pkg_versions="1.0"])
193 for gst_pkg_version in ${gst_pkg_versions}; do
194 if $PKG_CONFIG --exists "gstreamer-$gst_pkg_version"; then
195 gst_version=`$PKG_CONFIG --modversion "gstreamer-$gst_pkg_version"`
196 gst_major_version=`echo "$gst_version" | cut -d'.' -f1`
197 gst_minor_version=`echo "$gst_version" | cut -d'.' -f2`
198 GST_API_VERSION="${gst_major_version}.${gst_minor_version}"
199 GST_PKG_VERSION="$gst_pkg_version"
203 if test -z "$GST_PKG_VERSION"; then
204 AC_MSG_ERROR([version $GST_API_VERSION not found])
206 AC_MSG_RESULT([$GST_API_VERSION])
208 dnl Versions for GStreamer and plugins-base
209 case $GST_API_VERSION in
211 GST_VERSION_REQUIRED=gst0_version
212 GST_PLUGINS_BASE_VERSION_REQUIRED=gst0_plugins_base_version
213 GST_PLUGINS_BAD_VERSION_REQUIRED=gst0_plugins_bad_version
216 GST_VERSION_REQUIRED=gst1_version
217 GST_PLUGINS_BASE_VERSION_REQUIRED=gst1_plugins_base_version
218 GST_PLUGINS_BAD_VERSION_REQUIRED=gst1_plugins_bad_version
221 GST_VERSION_REQUIRED=gst12_version
222 GST_PLUGINS_BASE_VERSION_REQUIRED=gst12_plugins_base_version
223 GST_PLUGINS_BAD_VERSION_REQUIRED=gst12_plugins_bad_version
226 GST_VERSION_REQUIRED=gst14_version
227 GST_PLUGINS_BASE_VERSION_REQUIRED=gst14_plugins_base_version
228 GST_PLUGINS_BAD_VERSION_REQUIRED=gst14_plugins_bad_version
231 GST_VERSION_REQUIRED=gst16_version
232 GST_PLUGINS_BASE_VERSION_REQUIRED=gst16_plugins_base_version
233 GST_PLUGINS_BAD_VERSION_REQUIRED=gst16_plugins_bad_version
236 AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
239 AC_SUBST(GST_API_VERSION)
240 AC_SUBST(GST_VERSION_REQUIRED)
241 AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
242 AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
244 USE_GST_API_0_10="no"
245 USE_GST_API_1_0p="no"
246 USE_GST_API_1_2p="no"
247 USE_GST_API_1_4p="no"
248 AS_VERSION_COMPARE([$GST_API_VERSION], [0.10],
249 [], [USE_GST_API_0_10="yes"], [])
250 AS_VERSION_COMPARE([$GST_API_VERSION], [1.0],
251 [], [USE_GST_API_1_0p="yes"], [USE_GST_API_1_0p="yes"])
252 AS_VERSION_COMPARE([$GST_API_VERSION], [1.2],
253 [], [USE_GST_API_1_2p="yes"], [USE_GST_API_1_2p="yes"])
254 AS_VERSION_COMPARE([$GST_API_VERSION], [1.4],
255 [], [USE_GST_API_1_4p="yes"], [USE_GST_API_1_4p="yes"])
256 AM_CONDITIONAL([USE_GST_API_0_10], [test "$USE_GST_API_0_10" = "yes"])
257 AM_CONDITIONAL([USE_GST_API_1_0p], [test "$USE_GST_API_1_0p" = "yes"])
258 AM_CONDITIONAL([USE_GST_API_1_2p], [test "$USE_GST_API_1_2p" = "yes"])
259 AM_CONDITIONAL([USE_GST_API_1_4p], [test "$USE_GST_API_1_4p" = "yes"])
261 dnl GStreamer 1.2.x and 1.4.x APIs don't have their own namespace
262 GST_PKG_VERSION="$GST_API_VERSION"
263 if test "$USE_GST_API_1_2p" = "yes" || test "$USE_GST_API_1_4p" = "yes" ; then
264 GST_PKG_VERSION="1.0"
266 AC_SUBST([GST_PKG_VERSION])
268 dnl Validate certain features
269 if test "$USE_GST_API_0_10" = "yes"; then
270 AC_MSG_WARN([support for GStreamer 0.10 is obsolete, and will be removed])
271 if test "$enable_builtin_videoparsers" = "yes"; then
272 AC_MSG_WARN([disabled built-in videoparsers (unsupported)])
273 enable_builtin_videoparsers="no"
275 elif test "$GST_API_VERSION" = "1.0"; then
276 AC_MSG_WARN([support for GStreamer 1.0 is obsolete, and will be removed])
280 PKG_CHECK_MODULES([GST],
281 [gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
282 PKG_CHECK_MODULES([GST_BASE],
283 [gstreamer-base-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
285 AC_CACHE_CHECK([for GstBaseSink::query hook], ac_cv_have_gst_base_sink_query, [
286 saved_CPPFLAGS="$CPPFLAGS"
287 CPPFLAGS="$CPPFLAGS $GST_BASE_CFLAGS"
289 LIBS="$LIBS $GST_BASE_LIBS"
292 [[#include <gst/base/gstbasesink.h>]],
293 [[GstBaseSinkClass klass; klass.query = NULL;]])],
294 [ac_cv_have_gst_base_sink_query="yes"],
295 [ac_cv_have_gst_base_sink_query="no"]
297 CPPFLAGS="$saved_CPPFLAGS"
300 if test "$ac_cv_have_gst_base_sink_query" != "yes"; then
301 AC_MSG_ERROR([GstBaseSink does not contain the 'query' vfunc])
304 dnl GStreamer -base plugins
305 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
306 [gstreamer-plugins-base-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
307 if test "$GST_API_VERSION" = "0.10"; then
308 PKG_CHECK_MODULES([GST_INTERFACES],
309 [gstreamer-interfaces-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
312 dnl ... gst_dmabuf_memory_get_fd (gstreamer-allocators)
313 PKG_CHECK_MODULES([GST_ALLOCATORS],
314 [gstreamer-allocators-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
316 dnl ... GstVideoOverlayComposition (gstreamer-video)
317 PKG_CHECK_MODULES([GST_VIDEO],
318 [gstreamer-video-$GST_PKG_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
320 AC_CACHE_CHECK([for GstVideoOverlayComposition],
321 ac_cv_have_gst_video_overlay_composition, [
322 saved_CPPFLAGS="$CPPFLAGS"
323 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_VIDEO_CFLAGS"
325 LIBS="$LIBS $GST_LIBS $GST_VIDEO_LIBS"
328 [[#include <gst/video/video-overlay-composition.h>]],
329 [[GstVideoOverlayComposition *c;
330 c = gst_video_overlay_composition_new(0);]])],
331 [ac_cv_have_gst_video_overlay_composition="yes"],
332 [ac_cv_have_gst_video_overlay_composition="no"]
334 CPPFLAGS="$saved_CPPFLAGS"
337 if test "$ac_cv_have_gst_video_overlay_composition" != "yes"; then
338 AC_MSG_ERROR([GstVideoOverlayComposition is not available])
341 AC_CACHE_CHECK([... with advanced format flags],
342 ac_cv_have_gst_video_overlay_hwcaps, [
343 saved_CPPFLAGS="$CPPFLAGS"
344 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_VIDEO_CFLAGS"
346 LIBS="$LIBS $GST_LIBS $GST_VIDEO_LIBS"
349 [[#include <gst/video/video-overlay-composition.h>]],
350 [[GstVideoOverlayRectangle *rect;
351 const guint w = 64, h = 64;
353 GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA|
354 GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA);
355 rect = gst_video_overlay_rectangle_new_argb(NULL, w, h, w * 4,
357 gst_video_overlay_rectangle_set_global_alpha(rect, 0.5f);]])],
358 [ac_cv_have_gst_video_overlay_hwcaps="yes"],
359 [ac_cv_have_gst_video_overlay_hwcaps="no"]
361 CPPFLAGS="$saved_CPPFLAGS"
364 if test "$ac_cv_have_gst_video_overlay_hwcaps" = "yes"; then
365 AC_DEFINE_UNQUOTED([HAVE_GST_VIDEO_OVERLAY_HWCAPS], 1,
366 [Defined to 1 if GstVideoOverlayComposition API supports HW hints.])
369 dnl GStreamer -bad plugins (deprecated in GStreamer v1.2)
370 if test "$USE_GST_API_1_2p" != "yes" && test "$USE_GST_API_1_4p" != "yes"; then
371 PKG_CHECK_MODULES([GST_BASEVIDEO],
372 [gstreamer-basevideo-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
375 dnl ... bitstream parsers
376 if test "$enable_builtin_codecparsers" = "yes"; then
377 ac_cv_have_gst_mpeg2_parser="no"
378 ac_cv_have_gst_h264_parser="no"
379 ac_cv_have_gst_jpeg_parser="no"
380 ac_cv_have_gst_vp8_parser="no"
382 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
383 [gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
386 dnl ... MPEG-2 parser, with the required extensions
387 AC_CACHE_CHECK([for MPEG-2 parser],
388 ac_cv_have_gst_mpeg2_parser, [
389 saved_CPPFLAGS="$CPPFLAGS"
390 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
392 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
395 [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
396 [[GstMpegVideoSequenceHdr seq_hdr;
397 GstMpegVideoSequenceExt seq_ext;
398 GstMpegVideoSequenceDisplayExt seq_dpy;
399 GstMpegVideoSliceHdr slice_hdr;
400 GstMpegVideoPacket packet;
401 gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
403 gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
404 &seq_ext, &seq_dpy);]])],
405 [ac_cv_have_gst_mpeg2_parser="yes"],
406 [ac_cv_have_gst_mpeg2_parser="no"]
408 CPPFLAGS="$saved_CPPFLAGS"
411 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
412 [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
414 dnl ... H.264 parser, with the required extensions
415 AC_CACHE_CHECK([for H.264 parser],
416 ac_cv_have_gst_h264_parser, [
417 saved_CPPFLAGS="$CPPFLAGS"
418 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
420 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
423 [[#include <gst/codecparsers/gsth264parser.h>]],
424 [[GstH264SliceHdr slice_hdr;
425 GstH264VUIParams vui_params;
426 GstH264Profile profile = GST_H264_PROFILE_HIGH;
427 slice_hdr.n_emulation_prevention_bytes = 0;
428 vui_params.par_n = 0;
429 vui_params.par_d = 0;]])],
430 [ac_cv_have_gst_h264_parser="yes"],
431 [ac_cv_have_gst_h264_parser="no"]
433 CPPFLAGS="$saved_CPPFLAGS"
436 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
437 [test "$ac_cv_have_gst_h264_parser" != "yes"])
439 dnl ... JPEG parser, not upstream yet
440 AC_CACHE_CHECK([for JPEG parser],
441 ac_cv_have_gst_jpeg_parser, [
442 saved_CPPFLAGS="$CPPFLAGS"
443 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
445 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
448 [[#include <gst/codecparsers/gstjpegparser.h>]],
449 [[GstJpegImage jpeg_image;]])],
450 [ac_cv_have_gst_jpeg_parser="yes"],
451 [ac_cv_have_gst_jpeg_parser="no"]
453 CPPFLAGS="$saved_CPPFLAGS"
456 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
457 [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
459 dnl ... VP8 parser, not upstream yet
460 if test "$enable_builtin_libvpx" = "yes"; then
461 ac_cv_have_gst_vp8_parser="no"
463 AC_CACHE_CHECK([for VP8 parser],
464 ac_cv_have_gst_vp8_parser, [
465 saved_CPPFLAGS="$CPPFLAGS"
466 CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
468 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
471 [[#include <gst/codecparsers/gstvp8parser.h>]],
472 [[GstVp8FrameHdr frame_hdr;]])],
473 [ac_cv_have_gst_vp8_parser="yes"],
474 [ac_cv_have_gst_vp8_parser="no"]
476 CPPFLAGS="$saved_CPPFLAGS"
479 AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
480 [test "$ac_cv_have_gst_vp8_parser" != "yes"])
481 AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
483 dnl ... video parsers
484 AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
485 [test "$enable_builtin_videoparsers" = "yes"])
487 case $GST_API_VERSION in
488 0.10) lt_bias=gst0_vaapi_lt_current_bias;;
489 1.0) lt_bias=gst1_vaapi_lt_current_bias;;
490 1.2) lt_bias=gst2_vaapi_lt_current_bias;;
491 1.4) lt_bias=gst4_vaapi_lt_current_bias;;
492 1.[[5-6]]) lt_bias=gst6_vaapi_lt_current_bias;;
494 GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
495 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
497 dnl GST_VAAPI_LT_LDFLAGS:
498 GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
499 GST_VAAPI_LT_REV=gst_vaapi_lt_revision
500 GST_VAAPI_LT_AGE=gst_vaapi_lt_age
501 GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
502 GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
503 AC_SUBST(GST_VAAPI_LT_VERSION)
504 AC_SUBST(GST_VAAPI_LT_LDFLAGS)
507 dnl LDFLAGS really should only contain flags, not libs - they get added before
508 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
509 GST_ALL_LDFLAGS="-no-undefined"
510 AC_SUBST(GST_ALL_LDFLAGS)
512 dnl GST_PLUGIN_LDFLAGS:
513 dnl this really should only contain flags, not libs - they get added before
514 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
515 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
516 AC_SUBST(GST_PLUGIN_LDFLAGS)
518 dnl Check for the GStreamer plugins directory
519 AC_ARG_VAR([GST_PLUGIN_PATH], [installation path for gstreamer-vaapi plugin elements for GStreamer 0.10])
520 AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
521 AC_MSG_CHECKING([for GStreamer plugins directory])
522 case $GST_PKG_VERSION in
523 0.10) _gst_plugin_path="$GST_PLUGIN_PATH";;
524 1.0) _gst_plugin_path="$GST_PLUGIN_PATH_1_0";;
526 if test -d "$_gst_plugin_path"; then
527 GST_PLUGINS_DIR="$_gst_plugin_path"
529 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_PKG_VERSION --variable pluginsdir`
530 if test -z "$GST_PLUGINS_DIR"; then
531 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_PKG_VERSION"
534 AC_MSG_RESULT([$GST_PLUGINS_DIR])
535 plugindir="$GST_PLUGINS_DIR"
538 dnl ---------------------------------------------------------------------------
540 dnl ---------------------------------------------------------------------------
542 dnl Check for DRM/libudev
544 if test "$enable_drm" = "yes"; then
545 PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
546 PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
548 if test $USE_DRM -eq 1; then
549 saved_CPPFLAGS="$CPPFLAGS"
550 CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
551 AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
552 CPPFLAGS="$saved_CPPFLAGS"
558 if test "$enable_x11" = "yes"; then
559 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
560 if test $USE_X11 -eq 1; then
561 saved_CPPFLAGS="$CPPFLAGS"
562 CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
563 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
564 CPPFLAGS="$saved_CPPFLAGS"
568 dnl Check for XKB library
570 if test $USE_X11 -eq 1; then
571 AC_CHECK_HEADERS([X11/XKBlib.h], [HAVE_XKBLIB=1], [:])
573 if test $HAVE_XKBLIB -eq 1; then
574 AC_DEFINE_UNQUOTED([HAVE_XKBLIB], 1,
575 [Defined to 1 if the XKB extension exists.])
580 if test $USE_X11 -eq 1; then
582 PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
583 if test $HAVE_XRANDR -eq 1; then
584 saved_CPPFLAGS="$CPPFLAGS"
585 CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
586 AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
587 CPPFLAGS="$saved_CPPFLAGS"
590 if test $HAVE_XRANDR -eq 1; then
591 AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
592 [Defined to 1 if the XRandR extension exists.])
595 dnl Check for XRender
597 if test $USE_X11 -eq 1; then
599 PKG_CHECK_MODULES([XRENDER], [xrender], [:], [HAVE_XRENDER=0])
600 if test $HAVE_XRENDER -eq 1; then
601 saved_CPPFLAGS="$CPPFLAGS"
602 CPPFLAGS="$CPPFLAGS $XRENDER_CFLAGS"
603 AC_CHECK_HEADERS([X11/extensions/Xrender.h], [:], [HAVE_XRENDER=0])
604 CPPFLAGS="$saved_CPPFLAGS"
607 if test $HAVE_XRENDER -eq 1; then
608 AC_DEFINE_UNQUOTED([HAVE_XRENDER], [1],
609 [Defined to 1 if the XRender extension exists.])
614 if test "$enable_glx" = "yes"; then
619 if test "$enable_opengl" = "yes"; then
621 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
622 saved_CPPFLAGS="$CPPFLAGS"
623 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
624 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
629 CPPFLAGS="$saved_CPPFLAGS"
634 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
636 saved_CPPFLAGS="$CPPFLAGS"
638 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
639 LIBS="$LIBS $GL_LIBS"
640 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
645 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
646 CPPFLAGS="$saved_CPPFLAGS"
650 dnl Check for Wayland
652 if test "$enable_wayland" = "yes"; then
653 PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
654 [USE_WAYLAND=1], [USE_WAYLAND=0])
656 if test $USE_WAYLAND -eq 1; then
657 saved_CPPFLAGS="$CPPFLAGS"
658 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
659 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
660 CPPFLAGS="$saved_CPPFLAGS"
664 dnl ---------------------------------------------------------------------------
666 dnl ---------------------------------------------------------------------------
669 LIBVA_PKGNAME="libva"
670 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
671 AC_SUBST(LIBVA_PKGNAME)
673 VA_VERSION=`$PKG_CONFIG --modversion libva`
674 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
675 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
676 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
677 VA_VERSION_STR="$VA_VERSION"
681 if test $USE_DRM -eq 1; then
682 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
683 [HAVE_VA_DRM=1], [USE_DRM=0])
685 if test $HAVE_VA_DRM -eq 1; then
686 saved_CPPFLAGS="$CPPFLAGS"
687 CPPFLAGS="$LIBVA_DRM_CFLAGS"
688 AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
689 CPPFLAGS="$saved_CPPFLAGS"
695 LIBVA_X11_PKGNAME="libva-x11"
696 if test $USE_X11 -eq 1; then
697 PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
698 [HAVE_VA_X11=1], [USE_X11=0])
700 AC_SUBST(LIBVA_X11_PKGNAME)
702 dnl Check for va_dec_jpeg.h header
703 saved_CPPFLAGS="$CPPFLAGS"
704 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
705 AC_CHECK_HEADERS([va/va_dec_jpeg.h], [], [], [#include <va/va.h>])
706 CPPFLAGS="$saved_CPPFLAGS"
708 dnl Check for JPEG decoding API (0.32.1+)
710 AC_CACHE_CHECK([for JPEG decoding API],
711 ac_cv_have_jpeg_decoding_api, [
712 saved_CPPFLAGS="$CPPFLAGS"
713 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
715 LIBS="$LIBS $LIBVA_LIBS"
719 #ifdef HAVE_VA_VA_DEC_JPEG_H
720 #include <va/va_dec_jpeg.h>
723 [[VAPictureParameterBufferJPEGBaseline pic_param;
724 VASliceParameterBufferJPEGBaseline slice_param;
725 VAHuffmanTableBufferJPEGBaseline huffman_table;
726 VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
727 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
728 [ac_cv_have_jpeg_decoding_api="no"]
730 CPPFLAGS="$saved_CPPFLAGS"
734 dnl Check for va_dec_vp8.h header
735 saved_CPPFLAGS="$CPPFLAGS"
736 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
737 AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
738 CPPFLAGS="$saved_CPPFLAGS"
740 dnl Check for VP8 decoding API (0.34+)
742 AC_CACHE_CHECK([for VP8 decoding API],
743 ac_cv_have_vp8_decoding_api, [
744 saved_CPPFLAGS="$CPPFLAGS"
745 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
747 LIBS="$LIBS $LIBVA_LIBS"
751 #ifdef HAVE_VA_VA_DEC_VP8_H
752 #include <va/va_dec_vp8.h>
755 [[VAPictureParameterBufferVP8 pic_param;
756 VASliceParameterBufferVP8 slice_param;
757 VAProbabilityDataBufferVP8 prob_data;
758 VAIQMatrixBufferVP8 iq_matrix;
759 slice_param.slice_data_offset = 0;
760 slice_param.slice_data_flag = 0;]])],
761 [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
762 [ac_cv_have_vp8_decoding_api="no"]
764 CPPFLAGS="$saved_CPPFLAGS"
769 dnl Check for vpp (video post-processing) support
771 AC_CACHE_CHECK([for video post-postprocessing API],
772 ac_cv_have_va_vpp_api, [
773 saved_CPPFLAGS="$CPPFLAGS"
774 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
776 LIBS="$LIBS $LIBVA_LIBS"
780 #include <va/va_vpp.h>]],
783 VAProcFilterType filters[VAProcFilterCount];
784 unsigned int num_filters = VAProcFilterCount;
785 vaQueryVideoProcFilters(va_dpy, vpp_ctx, filters, &num_filters);
787 [ac_cv_have_va_vpp_api="yes" USE_VA_VPP=1],
788 [ac_cv_have_va_vpp_api="no"]
790 CPPFLAGS="$saved_CPPFLAGS"
794 dnl Check for encoding support
797 if test "$enable_encoders" = "yes"; then
798 PKG_CHECK_MODULES([LIBVA], [libva >= va_api_enc_version],
799 [HAVE_VA_ENC=1], [HAVE_VA_ENC=0])
801 if test $HAVE_VA_ENC -eq 1; then
802 saved_CPPFLAGS="$CPPFLAGS"
803 CPPFLAGS="$LIBVA_CFLAGS"
804 AC_CHECK_HEADERS([va/va_enc_mpeg2.h va/va_enc_h264.h],
805 [USE_ENCODERS=1], [HAVE_VA_ENC=0 USE_ENCODERS=0],
809 dnl Check for JPEG Encoding API (0.37.0+)
810 AC_CHECK_HEADERS([va/va_enc_jpeg.h],
811 [USE_JPEG_ENCODER=1], [],
814 AC_CACHE_CHECK([for JPEG encoding API],
815 ac_cv_have_jpeg_encoding_api, [
816 saved_CPPFLAGS="$CPPFLAGS"
817 CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
819 LIBS="$LIBS $LIBVA_LIBS"
823 #ifdef HAVE_VA_VA_ENC_JPEG_H
824 #include <va/va_enc_jpeg.h>
827 [[VAEncPictureParameterBufferJPEG pic_param;
828 VAEncSliceParameterBufferJPEG slice_param;
829 VAQMatrixBufferJPEG q_matrix;]])],
830 [ac_cv_have_jpeg_encoding_api="yes" USE_JPEG_ENCODER=1],
831 [ac_cv_have_jpeg_encoding_api="no"]
833 CPPFLAGS="$saved_CPPFLAGS"
836 CPPFLAGS="$saved_CPPFLAGS"
841 if test "$enable_wayland" = "yes"; then
842 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
843 [:], [USE_WAYLAND=0])
846 dnl ---------------------------------------------------------------------------
847 dnl -- Generate files and summary --
848 dnl ---------------------------------------------------------------------------
850 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
854 AC_MSG_ERROR([No renderer is enabled])
858 AC_DEFINE_UNQUOTED([USE_ENCODERS], $USE_ENCODERS,
859 [Defined to 1 if video encoders are used])
860 AM_CONDITIONAL([USE_ENCODERS], [test $USE_ENCODERS -eq 1])
862 AC_DEFINE_UNQUOTED(USE_JPEG_ENCODER, $USE_JPEG_ENCODER,
863 [Defined to 1 if JPEG encoder is used])
864 AM_CONDITIONAL(USE_JPEG_ENCODER, test $USE_JPEG_ENCODER -eq 1)
866 AC_DEFINE_UNQUOTED(USE_VA_VPP, $USE_VA_VPP,
867 [Defined to 1 if video post-processing is used])
868 AM_CONDITIONAL(USE_VA_VPP, test $USE_VA_VPP -eq 1)
870 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
871 [Defined to 1 if JPEG decoder is used])
872 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
874 AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
875 [Defined to 1 if VP8 decoder is used])
876 AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_DECODER -eq 1)
878 AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
879 [Defined to 1 if DRM is enabled])
880 AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
882 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
883 [Defined to 1 if X11 is enabled])
884 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
886 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
887 [Defined to 1 if GLX is enabled])
888 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
890 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
891 [Defined to 1 if WAYLAND is enabled])
892 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
894 pkgconfigdir=${libdir}/pkgconfig
895 AC_SUBST(pkgconfigdir)
899 debian.upstream/Makefile
900 debian.upstream/changelog
901 debian.upstream/control
902 debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
903 debian.upstream/gstreamer-vaapi-doc.install.in
904 debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
905 debian.upstream/gstreamer-vaapi.install.in
906 debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
907 debian.upstream/libgstvaapi-dev.install.in
908 debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
909 debian.upstream/libgstvaapi.install.in
910 debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
911 debian.upstream/libgstvaapi-drm.install.in
912 debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
913 debian.upstream/libgstvaapi-glx.install.in
914 debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
915 debian.upstream/libgstvaapi-wayland.install.in
916 debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
917 debian.upstream/libgstvaapi-x11.install.in
919 docs/reference/Makefile
920 docs/reference/libs/Makefile
921 docs/reference/libs/libs-docs.xml
922 docs/reference/plugins/Makefile
923 docs/reference/plugins/plugins-docs.xml
927 gst-libs/gst/Makefile
928 gst-libs/gst/base/Makefile
929 gst-libs/gst/codecparsers/Makefile
930 gst-libs/gst/vaapi/Makefile
931 gst-libs/gst/video/Makefile
935 patches/videoparsers/Makefile
937 pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
938 pkgconfig/gstreamer-vaapi.pc.in
939 pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
940 pkgconfig/gstreamer-vaapi-drm.pc.in
941 pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
942 pkgconfig/gstreamer-vaapi-glx.pc.in
943 pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
944 pkgconfig/gstreamer-vaapi-wayland.pc.in
945 pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
946 pkgconfig/gstreamer-vaapi-x11.pc.in
953 test $1 -eq 1 && echo yes || echo no
957 AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
958 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
959 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
960 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
963 echo $PACKAGE configuration summary:
965 echo Installation Prefix .............. : ${prefix}
966 echo GStreamer API version ............ : $GST_API_VERSION
967 echo VA-API version ................... : $VA_VERSION_STR
968 echo Video encoding ................... : $(yesno $USE_ENCODERS)
969 echo Video outputs .................... : $VIDEO_OUTPUTS