0.5.5.
[platform/upstream/gstreamer-vaapi.git] / configure.ac
index 7291eb2..8e7855e 100644 (file)
@@ -1,66 +1,54 @@
 # 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_pre_version],   [1])
+m4_define([gst_vaapi_minor_version], [5])
+m4_define([gst_vaapi_micro_version], [5])
+m4_define([gst_vaapi_pre_version],   [0])
 m4_define([gst_vaapi_version],
           [gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
 m4_if(gst_vaapi_pre_version, [0], [], [
 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([gst0_vaapi_lt_current_bias], [0])
+m4_define([gst1_vaapi_lt_current_bias], [2])
+m4_define([gst_vaapi_lt_revision],      [0])
+m4_define([gst_vaapi_lt_age],           [0])
+
 # glib version number
-m4_define([glib_major_version], [2])
-m4_define([glib_minor_version], [28])
-m4_define([glib_micro_version], [0])
-m4_define([glib_major_minor_version],
-          [glib_major_version.glib_minor_version])
-m4_define([glib_version],
-          [glib_major_version.glib_minor_version.glib_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_major_minor_version],
-          [gst_major_version.gst_minor_version])
-m4_define([gst_version],
-          [gst_major_version.gst_minor_version.gst_micro_version])
-
-# gst plugins-base version number
-m4_define([gst_plugins_base_major_version], [0])
-m4_define([gst_plugins_base_minor_version], [10])
-m4_define([gst_plugins_base_micro_version], [31])
-m4_define([gst_plugins_base_version],
-          [gst_plugins_base_major_version.gst_plugins_base_minor_version.gst_plugins_base_micro_version])
-
-# gst plugins-bad version number
-m4_define([gst_plugins_bad_major_version], [0])
-m4_define([gst_plugins_bad_minor_version], [10])
-m4_define([gst_plugins_bad_micro_version], [22])
-m4_define([gst_plugins_bad_version],
-          [gst_plugins_bad_major_version.gst_plugins_bad_minor_version.gst_plugins_bad_micro_version])
+m4_define([glib_version], [2.28])
+
+# gstreamer version number
+m4_define([gst_api_version],            [1.0])
+m4_define([gst0_version],               [0.10.36])
+m4_define([gst0_plugins_base_version],  [0.10.31])
+m4_define([gst0_plugins_bad_version],   [0.10.22])
+m4_define([gst1_version],               [1.0.0])
+m4_define([gst1_plugins_base_version],  [1.0.0])
+m4_define([gst1_plugins_bad_version],   [1.0.0])
+
+# 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.34.0])
+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.34.0])
+m4_define([va_api_wld_version], [0.33.0])
 
 # libva package version number
-m4_define([libva_drm_package_version], [1.2.0])
+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.2.0])
+m4_define([libva_wld_package_version], [1.1.0])
 
 # gtk-doc version number
 # XXX: introspection annotations require gtk-doc >= 1.12
-m4_define([gtkdoc_major_version], [1])
-m4_define([gtkdoc_minor_version], [9])
-m4_define([gtkdoc_version], [gtkdoc_major_version.gtkdoc_minor_version])
+m4_define([gtkdoc_version], [1.9])
 
-AC_PREREQ([2.58])
+AC_PREREQ([2.66])
 AC_INIT([gst_vaapi], [gst_vaapi_version],
     [gwenole.beauchesne@intel.com],
     [gstreamer-vaapi])
@@ -72,26 +60,16 @@ AC_CONFIG_AUX_DIR([build-aux])
 
 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)
 
-GST_VAAPI_MAJOR_VERSION=gst_vaapi_major_version
-AC_SUBST(GST_VAAPI_MAJOR_VERSION)
-
 LIBVA_PACKAGE_VERSION=libva_x11_package_version
 AC_SUBST(LIBVA_PACKAGE_VERSION)
 
