summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2015-06-12 14:07:22 +0100
committerRussell King <rmk@arm.linux.org.uk>2015-06-12 16:13:08 +0100
commita1728ec7c6a657d6af12cd40d4ddf1ee19a8332b (patch)
treef2e19aed8a6d68f5f740a36263cc2235c1e3bc76 /configure.ac
parent2a681eff5eb2d69bbc4b695f1a78d01fe29cf71f (diff)
Add gstreamer xvboimagesink support
Add the XVBO gstreamer plugin, which works with xf86-video-armada, allowing zero-copy playback by passing the buffer by reference to the Xorg Xv backend. This is done via a mechanism similar to that employed by Intel's XvMC implementation, but a little better. A conforming implementation advertises its supported formats via the usual Xv method, but includes a special "XVBO" fourcc in the list of supported formats. This format takes two 32-bit native-endian words, which are the fourcc for the format, and the DRM global name for the buffer. The Xorg DDX recognises the XVBO fourcc, and extracts the format and global name, imports the buffer and displays it. This allows implementations that need to pass the frame directly to the GPU and/or overlay to do so without incurring expensive CPU copy or cache maintanence costs. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac21
1 files changed, 21 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 29174f73..892831e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -482,6 +482,26 @@ AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
AC_SUBST(XSHM_LIBS)
])
+dnl check for libbmm and libdrm
+translit(dnm, m, l) AM_CONDITIONAL(USE_XVBO, true)
+AG_GST_CHECK_FEATURE(XVBO, [XVBO buffer passing], [xvboimagesink], [
+ if test x$HAVE_X = xyes; then
+ AG_GST_PKG_CHECK_MODULES(LIBBMM, libbmm >= 2.0.0, [ HAVE_LIBBMM=yes ], [ HAVE_LIBBMM=no ])
+ if test x$HAVE_LIBBMM = xyes; then
+ AG_GST_PKG_CHECK_MODULES(LIBDRM, libdrm >= 2.4, [ HAVE_XVBO=yes ], [ HAVE_XVBO=no ])
+ if test x$HAVE_XVBO = xyes; then
+ dnl check that libbmm contains the necessary function
+ AC_CHECK_LIB(bmm, bmm_dmabuf_fd, , HAVE_XVBO=no, $LIBBMM_LIBS)
+ fi
+ fi
+ fi
+], , [
+ AC_SUBST(LIBBMM_CFLAGS)
+ AC_SUBST(LIBBMM_LIBS)
+ AC_SUBST(LIBDRM_CFLAGS)
+ AC_SUBST(LIBDRM_LIBS)
+])
+
dnl v4l/v4l2 checks have been moved down because they require X
dnl *** Video 4 Linux ***
@@ -845,6 +865,7 @@ gst/videoscale/Makefile
gst/volume/Makefile
sys/Makefile
sys/ximage/Makefile
+sys/xvboimage/Makefile
sys/xvimage/Makefile
sys/v4l/Makefile
ext/Makefile