Beispiel #1
0
/**
 * gst_x_overlay_set_render_rectangle:
 * @overlay: a #GstXOverlay
 * @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
 *
 * Configure a subregion as a video target within the window set by
 * gst_x_overlay_set_window_handle(). If this is not used or not supported
 * the video will fill the area of the window set as the overlay to 100%.
 * By specifying the rectangle, the video can be overlayed to a specific region
 * of that window only. After setting the new rectangle one should call
 * gst_x_overlay_expose() to force a redraw. To unset the region pass -1 for
 * the @width and @height parameters.
 *
 * This method is needed for non fullscreen video overlay in UI toolkits that
 * do not support subwindows.
 *
 * Returns: %FALSE if not supported by the sink.
 *
 * Since: 0.10.29
 */
gboolean
gst_x_overlay_set_render_rectangle (GstXOverlay * overlay,
    gint x, gint y, gint width, gint height)
{
  GstXOverlayClass *klass;

  g_return_val_if_fail (overlay != NULL, FALSE);
  g_return_val_if_fail (GST_IS_X_OVERLAY (overlay), FALSE);
  g_return_val_if_fail ((width == -1 && height == -1) ||
      (width > 0 && height > 0), FALSE);

  klass = GST_X_OVERLAY_GET_CLASS (overlay);

  if (klass->set_render_rectangle) {
    klass->set_render_rectangle (overlay, x, y, width, height);
    return TRUE;
  }
  return FALSE;
}