-dnl Versions for GStreamer and plugins-base
-GST_MAJORMINOR=gst_major_minor_version
-GST_VERSION_REQUIRED=gst_version
-GST_PLUGINS_BASE_VERSION_REQUIRED=gst_plugins_base_version
-GST_PLUGINS_BAD_VERSION_REQUIRED=gst_plugins_bad_version
-AC_SUBST(GST_MAJORMINOR)
-AC_SUBST(GST_VERSION_REQUIRED)
-AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
-AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
+WAYLAND_API_VERSION=wayland_api_version
+AC_SUBST(WAYLAND_API_VERSION)
 
 dnl Use pretty build output with automake >= 1.11
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
@@ -103,10 +81,19 @@ dnl Check for tools
 AC_PROG_CC
 AM_PROG_CC_C_O
 
+AC_ARG_VAR([GIT], [Path to git program, if any])
+AC_PATH_PROG([GIT], [git])
+AM_CONDITIONAL([HAVE_GIT], [test -n "$GIT"])
+
 dnl Initialize libtool
 LT_PREREQ([2.2])
 LT_INIT
 
+AC_ARG_ENABLE(builtin_codecparsers,
+    AS_HELP_STRING([--enable-builtin-codecparsers],
+                   [enable built-in codecparsers @<:@default=yes@:>@]),
+    [], [enable_builtin_codecparsers="yes"])
+
 AC_ARG_ENABLE(drm,
     AS_HELP_STRING([--enable-drm],
                    [enable DRM backend @<:@default=yes@:>@]),
@@ -127,6 +114,12 @@ AC_ARG_ENABLE(wayland,
                    [enable Wayland output @<:@default=yes@:>@]),
     [], [enable_wayland="yes"])
 
+AC_ARG_WITH([gstreamer-api],
+    AC_HELP_STRING([--with-gstreamer-api=VERSION],
+                   [build against the specified GStreamer API version
+                    @<:@default=gst_api_version@:>@]),
+    [GST_API_VERSION="$with_gstreamer_api"], [GST_API_VERSION=gst_api_version])
+
 dnl Check for basic libraries
 AC_CHECK_LIB(m, tan)
 
@@ -143,17 +136,55 @@ GLIB_VERSION_REQUIRED=glib_version
 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $GLIB_VERSION_REQUIRED])
 AC_SUBST(GLIB_VERSION_REQUIRED)
 
+dnl Check to see if dlopen is in default libraries (like Solaris, which
+dnl has it in libc), or if libdl is needed to get it.
+AC_CHECK_FUNC([dlopen], [], [
+    AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
+AC_SUBST([DLOPEN_LIBS])
+
 dnl ---------------------------------------------------------------------------
 dnl -- GStreamer                                                             --
 dnl ---------------------------------------------------------------------------
 
+dnl Versions for GStreamer and plugins-base
+case $GST_API_VERSION in
+0.10)
+    GST_VERSION_REQUIRED=gst0_version
+    GST_PLUGINS_BASE_VERSION_REQUIRED=gst0_plugins_base_version
+    GST_PLUGINS_BAD_VERSION_REQUIRED=gst0_plugins_bad_version
+    ;;
+1.0)
+    GST_VERSION_REQUIRED=gst1_version
+    GST_PLUGINS_BASE_VERSION_REQUIRED=gst1_plugins_base_version
+    GST_PLUGINS_BAD_VERSION_REQUIRED=gst1_plugins_bad_version
+    ;;
+*)
+    AC_MSG_ERROR([unsupported GStreamer API version $GST_API_VERSION])
+    ;;
+esac
+AC_SUBST(GST_API_VERSION)
+AC_SUBST(GST_VERSION_REQUIRED)
+AC_SUBST(GST_PLUGINS_BASE_VERSION_REQUIRED)
+AC_SUBST(GST_PLUGINS_BAD_VERSION_REQUIRED)
+
+USE_GST_API_0_10="no"
+USE_GST_API_1_0p="no"
+AS_VERSION_COMPARE([$GST_API_VERSION], [0.10],
+    [], [USE_GST_API_0_10="yes"], [])
+AS_VERSION_COMPARE([$GST_API_VERSION], [1.0],
+    [], [USE_GST_API_1_0p="yes"], [USE_GST_API_1_0p="yes"])
+AM_CONDITIONAL([USE_GST_API_0_10], [test "$USE_GST_API_0_10" = "yes"])
+AM_CONDITIONAL([USE_GST_API_1_0p], [test "$USE_GST_API_1_0p" = "yes"])
+
 dnl GStreamer Core
