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-07-08 17:06:31 +0800
commit4a7f816d36c28e9e2ee535daac8a4fdcf6339a48 (patch)
tree5b1ccaa6408cd25eeb177ed15d9607985e76e537
parent7eb72b2fc2b3ff069b3e4cc4ea5e104e91f23322 (diff)
downloadlibva-4a7f816d36c28e9e2ee535daac8a4fdcf6339a48.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 041c367..3591612 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 8452304..03cbe54 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"
@@ -170,6 +171,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: