From 3c48a3004c7bc09911777fe7ad9171c03ab03a89 Mon Sep 17 00:00:00 2001 From: gb Date: Mon, 29 Mar 2010 15:03:30 +0000 Subject: [PATCH] Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default. --- configure.ac | 17 +++++++++++++++++ sys/vaapisink/Makefile.am | 2 +- sys/vaapisink/gstvaapisink.c | 14 +++++++------- sys/vaapisink/gstvaapisink.h | 4 ++-- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 7d358b01e7..b12e87d093 100644 --- a/configure.ac +++ b/configure.ac @@ -75,6 +75,11 @@ AC_ARG_ENABLE(glx, [enable OpenGL/X11 @<:@default=yes@:>@]), [], [enable_glx="yes"]) +AC_ARG_ENABLE(vaapisink-glx, + AC_HELP_STRING([--enable-vaapisink-glx], + [enable OpenGL/X11 to vaapisink @<:@default=yes@:>@]), + [], [enable_vaapisink_glx="no"]) + dnl Check for __attribute__((visibility())) AC_CACHE_CHECK([whether __attribute__((visibility())) is supported], vaapi_cv_visibility_attribute, @@ -227,9 +232,20 @@ AC_SUBST(LIBVA_GLX_PKGNAME) AC_SUBST(LIBVA_EXTRA_CFLAGS) AC_SUBST(LIBVA_EXTRA_LIBS) +dnl Check for OpenGL support to +if test "$enable_vaapisink_glx:$USE_GLX" = "yes:1"; then + USE_VAAPISINK_GLX=1 +else + USE_VAAPISINK_GLX=0 +fi + AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX, [Defined to 1 if GLX is enabled]) AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1) +AC_DEFINE_UNQUOTED(USE_VAAPISINK_GLX, $USE_VAAPISINK_GLX, + [Defined to 1 to enable GLX support to vaapisink]) +AM_CONDITIONAL(USE_VAAPISINK_GLX, test $USE_VAAPISINK_GLX -eq 1) + VA_VERSION=`$PKG_CONFIG --modversion libva` VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1` VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2` @@ -289,4 +305,5 @@ echo $PACKAGE configuration summary: echo echo VA-API version ................... : $VA_VERSION_STR echo GLX support ...................... : $(test $USE_GLX -eq 1 && echo yes || echo no) +echo Build vaapisink with OpenGL ...... : $(test $USE_VAAPISINK_GLX -eq 1 && echo yes || echo no) echo diff --git a/sys/vaapisink/Makefile.am b/sys/vaapisink/Makefile.am index 6342a39d84..3265f33be0 100644 --- a/sys/vaapisink/Makefile.am +++ b/sys/vaapisink/Makefile.am @@ -3,7 +3,7 @@ plugin_LTLIBRARIES = libgstvaapisink.la libgstvaapi_CFLAGS = \ -I$(top_srcdir)/gst-libs -if USE_GLX +if USE_VAAPISINK_GLX libgstvaapi_LIBS = \ $(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-glx-$(GST_MAJORMINOR).la else diff --git a/sys/vaapisink/gstvaapisink.c b/sys/vaapisink/gstvaapisink.c index ea97427fb9..fc0704ec66 100644 --- a/sys/vaapisink/gstvaapisink.c +++ b/sys/vaapisink/gstvaapisink.c @@ -34,7 +34,7 @@ #include #include #include -#if USE_GLX +#if USE_VAAPISINK_GLX #include #include #endif @@ -125,7 +125,7 @@ gst_vaapisink_ensure_window(GstVaapiSink *sink, guint width, guint height) GstVaapiDisplay * const display = sink->display; if (!sink->window) { -#if USE_GLX +#if USE_VAAPISINK_GLX if (sink->use_glx) sink->window = gst_vaapi_window_glx_new(display, width, height); else @@ -139,7 +139,7 @@ static inline gboolean gst_vaapisink_ensure_display(GstVaapiSink *sink) { if (!sink->display) { -#if USE_GLX +#if USE_VAAPISINK_GLX if (sink->use_glx) sink->display = gst_vaapi_display_glx_new(sink->display_name); else @@ -285,7 +285,7 @@ gst_vaapisink_show_frame(GstBaseSink *base_sink, GstBuffer *buffer) flags = GST_VAAPI_PICTURE_STRUCTURE_FRAME; -#if USE_GLX +#if USE_VAAPISINK_GLX if (sink->use_glx) { GstVaapiWindowGLX * const window = GST_VAAPI_WINDOW_GLX(sink->window); gst_vaapi_window_glx_make_current(window); @@ -418,14 +418,14 @@ static void gst_vaapisink_class_init(GstVaapiSinkClass *klass) basesink_class->preroll = gst_vaapisink_show_frame; basesink_class->render = gst_vaapisink_show_frame; -#if USE_GLX +#if USE_VAAPISINK_GLX g_object_class_install_property (object_class, PROP_USE_GLX, g_param_spec_boolean("use-glx", "GLX rendering", "Enables GLX rendering", - FALSE, + TRUE, G_PARAM_READWRITE)); #endif @@ -473,7 +473,7 @@ static void gst_vaapisink_init(GstVaapiSink *sink, GstVaapiSinkClass *klass) sink->video_height = 0; sink->fullscreen = FALSE; sink->synchronous = FALSE; - sink->use_glx = FALSE; + sink->use_glx = USE_VAAPISINK_GLX; } GstVaapiDisplay * diff --git a/sys/vaapisink/gstvaapisink.h b/sys/vaapisink/gstvaapisink.h index 7a5b947718..914af826cc 100644 --- a/sys/vaapisink/gstvaapisink.h +++ b/sys/vaapisink/gstvaapisink.h @@ -24,7 +24,7 @@ #include #include #include -#if USE_GLX +#if USE_VAAPISINK_GLX #include #endif #include @@ -58,7 +58,7 @@ G_BEGIN_DECLS typedef struct _GstVaapiSink GstVaapiSink; typedef struct _GstVaapiSinkClass GstVaapiSinkClass; -#if !USE_GLX +#if !USE_VAAPISINK_GLX typedef struct _GstVaapiTexture GstVaapiTexture; #endif