diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-01-09 10:37:30 +0100 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-01-16 13:45:29 +0100 |
commit | f2b97cb18a3406c4e91d556c519032088d3dd7c4 (patch) | |
tree | a3d7c27c608846d0675fad7f507783f54528657c | |
parent | bbf59873224722a7480a5559df80f2574a74c4e7 (diff) | |
download | gstreamer-vaapi-f2b97cb18a3406c4e91d556c519032088d3dd7c4.tar.gz |
vaapisink: implement GstXOverlay::set_render_rectangle().
-rw-r--r-- | gst/vaapi/gstvaapisink.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index 9006bd80..56198098 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -49,6 +49,9 @@ #define HAVE_GST_XOVERLAY_SET_WINDOW_HANDLE \ GST_PLUGINS_BASE_CHECK_VERSION(0,10,31) +#define HAVE_GST_XOVERLAY_SET_RENDER_RECTANGLE \ + GST_PLUGINS_BASE_CHECK_VERSION(0,10,29) + #define GST_PLUGIN_NAME "vaapisink" #define GST_PLUGIN_DESC "A VA-API based videosink" @@ -160,6 +163,30 @@ gst_vaapisink_xoverlay_set_xid(GstXOverlay *overlay, XID xid) } #endif +#if HAVE_GST_XOVERLAY_SET_RENDER_RECTANGLE +static void +gst_vaapisink_xoverlay_set_render_rectangle( + GstXOverlay *overlay, + gint x, + gint y, + gint width, + gint height +) +{ + GstVaapiSink * const sink = GST_VAAPISINK(overlay); + GstVaapiRectangle * const display_rect = &sink->display_rect; + + display_rect->x = x; + display_rect->y = y; + display_rect->width = width; + display_rect->height = height; + + GST_DEBUG("render rect (%d,%d):%ux%u", + display_rect->x, display_rect->y, + display_rect->width, display_rect->height); +} +#endif + static void gst_vaapisink_xoverlay_expose(GstXOverlay *overlay) { @@ -177,11 +204,14 @@ 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; + iface->set_window_handle = gst_vaapisink_xoverlay_set_window_handle; #else - iface->set_xwindow_id = gst_vaapisink_xoverlay_set_xid; + iface->set_xwindow_id = gst_vaapisink_xoverlay_set_xid; +#endif +#if HAVE_GST_XOVERLAY_SET_RENDER_RECTANGLE + iface->set_render_rectangle = gst_vaapisink_xoverlay_set_render_rectangle; #endif - iface->expose = gst_vaapisink_xoverlay_expose; + iface->expose = gst_vaapisink_xoverlay_expose; } static void |