-PKG_CHECK_MODULES([GST],      [gstreamer-$GST_MAJORMINOR >= gst_version])
-PKG_CHECK_MODULES([GST_BASE], [gstreamer-base-$GST_MAJORMINOR >= gst_version])
+PKG_CHECK_MODULES([GST],
+    [gstreamer-$GST_API_VERSION >= $GST_VERSION_REQUIRED])
+PKG_CHECK_MODULES([GST_BASE],
+    [gstreamer-base-$GST_API_VERSION >= $GST_VERSION_REQUIRED])
 
 AC_CACHE_CHECK([for GstBaseSink::query hook], ac_cv_have_gst_base_sink_query, [
-    saved_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS $GST_BASE_CFLAGS"
+    saved_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $GST_BASE_CFLAGS"
     saved_LIBS="$LIBS"
     LIBS="$LIBS $GST_BASE_LIBS"
     AC_COMPILE_IFELSE(
@@ -163,7 +194,7 @@ AC_CACHE_CHECK([for GstBaseSink::query hook], ac_cv_have_gst_base_sink_query, [
         [ac_cv_have_gst_base_sink_query="yes"],
         [ac_cv_have_gst_base_sink_query="no"]
     )
-    CFLAGS="$saved_CFLAGS"
+    CPPFLAGS="$saved_CPPFLAGS"
     LIBS="$saved_LIBS"
 ])
 if test "$ac_cv_have_gst_base_sink_query" != "yes"; then
@@ -172,74 +203,163 @@ fi
 
 dnl GStreamer -base plugins
 PKG_CHECK_MODULES([GST_PLUGINS_BASE],
-    [gstreamer-plugins-base-$GST_MAJORMINOR >= gst_plugins_base_version])
+    [gstreamer-plugins-base-$GST_API_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
+if test "$GST_API_VERSION" = "0.10"; then
 PKG_CHECK_MODULES([GST_INTERFACES],
-    [gstreamer-interfaces-$GST_MAJORMINOR >= gst_plugins_base_version])
+    [gstreamer-interfaces-$GST_API_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
+fi
 
 dnl ... GstVideoOverlayComposition (gstreamer-video)
 PKG_CHECK_MODULES([GST_VIDEO],
-    [gstreamer-video-$GST_MAJORMINOR >= gst_plugins_base_version])
+    [gstreamer-video-$GST_API_VERSION >= $GST_PLUGINS_BASE_VERSION_REQUIRED])
 
 AC_CACHE_CHECK([for GstVideoOverlayComposition],
     ac_cv_have_gst_video_overlay_composition, [
-    saved_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS $GST_CFLAGS"
+    saved_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $GST_CFLAGS"
     saved_LIBS="$LIBS"
     LIBS="$LIBS $GST_LIBS"
     AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM(
             [[#include <gst/video/video-overlay-composition.h>]],
-            [[GstVideoOverlayComposition *c = gst_video_overlay_composition_new(0);]])],
+            [[GstVideoOverlayComposition *c;
+              c = gst_video_overlay_composition_new(0);]])],
         [ac_cv_have_gst_video_overlay_composition="yes"],
         [ac_cv_have_gst_video_overlay_composition="no"]
     )
-    CFLAGS="$saved_CFLAGS"
+    CPPFLAGS="$saved_CPPFLAGS"
     LIBS="$saved_LIBS"
 ])
 if test "$ac_cv_have_gst_video_overlay_composition" != "yes"; then
     AC_MSG_ERROR([GstVideoOverlayComposition is not available])
 fi
 
+AC_CACHE_CHECK([... with advanced format flags],
+    ac_cv_have_gst_video_overlay_hwcaps, [
+    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/video-overlay-composition.h>]],
+            [[GstVideoOverlayRectangle *rect;
+              const guint w = 64, h = 64;
+              guint flags = (
+                  GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA|
+                  GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA);
+              rect = gst_video_overlay_rectangle_new_argb(NULL, w, h, w * 4,
+                  0, 0, w, h, flags);
+              gst_video_overlay_rectangle_set_global_alpha(rect, 0.5f);]])],
+        [ac_cv_have_gst_video_overlay_hwcaps="yes"],
+        [ac_cv_have_gst_video_overlay_hwcaps="no"]
+    )
+    CPPFLAGS="$saved_CPPFLAGS"
+    LIBS="$saved_LIBS"
+])
+if test "$ac_cv_have_gst_video_overlay_hwcaps" = "yes"; then
+    AC_DEFINE_UNQUOTED([HAVE_GST_VIDEO_OVERLAY_HWCAPS], 1,
+        [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
 PKG_CHECK_MODULES([GST_BASEVIDEO],
-    [gstreamer-basevideo-$GST_MAJORMINOR >= gst_plugins_bad_version])
+    [gstreamer-basevideo-$GST_API_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
 
 dnl ... bitstream parsers
-USE_CODEC_PARSERS=1
-USE_LOCAL_CODEC_PARSERS=0
-
+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"
+else
 PKG_CHECK_MODULES([GST_CODEC_PARSERS],
-    [gstreamer-codecparsers-$GST_MAJORMINOR >= gst_plugins_bad_version])
+    [gstreamer-codecparsers-$GST_API_VERSION >= $GST_PLUGINS_BAD_VERSION_REQUIRED])
+fi
 
-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;
+              GstMpegVideoSliceHdr slice_hdr;
+              GstMpegVideoPacket packet;
+              gst_mpeg_video_packet_parse_slice_header(&packet, &slice_hdr,
+                  &seq_hdr, NULL);
+              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;
+              GstH264Profile profile = GST_H264_PROFILE_HIGH;
+              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(
@@ -247,17 +367,29 @@ AC_CACHE_CHECK([for JPEG parser],
             [[#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"
 ])
+AM_CONDITIONAL([USE_LOCAL_CODEC_PARSERS_JPEG],
+    [test "$ac_cv_have_gst_jpeg_parser" != "yes"])
 
-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)
+case $GST_API_VERSION in
+0.10)   lt_bias=gst0_vaapi_lt_current_bias;;
+1.0)    lt_bias=gst1_vaapi_lt_current_bias;;
+esac
+GST_VAAPI_MAJOR_VERSION=`expr gst_vaapi_lt_current - "$lt_bias"`
+AC_SUBST(GST_VAAPI_MAJOR_VERSION)
+
+dnl GST_VAAPI_LT_LDFLAGS:
+GST_VAAPI_LT_CURRENT="$GST_VAAPI_MAJOR_VERSION"
+GST_VAAPI_LT_REV=gst_vaapi_lt_revision
+GST_VAAPI_LT_AGE=gst_vaapi_lt_age
+GST_VAAPI_LT_VERSION="$GST_VAAPI_LT_CURRENT:$GST_VAAPI_LT_REV:$GST_VAAPI_LT_AGE"
+GST_VAAPI_LT_LDFLAGS="-version-info $GST_VAAPI_LT_VERSION"
+AC_SUBST(GST_VAAPI_LT_VERSION)
+AC_SUBST(GST_VAAPI_LT_LDFLAGS)
 
 dnl GST_ALL_LDFLAGS:
 dnl LDFLAGS really should only contain flags, not libs - they get added before
@@ -272,11 +404,20 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^([_]*gst_plug
 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 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])
