vaapipostproc: add support for crop regions in VPP mode.
[platform/upstream/gstreamer-vaapi.git] / configure.ac
index 762f0c6..e383de4 100644 (file)
@@ -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;;
@@ -665,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],
@@ -737,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)
@@ -784,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
@@ -792,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
 ])