iface->set_wl_window_wl_surface_id (overlay, wl_surface_id);
}
}
+
+
+/**
+ * gst_video_overlay_set_display_roi_area:
+ * @overlay: a #GstVideoOverlay
+ * @x: the horizontal offset of the render area inside the window
+ * @y: the vertical offset of the render area inside the window
+ * @width: the width of the render area inside the window
+ * @height: the height of the render area inside the window
+ *
+ * Set the ROI(Region of Interest) area of wayland window.
+ * Returns: %FALSE if not supported by the sink.
+ */
+gboolean
+gst_video_overlay_set_display_roi_area (GstVideoOverlay * overlay,
+ gint x, gint y, gint width, gint height)
+{
+ GstVideoOverlayInterface *iface;
+
+ g_return_val_if_fail (overlay != NULL, FALSE);
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY (overlay), FALSE);
+ g_return_val_if_fail (width > 0 && height > 0, FALSE);
+
+ iface = GST_VIDEO_OVERLAY_GET_INTERFACE (overlay);
+
+ if (iface->set_display_roi_area) {
+ iface->set_display_roi_area (overlay, x, y, width, height);
+ return TRUE;
+ }
+ return FALSE;
+}
+
#endif
/**
* gst_video_overlay_set_window_handle:
gint width, gint height);
void (*set_window_handle) (GstVideoOverlay *overlay, guintptr handle);
+
void (*set_wl_window_wl_surface_id) (GstVideoOverlay * overlay, guintptr wl_surface_id);
+ void (*set_display_roi_area) (GstVideoOverlay *overlay,
+ gint x, gint y,
+ gint width, gint height);
};
GType gst_video_overlay_get_type (void);
void gst_video_overlay_prepare_window_handle (GstVideoOverlay * overlay);
gboolean gst_is_video_overlay_prepare_window_handle_message (GstMessage * msg);
+
void gst_video_overlay_set_wl_window_wl_surface_id (GstVideoOverlay * overlay,
guintptr wl_surface_id);
+gboolean gst_video_overlay_set_display_roi_area (GstVideoOverlay * overlay,
+ gint x, gint y,
+ gint width, gint height);
+
+
G_END_DECLS
#endif /* __GST_VIDEO_OVERLAY_H__ */