OSDN Git Service

Split libva DSO into core (libva.so) and display-dependent parts (libva-x11.so).
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Wed, 8 Jul 2009 07:54:44 +0000 (07:54 +0000)
committerAustin Yuan <shengquan.yuan@intel.com>
Fri, 28 Aug 2009 03:00:00 +0000 (11:00 +0800)
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
Makefile.am
configure.ac
i965_drv_video/Makefile.am
libva_display.pc.in [new file with mode: 0644]
src/Makefile.am
src/va.c
src/x11/va_x11.c

index cd0ee58..f2defab 100644 (file)
@@ -31,11 +31,16 @@ SUBDIRS += i965_drv_video
 endif
 
 pcfiles = \
-       libva.pc
+       libva.pc \
+       libva-$(LIBVA_DISPLAY).pc
+
+# libva-<display>.pc - for display-specific dependencies
+libva-$(LIBVA_DISPLAY).pc: libva_display.pc
+       @cp $< $@
 
 pkgconfigdir = @pkgconfigdir@
 pkgconfig_DATA = $(pcfiles)
 
-EXTRA_DIST = libva.pc.in
+EXTRA_DIST = libva.pc.in libva_display.pc.in
 
 CLEANFILES = $(pcfiles)
index c1ffc0a..b37a438 100644 (file)
@@ -114,8 +114,12 @@ AC_SUBST(LIBVA_LIBS)
 pkgconfigdir=${libdir}/pkgconfig
 AC_SUBST(pkgconfigdir)
 
-libvabackendlib=libva.la
+LIBVA_DISPLAY=x11
+libvacorelib=libva.la
+libvabackendlib=libva-$LIBVA_DISPLAY.la
+AC_SUBST([libvacorelib])
 AC_SUBST([libvabackendlib])
+AC_SUBST(LIBVA_DISPLAY)
 
 AC_OUTPUT([
        Makefile
@@ -130,5 +134,6 @@ AC_OUTPUT([
        i965_drv_video/shaders/render/Makefile
        test/Makefile
        libva.pc
+       libva_display.pc
 ])
 
index c0117c9..42dd515 100644 (file)
@@ -27,7 +27,7 @@ AM_CFLAGS = -Wall -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 @DRM_CFLAGS@ -DIN_
 i965_drv_video_la_LTLIBRARIES = i965_drv_video.la
 i965_drv_video_ladir = @LIBVA_DRIVERS_PATH@
 i965_drv_video_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,--no-undefined @DRM_LIBS@ -ldrm_intel
-i965_drv_video_la_LIBADD = ../src/libva.la -lpthread
+i965_drv_video_la_LIBADD = ../src/libva-x11.la -lpthread
 
 i965_drv_video_la_SOURCES =    \
        object_heap.c           \
diff --git a/libva_display.pc.in b/libva_display.pc.in
new file mode 100644 (file)
index 0000000..c9c5cd6
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=@LIBVA_DISPLAY@
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
index 5fac8b5..3849e8f 100644 (file)
@@ -28,10 +28,18 @@ INCLUDES = \
 LDADD = \
        $(LIBVA_LT_LDFLAGS)
 
-libva_la_LTLIBRARIES = libva.la
+lib_LTLIBRARIES = \
+       libva.la \
+       libva-x11.la
+
 libva_ladir = $(libdir)
 libva_la_LDFLAGS = $(LDADD) -no-undefined
-libva_la_LIBADD = $(LIBVA_LIBS) -ldl -lX11 -lXext x11/libva_x11.la -ldrm -lXfixes
+libva_la_LIBADD = $(LIBVA_LIBS) -ldl
+
+libva_x11_la_SOURCES = 
+libva_x11_la_LIBADD  = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS)
+libva_x11_la_LDFLAGS = $(LDADD)
+libva_x11_la_DEPENDENCIES = $(libvacorelib)
 
 SUBDIRS = x11
 
index bbe1e70..dbd750c 100644 (file)
--- a/src/va.c
+++ b/src/va.c
 
 static int va_debug_trace = 0;
 
-int vaDisplayIsValid(VADisplay dpy);
+static int vaDisplayIsValid(VADisplay dpy)
+{
+  VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+  return pDisplayContext && pDisplayContext->vaIsValid(pDisplayContext);
+}
 
 static void va_errorMessage(const char *msg, ...)
 {
index ec0bbc8..9de904e 100644 (file)
@@ -205,27 +205,6 @@ static VAStatus va_DisplayContextGetDriverName (
     return vaStatus;
 }
 
-int vaDisplayIsValid(VADisplay dpy)
-{
-  VADisplayContextP tmp=NULL;
-  VADisplayContextP pDisplayContext = pDisplayContexts;
-
-  while (pDisplayContext)
-  {
-      if (pDisplayContext == (VADisplayContextP)dpy)
-      {
-          tmp = (VADisplay)pDisplayContext;
-          break;
-      }
-      pDisplayContext = pDisplayContext->pNext;
-  }
-
-  if (!tmp)
-      return 0;
-  
-  return tmp->vaIsValid(pDisplayContext);
-}
-
 
 VADisplay vaGetDisplay (
     Display *native_dpy /* implementation specific */