1 # gstreamer-vaapi package version number
2 m4_define([gst_vaapi_major_version], [0])
3 m4_define([gst_vaapi_minor_version], [4])
4 m4_define([gst_vaapi_micro_version], [0])
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([glib_major_version], [2])
14 m4_define([glib_minor_version], [28])
15 m4_define([glib_micro_version], [0])
16 m4_define([glib_major_minor_version],
17 [glib_major_version.glib_minor_version])
18 m4_define([glib_version],
19 [glib_major_version.glib_minor_version.glib_micro_version])
22 m4_define([gst_major_version], [0])
23 m4_define([gst_minor_version], [10])
24 m4_define([gst_micro_version], [14])
25 m4_define([gst_major_minor_version],
26 [gst_major_version.gst_minor_version])
27 m4_define([gst_version],
28 [gst_major_version.gst_minor_version.gst_micro_version])
30 # gst plugins-base version number
31 m4_define([gst_plugins_base_major_version], [0])
32 m4_define([gst_plugins_base_minor_version], [10])
33 m4_define([gst_plugins_base_micro_version], [31])
34 m4_define([gst_plugins_base_version],
35 [gst_plugins_base_major_version.gst_plugins_base_minor_version.gst_plugins_base_micro_version])
37 # gst plugins-bad version number
38 m4_define([gst_plugins_bad_major_version], [0])
39 m4_define([gst_plugins_bad_minor_version], [10])
40 m4_define([gst_plugins_bad_micro_version], [22])
41 m4_define([gst_plugins_bad_version],
42 [gst_plugins_bad_major_version.gst_plugins_bad_minor_version.gst_plugins_bad_micro_version])
44 # VA-API minimum version number
45 m4_define([va_api_version], [0.30.4])
46 m4_define([va_api_x11_version], [0.31.0])
47 m4_define([va_api_glx_version], [0.32.0])
48 m4_define([va_api_wld_version], [0.34.0])
50 # libva package version number
51 m4_define([libva_x11_package_version], [1.0.3])
52 m4_define([libva_glx_package_version], [1.0.9])
53 m4_define([libva_wld_package_version], [1.2.0])
55 # gtk-doc version number
56 # XXX: introspection annotations require gtk-doc >= 1.12
57 m4_define([gtkdoc_major_version], [1])
58 m4_define([gtkdoc_minor_version], [9])
59 m4_define([gtkdoc_version], [gtkdoc_major_version.gtkdoc_minor_version])
62 AC_INIT([gst_vaapi], [gst_vaapi_version],
63 [gwenole.beauchesne@intel.com],
66 AC_CONFIG_HEADERS([config.h])
67 AC_CONFIG_SRCDIR([Makefile.am])
68 AC_CONFIG_MACRO_DIR([m4])
69 AC_CONFIG_AUX_DIR([build-aux])
75 TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
78 GST_VAAPI_MAJOR_VERSION=gst_vaapi_major_version
79 AC_SUBST(GST_VAAPI_MAJOR_VERSION)
81 LIBVA_PACKAGE_VERSION=libva_x11_package_version
82 AC_SUBST(LIBVA_PACKAGE_VERSION)
84 dnl Versions for GStreamer and plugins-base
85 GST_MAJORMINOR=gst_major_minor_version
86 GST_VERSION_REQUIRED=gst_version
87 GST_PLUGINS_BASE_VERSION_REQUIRED=gst_plugins_base_version
88 GST_PLUGINS_BAD_VERSION_REQUIRED=gst_plugins_bad_version
89 AC_SUBST(GST_MAJORMINOR)
90 AC_SUBST(GST_VERSION_REQUIRED)
91 AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
92 AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
94 dnl Use pretty build output with automake >= 1.11
95 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
96 AM_DEFAULT_VERBOSITY=1
97 AC_SUBST(AM_DEFAULT_VERBOSITY)
106 AS_HELP_STRING([--enable-x11],
107 [enable X11 output @<:@default=yes@:>@]),
108 [], [enable_x11="yes"])
111 AS_HELP_STRING([--enable-glx],
112 [enable OpenGL/X11 output @<:@default=yes@:>@]),
113 [], [enable_glx="yes"])
115 AC_ARG_ENABLE(wayland,
116 AC_HELP_STRING([--enable-wayland],
117 [enable Wayland output @<:@default=yes@:>@]),
118 [], [enable_wayland="yes"])
120 dnl Check for basic libraries
123 dnl Check for Gtk doc
124 GTKDOC_VERSION=gtkdoc_version
125 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
126 m4_ifdef([GTK_DOC_CHECK], [
127 GTK_DOC_CHECK([$GTKDOC_VERSION], [--flavour no-tmpl])], [
128 AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
129 AC_SUBST(GTKDOC_VERSION)
132 GLIB_VERSION_REQUIRED=glib_version
133 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
134 AC_SUBST(GLIB_VERSION_REQUIRED)
136 dnl ---------------------------------------------------------------------------
138 dnl ---------------------------------------------------------------------------
141 PKG_CHECK_MODULES([GST], [gstreamer-$GST_MAJORMINOR >= gst_version])
142 PKG_CHECK_MODULES([GST_BASE], [gstreamer-base-$GST_MAJORMINOR >= gst_version])
144 AC_CACHE_CHECK([for GstBaseSink::query hook], ac_cv_have_gst_base_sink_query, [
145 saved_CFLAGS="$CFLAGS"
146 CFLAGS="$CFLAGS $GST_BASE_CFLAGS"
148 LIBS="$LIBS $GST_BASE_LIBS"
151 [[#include <gst/base/gstbasesink.h>]],
152 [[GstBaseSinkClass klass; klass.query = NULL;]])],
153 [ac_cv_have_gst_base_sink_query="yes"],
154 [ac_cv_have_gst_base_sink_query="no"]
156 CFLAGS="$saved_CFLAGS"
159 if test "$ac_cv_have_gst_base_sink_query" != "yes"; then
160 AC_MSG_ERROR([GstBaseSink does not contain the 'query' vfunc])
163 dnl GStreamer -base plugins
164 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
165 [gstreamer-plugins-base-$GST_MAJORMINOR >= gst_plugins_base_version])
166 PKG_CHECK_MODULES([GST_INTERFACES],
167 [gstreamer-interfaces-$GST_MAJORMINOR >= gst_plugins_base_version])
169 dnl ... GstVideoOverlayComposition (gstreamer-video)
170 PKG_CHECK_MODULES([GST_VIDEO],
171 [gstreamer-video-$GST_MAJORMINOR >= gst_plugins_base_version])
173 AC_CACHE_CHECK([for GstVideoOverlayComposition],
174 ac_cv_have_gst_video_overlay_composition, [
175 saved_CFLAGS="$CFLAGS"
176 CFLAGS="$CFLAGS $GST_CFLAGS"
178 LIBS="$LIBS $GST_LIBS"
181 [[#include <gst/video/video-overlay-composition.h>]],
182 [[GstVideoOverlayComposition *c = gst_video_overlay_composition_new(0);]])],
183 [ac_cv_have_gst_video_overlay_composition="yes"],
184 [ac_cv_have_gst_video_overlay_composition="no"]
186 CFLAGS="$saved_CFLAGS"
189 if test "$ac_cv_have_gst_video_overlay_composition" != "yes"; then
190 AC_MSG_ERROR([GstVideoOverlayComposition is not available])
193 dnl GStreamer -bad plugins
194 PKG_CHECK_MODULES([GST_BASEVIDEO],
195 [gstreamer-basevideo-$GST_MAJORMINOR >= gst_plugins_bad_version])
197 dnl ... bitstream parsers
199 USE_LOCAL_CODEC_PARSERS=0
201 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
202 [gstreamer-codecparsers-$GST_MAJORMINOR >= gst_plugins_bad_version])
204 dnl ... 0.10.23 addition, could be implemented otherwise
205 AC_CACHE_CHECK([for GstH264SliceHdr::n_emulation_prevention_bytes],
206 ac_cv_have_gst_h264_slice_hdr_epb_count, [
207 saved_CFLAGS="$CFLAGS"
208 CFLAGS="$CFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
210 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
213 [[#include <gst/codecparsers/gsth264parser.h>]],
214 [[GstH264SliceHdr slice_hdr;
215 slice_hdr.n_emulation_prevention_bytes = 0;]])],
216 [ac_cv_have_gst_h264_slice_hdr_epb_count="yes"],
217 [ac_cv_have_gst_h264_slice_hdr_epb_count="no"]
219 CFLAGS="$saved_CFLAGS"
223 if test "$ac_cv_have_gst_h264_slice_hdr_epb_count" = "yes"; then
224 AC_DEFINE_UNQUOTED(HAVE_GST_H264_SLICE_HDR_EPB_COUNT, 1,
225 [Defined to 1 if GstH264SliceHdr::n_emulation_prevention_bytes exists.])
228 dnl ... JPEG parser, not upstream yet
229 AC_CACHE_CHECK([for JPEG parser],
230 ac_cv_have_gst_jpeg_parser, [
231 saved_CFLAGS="$CFLAGS"
232 CFLAGS="$CFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
234 LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
237 [[#include <gst/codecparsers/gstjpegparser.h>]],
238 [[GstJpegImage jpeg_image;]])],
239 [ac_cv_have_gst_jpeg_parser="yes"],
240 [ac_cv_have_gst_jpeg_parser="no" USE_LOCAL_CODEC_PARSERS=1]
242 CFLAGS="$saved_CFLAGS"
246 if test "$ac_cv_have_gst_jpeg_parser" = "yes"; then
247 AC_DEFINE_UNQUOTED(HAVE_GST_JPEG_PARSER, 1,
248 [Defined to 1 if JPEG parser exists.])
250 AM_CONDITIONAL(USE_LOCAL_CODEC_PARSERS, test $USE_LOCAL_CODEC_PARSERS -eq 1)
253 dnl LDFLAGS really should only contain flags, not libs - they get added before
254 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
255 GST_ALL_LDFLAGS="-no-undefined"
256 AC_SUBST(GST_ALL_LDFLAGS)
258 dnl GST_PLUGIN_LDFLAGS:
259 dnl this really should only contain flags, not libs - they get added before
260 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
261 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plugin_desc|gst_.*_get_type)\$\$' $GST_ALL_LDFLAGS"
262 AC_SUBST(GST_PLUGIN_LDFLAGS)
264 dnl Check for the GStreamer plugins directory
265 AC_MSG_CHECKING([for GStreamer plugins directory])
266 GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_MAJORMINOR --variable pluginsdir`
267 if test -z "$GST_PLUGINS_DIR"; then
268 echo "FAIL FAIL FAIL"
269 GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_MAJORMINOR"
271 AC_MSG_RESULT([$GST_PLUGINS_DIR])
272 plugindir="$GST_PLUGINS_DIR"
275 dnl ---------------------------------------------------------------------------
277 dnl ---------------------------------------------------------------------------
281 if test "$enable_x11" = "yes"; then
282 PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
283 if test $USE_X11 -eq 1; then
284 saved_CPPFLAGS="$CPPFLAGS"
285 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
286 AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
287 CPPFLAGS="$saved_CPPFLAGS"
293 if test "$enable_glx" = "yes"; then
298 if test "$enable_opengl" = "yes"; then
300 PKG_CHECK_MODULES([GL], [gl], [:], [HAVE_GL=0])
301 saved_CPPFLAGS="$CPPFLAGS"
302 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
303 AC_CHECK_HEADERS([GL/gl.h GL/glext.h], [:], [HAVE_GL=0], [
308 CPPFLAGS="$saved_CPPFLAGS"
313 if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
315 saved_CPPFLAGS="$CPPFLAGS"
317 CPPFLAGS="$CPPFLAGS $GL_CFLAGS"
318 LIBS="$LIBS $GL_LIBS"
319 AC_CHECK_HEADERS([GL/glx.h], [:], [USE_GLX=0], [
324 AC_CHECK_LIB([GL], [glXCreateContext], [:], [USE_GLX=0])
325 CPPFLAGS="$saved_CPPFLAGS"
329 dnl Check for Wayland
331 if test "$enable_wayland" = "yes"; then
332 PKG_CHECK_MODULES(WAYLAND, [wayland-client],
333 [USE_WAYLAND=1], [USE_WAYLAND=0])
335 if test $USE_WAYLAND -eq 1; then
336 saved_CPPFLAGS="$CPPFLAGS"
337 CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
338 AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
339 CPPFLAGS="$saved_CPPFLAGS"
343 dnl ---------------------------------------------------------------------------
345 dnl ---------------------------------------------------------------------------
348 LIBVA_PKGNAME="libva"
349 PKG_CHECK_MODULES(LIBVA, [$LIBVA_PKGNAME >= va_api_version])
350 AC_SUBST(LIBVA_PKGNAME)
352 VA_VERSION=`$PKG_CONFIG --modversion libva`
353 VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
354 VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
355 VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
356 VA_VERSION_STR="$VA_VERSION"
360 LIBVA_X11_PKGNAME="libva-x11"
361 if test $USE_X11 -eq 1; then
362 PKG_CHECK_MODULES(LIBVA_X11, [$LIBVA_X11_PKGNAME >= va_api_x11_version],
363 [HAVE_VA_X11=1], [USE_X11=0])
365 AC_SUBST(LIBVA_X11_PKGNAME)
369 LIBVA_GLX_PKGNAME="libva-glx"
370 if test $USE_GLX -eq 1; then
371 PKG_CHECK_MODULES(LIBVA_GLX, [$LIBVA_GLX_PKGNAME >= va_api_glx_version],
372 [HAVE_VA_GLX=1], [LIBVA_GLX_PKGNAME="$LIBVA_X11_PKGNAME"])
374 if test $HAVE_VA_GLX -eq 1; then
375 saved_CPPFLAGS="$CPPFLAGS"
376 CPPFLAGS="$LIBVA_GLX_CPPFLAGS"
377 AC_CHECK_HEADERS([va/va_glx.h], [:], [HAVE_VA_GLX=0])
378 CPPFLAGS="$saved_CPPFLAGS"
381 AC_SUBST(LIBVA_GLX_PKGNAME)
383 dnl Check for JPEG decoding API (0.33+)
385 AC_CACHE_CHECK([for JPEG decoding API],
386 ac_cv_have_jpeg_decoding_api, [
387 saved_CFLAGS="$CFLAGS"
388 CFLAGS="$CFLAGS $LIBVA_CFLAGS"
390 LIBS="$CFLAGS $LIBVA_LIBS"
394 #include <va/va_dec_jpeg.h>]],
395 [[VAPictureParameterBufferJPEG pic_param;
396 VASliceParameterBufferJPEG slice_param;
397 VAHuffmanTableBufferJPEG huffman_table;
398 VAIQMatrixBufferJPEG iq_matrix;]])],
399 [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
400 [ac_cv_have_jpeg_decoding_api="no"]
402 CFLAGS="$saved_CFLAGS"
407 if test "$enable_wayland" = "yes"; then
408 PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
409 [:], [USE_WAYLAND=0])
412 dnl ---------------------------------------------------------------------------
413 dnl -- Generate files and summary --
414 dnl ---------------------------------------------------------------------------
416 case ":$USE_X11:$USE_GLX:$USE_WAYLAND:" in
420 AC_MSG_ERROR([No renderer is enabled])
424 AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
425 [Defined to 1 if JPEG decoder is used])
426 AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
428 AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
429 [Defined to 1 if X11 is enabled])
430 AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
432 AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX,
433 [Defined to 1 if GLX is enabled])
434 AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
436 AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
437 [Defined to 1 if WAYLAND is enabled])
438 AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
440 pkgconfigdir=${libdir}/pkgconfig
441 AC_SUBST(pkgconfigdir)
445 debian.upstream/Makefile
446 debian.upstream/changelog
447 debian.upstream/control
448 debian.upstream/gstreamer$GST_MAJORMINOR-vaapi-doc.install:\
449 debian.upstream/gstreamer-vaapi-doc.install.in
450 debian.upstream/gstreamer$GST_MAJORMINOR-vaapi.install:\
451 debian.upstream/gstreamer-vaapi.install.in
452 debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
453 debian.upstream/libgstvaapi.install.in
454 debian.upstream/libgstvaapi-dev.install
455 debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
456 debian.upstream/libgstvaapi-glx.install.in
457 debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
458 debian.upstream/libgstvaapi-x11.install.in
460 docs/reference/Makefile
461 docs/reference/libs/Makefile
462 docs/reference/libs/libs-docs.xml
463 docs/reference/plugins/Makefile
464 docs/reference/plugins/plugins-docs.xml
466 gst-libs/gst/Makefile
467 gst-libs/gst/codecparsers/Makefile
468 gst-libs/gst/vaapi/Makefile
472 pkgconfig/gstreamer-vaapi-$GST_MAJORMINOR.pc:\
473 pkgconfig/gstreamer-vaapi.pc.in
474 pkgconfig/gstreamer-vaapi-glx-$GST_MAJORMINOR.pc:\
475 pkgconfig/gstreamer-vaapi-glx.pc.in
476 pkgconfig/gstreamer-vaapi-x11-$GST_MAJORMINOR.pc:\
477 pkgconfig/gstreamer-vaapi-x11.pc.in
484 test $1 -eq 1 && echo yes || echo no
488 AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
489 AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
490 AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
493 echo $PACKAGE configuration summary:
495 echo VA-API version ................... : $VA_VERSION_STR
496 echo Video outputs .................... : $VIDEO_OUTPUTS