# gstreamer-vaapi package version number
m4_define([gst_vaapi_major_version], [0])
m4_define([gst_vaapi_minor_version], [4])
-m4_define([gst_vaapi_micro_version], [0])
+m4_define([gst_vaapi_micro_version], [3])
m4_define([gst_vaapi_pre_version], [1])
m4_define([gst_vaapi_version],
[gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
# gst version number
m4_define([gst_major_version], [0])
m4_define([gst_minor_version], [10])
-m4_define([gst_micro_version], [14])
+m4_define([gst_micro_version], [36])
m4_define([gst_major_minor_version],
[gst_major_version.gst_minor_version])
m4_define([gst_version],
m4_define([gst_plugins_bad_version],
[gst_plugins_bad_major_version.gst_plugins_bad_minor_version.gst_plugins_bad_micro_version])
+# Wayland minimum version number
+m4_define([wayland_api_version], [1.0.0])
+
# VA-API minimum version number
m4_define([va_api_version], [0.30.4])
+m4_define([va_api_drm_version], [0.33.0])
m4_define([va_api_x11_version], [0.31.0])
m4_define([va_api_glx_version], [0.32.0])
+m4_define([va_api_wld_version], [0.33.0])
# libva package version number
+m4_define([libva_drm_package_version], [1.1.0])
m4_define([libva_x11_package_version], [1.0.3])
m4_define([libva_glx_package_version], [1.0.9])
+m4_define([libva_wld_package_version], [1.1.0])
# gtk-doc version number
# XXX: introspection annotations require gtk-doc >= 1.12
AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([1.11 tar-ustar no-dist-gzip dist-bzip2])
TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
AC_SUBST(TODAY)
LIBVA_PACKAGE_VERSION=libva_x11_package_version
AC_SUBST(LIBVA_PACKAGE_VERSION)
+WAYLAND_API_VERSION=wayland_api_version
+AC_SUBST(WAYLAND_API_VERSION)
+
dnl Versions for GStreamer and plugins-base
GST_MAJORMINOR=gst_major_minor_version
GST_VERSION_REQUIRED=gst_version
dnl Check for tools
AC_PROG_CC
AM_PROG_CC_C_O
-AC_PROG_LIBTOOL
+
+dnl Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT
+
+AC_ARG_ENABLE(drm,
+ AS_HELP_STRING([--enable-drm],
+ [enable DRM backend @<:@default=yes@:>@]),
+ [], [enable_drm="yes"])
AC_ARG_ENABLE(x11,
AS_HELP_STRING([--enable-x11],
[enable OpenGL/X11 output @<:@default=yes@:>@]),
[], [enable_glx="yes"])
+AC_ARG_ENABLE(wayland,
+ AC_HELP_STRING([--enable-wayland],
+ [enable Wayland output @<:@default=yes@:>@]),
+ [], [enable_wayland="yes"])
+
+AC_ARG_ENABLE(encoders,
+ AC_HELP_STRING([--enable-encoders],
+ [enable encoders @<:@default=no@:>@]),
+ [], [enable_encoders="no"])
+
+AC_ARG_ENABLE(jpeg,
+ AC_HELP_STRING([--disable-jpeg],
+ [disable jpeg decoder @<:@default=yes@:>@]),
+ [], [enable_jpeg="yes"])
+
+AC_ARG_ENABLE(mpeg4,
+ AC_HELP_STRING([--disable-mpeg4],
+ [disable mpeg4 decoders @<:@default=yes@:>@]),
+ [], [enable_mpeg4="yes"])
+
dnl Check for basic libraries
AC_CHECK_LIB(m, tan)
[gstreamer-basevideo-$GST_MAJORMINOR >= gst_plugins_bad_version])
dnl ... bitstream parsers
-USE_CODEC_PARSERS=1
-USE_LOCAL_CODEC_PARSERS=0
-
PKG_CHECK_MODULES([GST_CODEC_PARSERS],
[gstreamer-codecparsers-$GST_MAJORMINOR >= gst_plugins_bad_version])
-dnl ... 0.10.23 addition, could be implemented otherwise
-AC_CACHE_CHECK([for GstH264SliceHdr::n_emulation_prevention_bytes],
- ac_cv_have_gst_h264_slice_hdr_epb_count, [
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
+dnl ... MPEG-2 parser, with the required extensions
+AC_CACHE_CHECK([for MPEG-2 parser],
+ ac_cv_have_gst_mpeg2_parser, [
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <gst/codecparsers/gstmpegvideoparser.h>]],
+ [[GstMpegVideoSequenceHdr seq_hdr;
+ GstMpegVideoSequenceExt seq_ext;
+ GstMpegVideoSequenceDisplayExt seq_dpy;
+ gst_mpeg_video_finalise_mpeg2_sequence_header(&seq_hdr,
+ &seq_ext, &seq_dpy);]])],
+ [ac_cv_have_gst_mpeg2_parser="yes"],
+ [ac_cv_have_gst_mpeg2_parser="no"]
+ )
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+])
+AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_MPEG2],
+ [test "$ac_cv_have_gst_mpeg2_parser" != "yes"])
+
+dnl ... H.264 parser, with the required extensions
+AC_CACHE_CHECK([for H.264 parser],
+ ac_cv_have_gst_h264_parser, [
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
saved_LIBS="$LIBS"
LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <gst/codecparsers/gsth264parser.h>]],
[[GstH264SliceHdr slice_hdr;
- slice_hdr.n_emulation_prevention_bytes = 0;]])],
- [ac_cv_have_gst_h264_slice_hdr_epb_count="yes"],
- [ac_cv_have_gst_h264_slice_hdr_epb_count="no"]
+ GstH264VUIParams vui_params;
+ slice_hdr.n_emulation_prevention_bytes = 0;
+ vui_params.par_n = 0;
+ vui_params.par_d = 0;]])],
+ [ac_cv_have_gst_h264_parser="yes"],
+ [ac_cv_have_gst_h264_parser="no"]
)
- CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
LIBS="$saved_LIBS"
])
-
-if test "$ac_cv_have_gst_h264_slice_hdr_epb_count" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_GST_H264_SLICE_HDR_EPB_COUNT, 1,
- [Defined to 1 if GstH264SliceHdr::n_emulation_prevention_bytes exists.])
-fi
+AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_H264],
+ [test "$ac_cv_have_gst_h264_parser" != "yes"])
dnl ... JPEG parser, not upstream yet
AC_CACHE_CHECK([for JPEG parser],
ac_cv_have_gst_jpeg_parser, [
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_CODEC_PARSERS_CFLAGS"
saved_LIBS="$LIBS"
LIBS="$LIBS $GST_LIBS $GST_CODEC_PARSERS_LIBS"
AC_COMPILE_IFELSE(
[[#include <gst/codecparsers/gstjpegparser.h>]],
[[GstJpegImage jpeg_image;]])],
[ac_cv_have_gst_jpeg_parser="yes"],
- [ac_cv_have_gst_jpeg_parser="no" USE_LOCAL_CODEC_PARSERS=1]
+ [ac_cv_have_gst_jpeg_parser="no"]
)
- CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
LIBS="$saved_LIBS"
])
-
-if test "$ac_cv_have_gst_jpeg_parser" = "yes"; then
- AC_DEFINE_UNQUOTED(HAVE_GST_JPEG_PARSER, 1,
- [Defined to 1 if JPEG parser exists.])
-fi
-AM_CONDITIONAL(USE_LOCAL_CODEC_PARSERS, test $USE_LOCAL_CODEC_PARSERS -eq 1)
+AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
+ [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
dnl GST_ALL_LDFLAGS:
dnl LDFLAGS really should only contain flags, not libs - they get added before
AC_SUBST(GST_PLUGIN_LDFLAGS)
dnl Check for the GStreamer plugins directory
+AC_ARG_VAR([GST_PLUGIN_PATH], [installation path for gstreamer-vaapi plugin elements])
AC_MSG_CHECKING([for GStreamer plugins directory])
-GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_MAJORMINOR --variable pluginsdir`
-if test -z "$GST_PLUGINS_DIR"; then
- echo "FAIL FAIL FAIL"
- GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_MAJORMINOR"
+if test -d "$GST_PLUGIN_PATH"; then
+ GST_PLUGINS_DIR="$GST_PLUGIN_PATH"
+else
+ GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_MAJORMINOR --variable pluginsdir`
+ if test -z "$GST_PLUGINS_DIR"; then
+ GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_MAJORMINOR"
+ fi
fi
AC_MSG_RESULT([$GST_PLUGINS_DIR])
plugindir="$GST_PLUGINS_DIR"
dnl -- Renderers --
dnl ---------------------------------------------------------------------------
+dnl Check for DRM/libudev
+USE_DRM=0
+if test "$enable_drm" = "yes"; then
+ PKG_CHECK_MODULES(DRM, [libdrm], [USE_DRM=1], [USE_DRM=0])
+ PKG_CHECK_MODULES(UDEV, [libudev], [:], [USE_DRM=0])
+
+ if test $USE_DRM -eq 1; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $DRM_CFLAGS"
+ AC_CHECK_HEADERS([drm_fourcc.h], [:], [USE_DRM=0])
+ CPPFLAGS="$saved_CPPFLAGS"
+ fi
+fi
+
dnl Check for X11
USE_X11=0
if test "$enable_x11" = "yes"; then
PKG_CHECK_MODULES(X11, [x11], [USE_X11=1], [USE_X11=0])
if test $USE_X11 -eq 1; then
saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
AC_CHECK_HEADERS([X11/Xlib.h X11/Xutil.h X11/Xatom.h], [:], [USE_X11=0])
CPPFLAGS="$saved_CPPFLAGS"
fi
fi
+dnl Check for XRandR
+HAVE_XRANDR=0
+if test $USE_X11 -eq 1; then
+ HAVE_XRANDR=1
+ PKG_CHECK_MODULES([XRANDR], [xrandr], [:], [HAVE_XRANDR=0])
+ if test $HAVE_XRANDR -eq 1; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $XRANDR_CFLAGS"
+ AC_CHECK_HEADERS([X11/extensions/Xrandr.h], [:], [HAVE_XRANDR=0])
+ CPPFLAGS="$saved_CPPFLAGS"
+ fi
+fi
+if test $HAVE_XRANDR -eq 1; then
+ AC_DEFINE_UNQUOTED(HAVE_XRANDR, 1,
+ [Defined to 1 if the XRandR extension exists.])
+fi
+
dnl OpenGL
enable_opengl="no"
if test "$enable_glx" = "yes"; then
CPPFLAGS="$saved_CPPFLAGS"
fi
+dnl Check for encoders
+USE_ENCODERS=0
+if test "$enable_encoders" = "yes"; then
+ USE_ENCODERS=1
+fi
+
+AC_DEFINE_UNQUOTED(USE_ENCODERS, $USE_ENCODERS,
+ [Defined to 1 if GStreamer Vaapi Encoder are used])
+AM_CONDITIONAL(USE_ENCODERS, test $USE_ENCODERS -eq 1)
+
dnl ... GLX
USE_GLX=0
if test "$enable_glx" = "yes" -a $HAVE_GL -eq 1 -a $USE_X11 -eq 1; then
LIBS="$saved_LIBS"
fi
+dnl Check for Wayland
+USE_WAYLAND=0
+if test "$enable_wayland" = "yes"; then
+ PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
+ [USE_WAYLAND=1], [USE_WAYLAND=0])
+
+ if test $USE_WAYLAND -eq 1; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $WAYLAND_CFLAGS"
+ AC_CHECK_HEADERS([wayland-client.h], [:], [USE_WAYLAND=0])
+ CPPFLAGS="$saved_CPPFLAGS"
+ fi
+fi
+
dnl ---------------------------------------------------------------------------
dnl -- VA-API --
dnl ---------------------------------------------------------------------------
VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
VA_VERSION_STR="$VA_VERSION"
+dnl VA/DRM API
+HAVE_VA_DRM=0
+if test $USE_DRM -eq 1; then
+ PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm >= va_api_drm_version],
+ [HAVE_VA_DRM=1], [USE_DRM=0])
+
+ if test $HAVE_VA_DRM -eq 1; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$LIBVA_DRM_CFLAGS"
+ AC_CHECK_HEADERS([va/va_drm.h], [:], [HAVE_VA_DRM=0 USE_DRM=0])
+ CPPFLAGS="$saved_CPPFLAGS"
+ fi
+fi
+
dnl VA/X11 API
HAVE_VA_X11=0
LIBVA_X11_PKGNAME="libva-x11"
if test $HAVE_VA_GLX -eq 1; then
saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$LIBVA_GLX_CPPFLAGS"
+ CPPFLAGS="$LIBVA_GLX_CFLAGS"
AC_CHECK_HEADERS([va/va_glx.h], [:], [HAVE_VA_GLX=0])
CPPFLAGS="$saved_CPPFLAGS"
fi
fi
AC_SUBST(LIBVA_GLX_PKGNAME)
-dnl Check for JPEG decoding API (0.33+)
+dnl Check for JPEG decoding API (0.32.1+)
USE_JPEG_DECODER=0
+if test "$enable_jpeg" = "yes"; then
AC_CACHE_CHECK([for JPEG decoding API],
ac_cv_have_jpeg_decoding_api, [
saved_CFLAGS="$CFLAGS"
LIBS="$CFLAGS $LIBVA_LIBS"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
- [[#include <va/va.h>
- #include <va/va_dec_jpeg.h>]],
- [[VAPictureParameterBufferJPEG pic_param;
- VASliceParameterBufferJPEG slice_param;
- VAHuffmanTableBufferJPEG huffman_table;
- VAIQMatrixBufferJPEG iq_matrix;]])],
+ [[#include <va/va.h>]],
+ [[VAPictureParameterBufferJPEGBaseline pic_param;
+ VASliceParameterBufferJPEGBaseline slice_param;
+ VAHuffmanTableBufferJPEGBaseline huffman_table;
+ VAIQMatrixBufferJPEGBaseline iq_matrix;]])],
[ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
[ac_cv_have_jpeg_decoding_api="no"]
)
CFLAGS="$saved_CFLAGS"
LIBS="$saved_LIBS"
])
+fi
+
+dnl Check for MPEG-4 decoding
+USE_MPEG4_DECODER=1
+if test "$enable_mpeg4" = "no"; then
+ USE_MPEG4_DECODER=0
+fi
+
+dnl Check libva old H.264 encoder API
+HAVE_OLD_H264_ENCODER=0
+AC_CACHE_CHECK([for H264 encoder old structures],
+ ac_cv_have_old_h264_encoder, [
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $LIBVA_CFLAGS"
+ saved_LIBS="$LIBS"
+ LIBS="$CFLAGS $LIBVA_LIBS"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <va/va_enc_h264.h>]],
+ [[VAEncSequenceParameterBufferH264 seq;
+ seq.seq_fields.value = 0;
+ seq.vui_fields.value = 0;]])],
+ [ac_cv_have_old_h264_encoder="no" HAVE_OLD_H264_ENCODER=0],
+ [ac_cv_have_old_h264_encoder="yes" HAVE_OLD_H264_ENCODER=1]
+ )
+ CFLAGS="$saved_CFLAGS"
+ LIBS="$saved_LIBS"
+])
+
+AC_DEFINE_UNQUOTED(HAVE_OLD_H264_ENCODER, $HAVE_OLD_H264_ENCODER,
+ [Defined to 1 if old h264 encoder API exists.])
+
+dnl Check for vpp (video post-processing) support
+HAVE_VA_VPP=1
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $LIBVA_CFLAGS"
+AC_CHECK_HEADERS([va/va_vpp.h], [:], [HAVE_VA_VPP=0],
+ [[#include <va/va.h>
+ #include <va/va_vpp.h>]])
+CFLAGS="$saved_CFLAGS"
+
+dnl VA/Wayland API
+if test "$enable_wayland" = "yes"; then
+ PKG_CHECK_MODULES([LIBVA_WAYLAND], [libva-wayland >= va_api_wld_version],
+ [:], [USE_WAYLAND=0])
+fi
dnl ---------------------------------------------------------------------------
dnl -- Generate files and summary --
dnl ---------------------------------------------------------------------------
-case ":$USE_X11:$USE_GLX:" in
+case ":$USE_X11:$USE_GLX:$USE_WAYLAND:$USE_DRM:" in
*:1:*)
;;
*)
;;
esac
+AC_DEFINE_UNQUOTED(USE_VA_VPP, $HAVE_VA_VPP,
+ [Defined to 1 if video post-processing is used])
+AM_CONDITIONAL(USE_VA_VPP, test $HAVE_VA_VPP -eq 1)
+
AC_DEFINE_UNQUOTED(USE_JPEG_DECODER, $USE_JPEG_DECODER,
[Defined to 1 if JPEG decoder is used])
AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
+AC_DEFINE_UNQUOTED(USE_MPEG4_DECODER, $USE_MPEG4_DECODER,
+ [Defined to 1 if MPEG4 decoder is used])
+AM_CONDITIONAL(USE_MPEG4_DECODER, test $USE_MPEG4_DECODER -eq 1)
+
+AC_DEFINE_UNQUOTED(USE_DRM, $USE_DRM,
+ [Defined to 1 if DRM is enabled])
+AM_CONDITIONAL(USE_DRM, test $USE_DRM -eq 1)
+
AC_DEFINE_UNQUOTED(USE_X11, $USE_X11,
[Defined to 1 if X11 is enabled])
AM_CONDITIONAL(USE_X11, test $USE_X11 -eq 1)
[Defined to 1 if GLX is enabled])
AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
+AC_DEFINE_UNQUOTED(USE_WAYLAND, $USE_WAYLAND,
+ [Defined to 1 if WAYLAND is enabled])
+AM_CONDITIONAL(USE_WAYLAND, test $USE_WAYLAND -eq 1)
+
pkgconfigdir=${libdir}/pkgconfig
AC_SUBST(pkgconfigdir)
debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
debian.upstream/libgstvaapi.install.in
debian.upstream/libgstvaapi-dev.install
+ debian.upstream/libgstvaapi-drm-$GST_VAAPI_MAJOR_VERSION.install:\
+debian.upstream/libgstvaapi-drm.install.in
debian.upstream/libgstvaapi-glx-$GST_VAAPI_MAJOR_VERSION.install:\
debian.upstream/libgstvaapi-glx.install.in
+ debian.upstream/libgstvaapi-wayland-$GST_VAAPI_MAJOR_VERSION.install:\
+debian.upstream/libgstvaapi-wayland.install.in
debian.upstream/libgstvaapi-x11-$GST_VAAPI_MAJOR_VERSION.install:\
debian.upstream/libgstvaapi-x11.install.in
docs/Makefile
docs/reference/libs/libs-docs.xml
docs/reference/plugins/Makefile
docs/reference/plugins/plugins-docs.xml
+ ext/Makefile
gst-libs/Makefile
gst-libs/gst/Makefile
gst-libs/gst/codecparsers/Makefile
pkgconfig/Makefile
pkgconfig/gstreamer-vaapi-$GST_MAJORMINOR.pc:\
pkgconfig/gstreamer-vaapi.pc.in
+ pkgconfig/gstreamer-vaapi-drm-$GST_MAJORMINOR.pc:\
+pkgconfig/gstreamer-vaapi-drm.pc.in
pkgconfig/gstreamer-vaapi-glx-$GST_MAJORMINOR.pc:\
pkgconfig/gstreamer-vaapi-glx.pc.in
+ pkgconfig/gstreamer-vaapi-wayland-$GST_MAJORMINOR.pc:\
+pkgconfig/gstreamer-vaapi-wayland.pc.in
pkgconfig/gstreamer-vaapi-x11-$GST_MAJORMINOR.pc:\
pkgconfig/gstreamer-vaapi-x11.pc.in
tests/Makefile
}
VIDEO_OUTPUTS=""
+AS_IF([test $USE_DRM -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS drm"])
AS_IF([test $USE_X11 -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS x11"])
AS_IF([test $USE_GLX -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS glx"])
+AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
echo
echo $PACKAGE configuration summary:
echo
echo VA-API version ................... : $VA_VERSION_STR
echo Video outputs .................... : $VIDEO_OUTPUTS
+echo VaapiEncoder support....... ...... : $(yesno $USE_ENCODERS)
echo