decoder: h264: fix the DPB compaction process.
[platform/upstream/gstreamer-vaapi.git] / configure.ac
index 39ac913..e383de4 100644 (file)
@@ -1,7 +1,7 @@
 # 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])
@@ -10,11 +10,11 @@ m4_append([gst_vaapi_version], gst_vaapi_pre_version, [.pre])
 ])
 
 # 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], [4])
+m4_define([gst4_vaapi_lt_current_bias], [5])
 m4_define([gst_vaapi_lt_revision],      [0])
 m4_define([gst_vaapi_lt_age],           [0])
 
@@ -95,15 +95,31 @@ AC_ARG_VAR([GIT], [Path to git program, if any])
 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@:>@]),
@@ -335,6 +351,7 @@ if test "$enable_builtin_codecparsers" = "yes"; then
     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])
@@ -413,6 +430,34 @@ AC_CACHE_CHECK([for JPEG parser],
 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;;
@@ -447,10 +492,9 @@ dnl Check for the GStreamer plugins directory
 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"
@@ -666,6 +710,41 @@ AC_CACHE_CHECK([for JPEG decoding API],
     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],
@@ -706,11 +785,6 @@ if test "$enable_encoders" = "yes"; then
             ])
         CPPFLAGS="$saved_CPPFLAGS"
     fi
-
-    if test "$USE_GST_API_1_0p" != "yes"; then
-        AC_MSG_WARN([GStreamer API < 1.0, disabling encoders])
-        USE_ENCODERS=0
-    fi
 fi
 
 dnl VA/Wayland API
@@ -743,6 +817,10 @@ 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_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)
@@ -790,6 +868,7 @@ debian.upstream/libgstvaapi-x11.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
@@ -798,16 +877,18 @@ debian.upstream/libgstvaapi-x11.install.in
     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
 ])