From 513b9c700b984c5c7aad9aa5afda093d9078fa0c Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Wed, 7 Dec 2011 19:04:09 +0100 Subject: [PATCH] vaapisink: allow compatibility with gst-plugins-base < 0.10.31. --- gst/vaapi/gstvaapisink.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index 759b4e3..b40cde3 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -31,6 +31,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -44,6 +45,9 @@ /* Supported interfaces */ #include +#define HAVE_GST_XOVERLAY_SET_WINDOW_HANDLE \ + GST_PLUGINS_BASE_CHECK_VERSION(0,10,31) + #define GST_PLUGIN_NAME "vaapisink" #define GST_PLUGIN_DESC "A VA-API based videosink" @@ -128,8 +132,8 @@ gst_vaapisink_ensure_window_xid(GstVaapiSink *sink, guintptr window_id); static GstFlowReturn gst_vaapisink_show_frame(GstBaseSink *base_sink, GstBuffer *buffer); -static void -gst_vaapisink_xoverlay_set_window_handle(GstXOverlay *overlay, guintptr window_id) +static inline void +_gst_vaapisink_xoverlay_set_xid(GstXOverlay *overlay, guintptr window_id) { GstVaapiSink * const sink = GST_VAAPISINK(overlay); @@ -141,6 +145,20 @@ gst_vaapisink_xoverlay_set_window_handle(GstXOverlay *overlay, guintptr window_i gst_vaapisink_ensure_window_xid(sink, window_id); } +#if HAVE_GST_XOVERLAY_SET_WINDOW_HANDLE +static void +gst_vaapisink_xoverlay_set_window_handle(GstXOverlay *overlay, guintptr window_id) +{ + _gst_vaapisink_xoverlay_set_xid(overlay, window_id); +} +#else +static void +gst_vaapisink_xoverlay_set_xid(GstXOverlay *overlay, XID xid) +{ + _gst_vaapisink_xoverlay_set_xid(overlay, xid); +} +#endif + static void gst_vaapisink_xoverlay_expose(GstXOverlay *overlay) { @@ -157,7 +175,11 @@ gst_vaapisink_xoverlay_expose(GstXOverlay *overlay) static void gst_vaapisink_xoverlay_iface_init(GstXOverlayClass *iface) { +#if HAVE_GST_XOVERLAY_SET_WINDOW_HANDLE iface->set_window_handle = gst_vaapisink_xoverlay_set_window_handle; +#else + iface->set_xwindow_id = gst_vaapisink_xoverlay_set_xid; +#endif iface->expose = gst_vaapisink_xoverlay_expose; } -- 2.7.4