summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>2009-07-08 07:56:57 +0000
committerAustin Yuan <shengquan.yuan@intel.com>2009-08-14 22:21:34 +0800
commit2162a793560a02651b3da00bb663f519742bc3fc (patch)
treec09decf27e092fa4b9a9b24e455d24a571df6471
parenta2523fec99e31a6a2ad0135cbad0afa5b29c34f6 (diff)
downloadlibva-2162a793560a02651b3da00bb663f519742bc3fc.tar.gz
Explicit API extensions versioning from SDS.
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
-rw-r--r--configure.ac8
-rw-r--r--src/va.c6
-rw-r--r--src/va_version.h.in9
3 files changed, 21 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index b6f7923..3927055 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,9 @@ m4_define([libva_micro_version], [4])
m4_define([libva_version],
[libva_major_version.libva_minor_version.libva_micro_version])
+# increase this number for each API change
+m4_define([libva_sds_version], [2])
+
# if the library source code has changed, increment revision
m4_define([libva_lt_revision], [0])
# if any interface was added/removed/changed, then inc current, reset revision
@@ -52,11 +55,14 @@ AC_SUBST(LIBVA_MINOR_VERSION)
AC_SUBST(LIBVA_MICRO_VERSION)
AC_SUBST(LIBVA_VERSION)
+LIBVA_SDS_VERSION=libva_sds_version
+AC_SUBST(LIBVA_SDS_VERSION)
+
LIBVA_LT_CURRENT=libva_lt_current
LIBVA_LT_REV=libva_lt_revision
LIBVA_LT_AGE=libva_lt_age
LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE"
-LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION"
+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION"
AC_SUBST(LIBVA_LT_VERSION)
AC_SUBST(LIBVA_LT_LDFLAGS)
diff --git a/src/va.c b/src/va.c
index d7afedc..b409c7c 100644
--- a/src/va.c
+++ b/src/va.c
@@ -40,6 +40,7 @@
#define DRIVER_INIT_FUNC "__vaDriverInit_0_30"
+#define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_30_sds"
#define DRIVER_EXTENSION "_drv_video.so"
@@ -166,6 +167,11 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name)
init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC);
if (!init_func)
{
+ /* Then try SDS extensions (VDPAU and XvBA backends) */
+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS);
+ }
+ if (!init_func)
+ {
va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC);
dlclose(handle);
}
diff --git a/src/va_version.h.in b/src/va_version.h.in
index c9ea97a..197c482 100644
--- a/src/va_version.h.in
+++ b/src/va_version.h.in
@@ -47,6 +47,13 @@
#define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@)
/**
+ * VA_SDS_VERSION:
+ *
+ * The version of the SDS API extensions to the VA library
+ */
+#define VA_SDS_VERSION (@LIBVA_SDS_VERSION@)
+
+/**
* VA_VERSION:
*
* The full version of the VA library, like 1.2.3
@@ -59,7 +66,7 @@
* The full version of the VA library, in string form (suited for
* string concatenation)
*/
-#define VA_VERSION_S "@LIBVA_VERSION@"
+#define VA_VERSION_S "@LIBVA_VERSION@-sds@LIBVA_SDS_VERSION@"
/**
* VA_VERSION_HEX: