From 08dc3036f45fa9222b531f68e8913a52edb5d821 Mon Sep 17 00:00:00 2001 From: Holger Kaelberer Date: Mon, 29 Jul 2013 09:28:28 +0200 Subject: [PATCH] window: allow for updating size from current geometry. Add gst_vaapi_window_reconfigure() interface to force an update of the GstVaapiWindow "soft" size, based on the current geometry of the underlying native window. This can be useful for instance to synchronize the window size when the user changed it. Thanks to Fabrice Bellet for rebasing the patch. [changed interface to gst_vaapi_window_reconfigure()] Signed-off-by: Gwenole Beauchesne --- gst-libs/gst/vaapi/gstvaapiwindow.c | 16 ++++++++++++++++ gst-libs/gst/vaapi/gstvaapiwindow.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.c b/gst-libs/gst/vaapi/gstvaapiwindow.c index b9a668abd5..7ebbdac9fe 100644 --- a/gst-libs/gst/vaapi/gstvaapiwindow.c +++ b/gst-libs/gst/vaapi/gstvaapiwindow.c @@ -483,3 +483,19 @@ gst_vaapi_window_put_pixmap (GstVaapiWindow * window, } return klass->render_pixmap (window, pixmap, src_rect, dst_rect); } + +/** + * gst_vaapi_window_reconfigure: + * @window: a #GstVaapiWindow + * + * Updates internal window size from geometry of the underlying window + * implementation if necessary. + */ +void +gst_vaapi_window_reconfigure (GstVaapiWindow * window) +{ + g_return_if_fail (window != NULL); + + window->check_geometry = TRUE; + gst_vaapi_window_ensure_size (window); +} diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.h b/gst-libs/gst/vaapi/gstvaapiwindow.h index 7b7cbfee26..84a6ef8db2 100644 --- a/gst-libs/gst/vaapi/gstvaapiwindow.h +++ b/gst-libs/gst/vaapi/gstvaapiwindow.h @@ -93,6 +93,9 @@ gboolean gst_vaapi_window_put_pixmap (GstVaapiWindow * window, GstVaapiPixmap * pixmap, const GstVaapiRectangle * src_rect, const GstVaapiRectangle * dst_rect); +void +gst_vaapi_window_reconfigure (GstVaapiWindow * window); + G_END_DECLS #endif /* GST_VAAPI_WINDOW_H */