-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"
+case $GST_API_VERSION in
+0.10)   _gst_plugin_path="$GST_PLUGIN_PATH";;
+1.0)    _gst_plugin_path="$GST_PLUGIN_PATH_1_0";;
+esac
+if test -d "$_gst_plugin_path"; then
+    GST_PLUGINS_DIR="$_gst_plugin_path"
+else
+    GST_PLUGINS_DIR=`$PKG_CONFIG gstreamer-$GST_API_VERSION --variable pluginsdir`
+    if test -z "$GST_PLUGINS_DIR"; then
+        GST_PLUGINS_DIR="\$(libdir)/gstreamer-$GST_API_VERSION"
+    fi
 fi
 AC_MSG_RESULT([$GST_PLUGINS_DIR])
 plugindir="$GST_PLUGINS_DIR"
@@ -370,7 +511,7 @@ fi
 dnl Check for Wayland
 USE_WAYLAND=0
 if test "$enable_wayland" = "yes"; then
-    PKG_CHECK_MODULES(WAYLAND, [wayland-client],
+    PKG_CHECK_MODULES(WAYLAND, [wayland-client >= wayland_api_version],
         [USE_WAYLAND=1], [USE_WAYLAND=0])
 
     if test $USE_WAYLAND -eq 1; then
@@ -439,10 +580,10 @@ dnl Check for JPEG decoding API (0.32.1+)
 USE_JPEG_DECODER=0
 AC_CACHE_CHECK([for JPEG decoding API],
     ac_cv_have_jpeg_decoding_api, [
-    saved_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS $LIBVA_CFLAGS"
+    saved_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $LIBVA_CFLAGS"
     saved_LIBS="$LIBS"
-    LIBS="$CFLAGS $LIBVA_LIBS"
+    LIBS="$LIBS $LIBVA_LIBS"
     AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM(
             [[#include <va/va.h>]],
@@ -453,7 +594,7 @@ AC_CACHE_CHECK([for JPEG decoding API],
         [ac_cv_have_jpeg_decoding_api="yes" USE_JPEG_DECODER=1],
         [ac_cv_have_jpeg_decoding_api="no"]
     )
-    CFLAGS="$saved_CFLAGS"
+    CPPFLAGS="$saved_CPPFLAGS"
     LIBS="$saved_LIBS"
 ])
 
@@ -503,13 +644,14 @@ AC_CONFIG_FILES([
     debian.upstream/Makefile
     debian.upstream/changelog
     debian.upstream/control
-    debian.upstream/gstreamer$GST_MAJORMINOR-vaapi-doc.install:\
+    debian.upstream/gstreamer$GST_API_VERSION-vaapi-doc.install:\
 debian.upstream/gstreamer-vaapi-doc.install.in
-    debian.upstream/gstreamer$GST_MAJORMINOR-vaapi.install:\
+    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-dev.install.in
     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:\
@@ -524,22 +666,24 @@ debian.upstream/libgstvaapi-x11.install.in
     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
     gst-libs/gst/vaapi/Makefile
+    gst-libs/gst/video/Makefile
     gst/Makefile
     gst/vaapi/Makefile
     pkgconfig/Makefile
-    pkgconfig/gstreamer-vaapi-$GST_MAJORMINOR.pc:\
+    pkgconfig/gstreamer-vaapi-$GST_API_VERSION.pc:\
 pkgconfig/gstreamer-vaapi.pc.in
-    pkgconfig/gstreamer-vaapi-drm-$GST_MAJORMINOR.pc:\
+    pkgconfig/gstreamer-vaapi-drm-$GST_API_VERSION.pc:\
 pkgconfig/gstreamer-vaapi-drm.pc.in
-    pkgconfig/gstreamer-vaapi-glx-$GST_MAJORMINOR.pc:\
+    pkgconfig/gstreamer-vaapi-glx-$GST_API_VERSION.pc:\
 pkgconfig/gstreamer-vaapi-glx.pc.in
-    pkgconfig/gstreamer-vaapi-wayland-$GST_MAJORMINOR.pc:\
+    pkgconfig/gstreamer-vaapi-wayland-$GST_API_VERSION.pc:\
 pkgconfig/gstreamer-vaapi-wayland.pc.in
-    pkgconfig/gstreamer-vaapi-x11-$GST_MAJORMINOR.pc:\
+    pkgconfig/gstreamer-vaapi-x11-$GST_API_VERSION.pc:\
 pkgconfig/gstreamer-vaapi-x11.pc.in
     tests/Makefile
 ])
@@ -559,6 +703,7 @@ AS_IF([test $USE_WAYLAND -eq 1], [VIDEO_OUTPUTS="$VIDEO_OUTPUTS wayland"])
 echo
 echo $PACKAGE configuration summary:
 echo
+echo GStreamer API version ............ : $GST_API_VERSION
 echo VA-API version ................... : $VA_VERSION_STR
 echo Video outputs .................... : $VIDEO_OUTPUTS
 echo