From e2a24f0189561cc4feaf00d0b48f22947704ae56 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Wed, 8 Jul 2009 07:54:44 +0000 Subject: [PATCH] Split libva DSO into core (libva.so) and display-dependent parts (libva-x11.so). Signed-off-by: Austin Yuan --- Makefile.am | 9 +++++++-- configure.ac | 7 ++++++- i965_drv_video/Makefile.am | 2 +- libva_display.pc.in | 11 +++++++++++ src/Makefile.am | 12 ++++++++++-- src/va.c | 6 +++++- src/x11/va_x11.c | 21 --------------------- 7 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 libva_display.pc.in diff --git a/Makefile.am b/Makefile.am index cd0ee58..f2defab 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,11 +31,16 @@ SUBDIRS += i965_drv_video endif pcfiles = \ - libva.pc + libva.pc \ + libva-$(LIBVA_DISPLAY).pc + +# libva-.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) diff --git a/configure.ac b/configure.ac index c1ffc0a..b37a438 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ]) diff --git a/i965_drv_video/Makefile.am b/i965_drv_video/Makefile.am index c0117c9..42dd515 100644 --- a/i965_drv_video/Makefile.am +++ b/i965_drv_video/Makefile.am @@ -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 index 0000000..c9c5cd6 --- /dev/null +++ b/libva_display.pc.in @@ -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} diff --git a/src/Makefile.am b/src/Makefile.am index 5fac8b5..3849e8f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 diff --git a/src/va.c b/src/va.c index bbe1e70..dbd750c 100644 --- a/src/va.c +++ b/src/va.c @@ -56,7 +56,11 @@ 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, ...) { diff --git a/src/x11/va_x11.c b/src/x11/va_x11.c index ec0bbc8..9de904e 100644 --- a/src/x11/va_x11.c +++ b/src/x11/va_x11.c @@ -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 */ -- 2.7.4