# gstreamer-vaapi package version number
m4_define([gst_vaapi_major_version], [0])
m4_define([gst_vaapi_minor_version], [5])
-m4_define([gst_vaapi_micro_version], [8])
+m4_define([gst_vaapi_micro_version], [9])
m4_define([gst_vaapi_pre_version], [1])
m4_define([gst_vaapi_version],
[gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
])
# gstreamer-vaapi library (libtool) version number
-m4_define([gst_vaapi_lt_current], [4])
+m4_define([gst_vaapi_lt_current], [5])
m4_define([gst0_vaapi_lt_current_bias], [0])
m4_define([gst1_vaapi_lt_current_bias], [2])
m4_define([gst2_vaapi_lt_current_bias], [4])
+m4_define([gst4_vaapi_lt_current_bias], [5])
m4_define([gst_vaapi_lt_revision], [0])
m4_define([gst_vaapi_lt_age], [0])
m4_define([gst12_version], [1.1.90])
m4_define([gst12_plugins_base_version], [1.1.0])
m4_define([gst12_plugins_bad_version], [1.1.0])
+m4_define([gst14_version], [1.2.90])
+m4_define([gst14_plugins_base_version], [1.3.0])
+m4_define([gst14_plugins_bad_version], [1.3.0])
# Wayland minimum version number
m4_define([wayland_api_version], [1.0.0])
AC_PATH_PROG([GIT], [git])
AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
+AC_ARG_VAR([YASM], [Path to yasm program, if any])
+AC_PATH_PROG([YASM], [yasm])
+if test -z "$YASM" -a "$enable_builtin_libvpx" = "yes"; then
+ AC_MSG_ERROR([yasm is needed to build libvpx sources])
+fi
+
dnl Initialize libtool
LT_PREREQ([2.2])
LT_INIT
+AC_ARG_ENABLE(builtin_videoparsers,
+ AS_HELP_STRING([--enable-builtin-videoparsers],
+ [enable built-in videoparsers @<:@default=yes@:>@]),
+ [], [enable_builtin_videoparsers="yes"])
+
AC_ARG_ENABLE(builtin_codecparsers,
AS_HELP_STRING([--enable-builtin-codecparsers],
[enable built-in codecparsers @<:@default=yes@:>@]),
[], [enable_builtin_codecparsers="yes"])
+AC_ARG_ENABLE(builtin_libvpx,
+ AS_HELP_STRING([--enable-builtin-libvpx],
+ [enable built-in libvpx @<:@default=yes@:>@]),
+ [], [enable_builtin_libvpx="yes"])
+
AC_ARG_ENABLE([encoders],
AS_HELP_STRING([--enable-encoders],
[enable video encoders @<:@default=yes@:>@]),
GST_PLUGINS_BASE_VERSION_REQUIRED=gst12_plugins_base_version
GST_PLUGINS_BAD_VERSION_REQUIRED=gst12_plugins_bad_version
;;
+1.3)
+ GST_VERSION_REQUIRED=gst14_version
+ GST_PLUGINS_BASE_VERSION_REQUIRED=gst14_plugins_base_version
+ GST_PLUGINS_BAD_VERSION_REQUIRED=gst14_plugins_bad_version
+ ;;
*)
AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
;;
fi
AC_SUBST([GST_PKG_VERSION])
+dnl Validate certain features
+if test "$USE_GST_API_0_10" = "yes"; then
+ AC_MSG_WARN([support for GStreamer 0.10 is obsolete, and will be removed])
+ if test "$enable_builtin_videoparsers" = "yes"; then
+ AC_MSG_WARN([disabled built-in videoparsers (unsupported)])
+ enable_builtin_videoparsers="no"
+ fi
+elif test "$USE_GST_API_1_2p" != "yes"; then
+ AC_MSG_WARN([support for GStreamer < 1.2 is deprecated, please upgrade])
+fi
+
dnl GStreamer Core
PKG_CHECK_MODULES([GST],
[gstreamer-$GST_PKG_VERSION >= $GST_VERSION_REQUIRED])
AC_CACHE_CHECK([for GstVideoOverlayComposition],
ac_cv_have_gst_video_overlay_composition, [
saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $GST_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_VIDEO_CFLAGS"
saved_LIBS="$LIBS"
- LIBS="$LIBS $GST_LIBS"
+ LIBS="$LIBS $GST_LIBS $GST_VIDEO_LIBS"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <gst/video/video-overlay-composition.h>]],
[Defined to 1 if GstVideoOverlayComposition API supports HW hints.])
fi
-dnl ... GstVideoDecoder (gstreamer-video)
-AC_CACHE_CHECK([for GstVideoDecoder],
- ac_cv_have_gst_video_decoder, [
- saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $GST_CFLAGS $GST_VIDEO_CFLAGS"
- saved_LIBS="$LIBS"
- LIBS="$LIBS $GST_LIBS $GST_VIDEO_LIBS"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <gst/video/gstvideodecoder.h>]],
- [[GstVideoCodecFrame *f;
- GstVideoDecoder vdec;
- f = g_slice_new0(GstVideoCodecFrame);
- f->ref_count = 1;
- gst_video_decoder_have_frame(&vdec);
- gst_video_decoder_finish_frame(&vdec, f);
- gst_video_codec_frame_unref(f);]])],
- [ac_cv_have_gst_video_decoder="yes"],
- [ac_cv_have_gst_video_decoder="no"]
- )
- CPPFLAGS="$saved_CPPFLAGS"
- LIBS="$saved_LIBS"
-])
-AM_CONDITIONAL([USE_LOCAL_GST_VIDEO_DECODER],
- [test "$ac_cv_have_gst_video_decoder" != "yes"])
-
dnl GStreamer -bad plugins (deprecated in GStreamer v1.2)
if test "$USE_GST_API_1_2p" != "yes"; then
PKG_CHECK_MODULES([GST_BASEVIDEO],
ac_cv_have_gst_mpeg2_parser="no"
ac_cv_have_gst_h264_parser="no"
ac_cv_have_gst_jpeg_parser="no"
+ ac_cv_have_gst_vp8_parser="no"
else
PKG_CHECK_MODULES([GST_CODEC_PARSERS],
[gstreamer-codecparsers-$GST_PKG_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
[test "$ac_cv_have_gst_jpeg_parser" != "yes"])
+dnl ... VP8 parser, not upstream yet
+if test "$enable_builtin_libvpx" = "yes"; then
+ ac_cv_have_gst_vp8_parser="no"
+fi
+AC_CACHE_CHECK([for VP8 parser],
+ ac_cv_have_gst_vp8_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/gstvp8parser.h>]],
+ [[GstVp8FrameHdr frame_hdr;]])],
+ [ac_cv_have_gst_vp8_parser="yes"],
+ [ac_cv_have_gst_vp8_parser="no"]
+ )
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+])
+AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_VP8],
+ [test "$ac_cv_have_gst_vp8_parser" != "yes"])
+AM_CONDITIONAL([USE_BUILTIN_LIBVPX], [test "$enable_builtin_libvpx" = "yes"])
+
+dnl ... video parsers
+AM_CONDITIONAL([USE_LOCAL_VIDEO_PARSERS],
+ [test "$enable_builtin_videoparsers" = "yes"])
+
case $GST_API_VERSION in
0.10) lt_bias=gst0_vaapi_lt_current_bias;;
1.0) lt_bias=gst1_vaapi_lt_current_bias;;
1.2) lt_bias=gst2_vaapi_lt_current_bias;;
+1.3) lt_bias=gst4_vaapi_lt_current_bias;;
esac
GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
AC_SUBST(GST_VAAPI_MAJOR_VERSION)
AC_ARG_VAR([GST_PLUGIN_PATH], [installation path for gstreamer-vaapi plugin elements for GStreamer 0.10])
AC_ARG_VAR([GST_PLUGIN_PATH_1_0], [installation path for gstreamer-vaapi plugin elements for GStreamer 1.0])
AC_MSG_CHECKING([for GStreamer plugins directory])
-case $GST_API_VERSION in
+case $GST_PKG_VERSION in
0.10) _gst_plugin_path="$GST_PLUGIN_PATH";;
1.0) _gst_plugin_path="$GST_PLUGIN_PATH_1_0";;
-1.2) _gst_plugin_path="$GST_PLUGIN_PATH_1_0";;
esac
if test -d "$_gst_plugin_path"; then
GST_PLUGINS_DIR="$_gst_plugin_path"
LIBS="$saved_LIBS"
])
+dnl Check for va_dec_vp8.h header
+saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
+AC_CHECK_HEADERS([va/va_dec_vp8.h], [], [], [#include <va/va.h>])
+CPPFLAGS="$saved_CPPFLAGS"
+
+dnl Check for VP8 decoding API (0.34+)
+USE_VP8_DECODER=0
+AC_CACHE_CHECK([for VP8 decoding API],
+ ac_cv_have_vp8_decoding_api, [
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBVA_LIBS"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <va/va.h>
+ #ifdef HAVE_VA_VA_DEC_VP8_H
+ #include <va/va_dec_vp8.h>
+ #endif
+ ]],
+ [[VAPictureParameterBufferVP8 pic_param;
+ VASliceParameterBufferVP8 slice_param;
+ VAProbabilityDataBufferVP8 prob_data;
+ VAIQMatrixBufferVP8 iq_matrix;
+ slice_param.slice_data_offset = 0;
+ slice_param.slice_data_flag = 0;]])],
+ [ac_cv_have_vp8_decoding_api="yes" USE_VP8_DECODER=1],
+ [ac_cv_have_vp8_decoding_api="no"]
+ )
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+])
+
+
dnl Check for vpp (video post-processing) support
USE_VA_VPP=0
AC_CACHE_CHECK([for video post-postprocessing API],
[Defined to 1 if JPEG decoder is used])
AM_CONDITIONAL(USE_JPEG_DECODER, test $USE_JPEG_DECODER -eq 1)
+AC_DEFINE_UNQUOTED(USE_VP8_DECODER, $USE_VP8_DECODER,
+ [Defined to 1 if VP8 decoder is used])
+AM_CONDITIONAL(USE_VP8_DECODER, test $USE_VP8_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)
debian.upstream/gstreamer-vaapi-doc.install.in
debian.upstream/gstreamer$GST_API_VERSION-vaapi.install:\
debian.upstream/gstreamer-vaapi.install.in
- debian.upstream/libgstvaapi$GST_API_VERSION-dev.install:\
+ debian.upstream/libgstvaapi$GST_PKG_VERSION-dev.install:\
debian.upstream/libgstvaapi-dev.install.in
debian.upstream/libgstvaapi$GST_VAAPI_MAJOR_VERSION.install:\
debian.upstream/libgstvaapi.install.in
docs/reference/plugins/Makefile
docs/reference/plugins/plugins-docs.xml
ext/Makefile
+ ext/libvpx/Makefile
gst-libs/Makefile
gst-libs/gst/Makefile
gst-libs/gst/base/Makefile
gst-libs/gst/video/Makefile
gst/Makefile
gst/vaapi/Makefile
+ patches/Makefile
+ patches/videoparsers/Makefile
pkgconfig/Makefile
- pkgconfig/gstreamer-vaapi-$GST_API_VERSION.pc:\
+ pkgconfig/gstreamer-vaapi-$GST_PKG_VERSION.pc:\
pkgconfig/gstreamer-vaapi.pc.in
- pkgconfig/gstreamer-vaapi-drm-$GST_API_VERSION.pc:\
+ pkgconfig/gstreamer-vaapi-drm-$GST_PKG_VERSION.pc:\
pkgconfig/gstreamer-vaapi-drm.pc.in
- pkgconfig/gstreamer-vaapi-glx-$GST_API_VERSION.pc:\
+ pkgconfig/gstreamer-vaapi-glx-$GST_PKG_VERSION.pc:\
pkgconfig/gstreamer-vaapi-glx.pc.in
- pkgconfig/gstreamer-vaapi-wayland-$GST_API_VERSION.pc:\
+ pkgconfig/gstreamer-vaapi-wayland-$GST_PKG_VERSION.pc:\
pkgconfig/gstreamer-vaapi-wayland.pc.in
- pkgconfig/gstreamer-vaapi-x11-$GST_API_VERSION.pc:\
+ pkgconfig/gstreamer-vaapi-x11-$GST_PKG_VERSION.pc:\
pkgconfig/gstreamer-vaapi-x11.pc.in
tests/Makefile
])