diff options
author | Russell King <rmk@arm.linux.org.uk> | 2015-06-12 14:07:22 +0100 |
---|---|---|
committer | Russell King <rmk@arm.linux.org.uk> | 2015-06-12 16:13:08 +0100 |
commit | a1728ec7c6a657d6af12cd40d4ddf1ee19a8332b (patch) | |
tree | f2e19aed8a6d68f5f740a36263cc2235c1e3bc76 /configure.ac | |
parent | 2a681eff5eb2d69bbc4b695f1a78d01fe29cf71f (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.ac | 21 |
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 |