From: Tim-Philipp Müller Date: Sun, 7 Aug 2011 15:55:25 +0000 (+0100) Subject: interfaces: rename GstXOverlay interface to GstVideoOverlay X-Git-Tag: 1.19.3~511^2~7371 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fd448502b96575c4619ec87fd7121506d8fe17be;p=platform%2Fupstream%2Fgstreamer.git interfaces: rename GstXOverlay interface to GstVideoOverlay And remove deprecated methods, and fix up some cruft. --- diff --git a/android/interfaces.mk b/android/interfaces.mk index 4f43a82..6e0387a 100644 --- a/android/interfaces.mk +++ b/android/interfaces.mk @@ -15,7 +15,7 @@ gst_interfaces_COPY_HEADERS_BASE := \ gst-libs/gst/interfaces/tunerchannel.h \ gst-libs/gst/interfaces/tunernorm.h \ gst-libs/gst/interfaces/videoorientation.h \ - gst-libs/gst/interfaces/xoverlay.h \ + gst-libs/gst/interfaces/videooverlay.h \ gst-libs/gst/interfaces/interfaces-enumtypes.h gst_interfaces_COPY_HEADERS := $(addprefix ../,$(gst_interfaces_COPY_HEADERS_BASE)) @@ -37,7 +37,7 @@ interfaces_LOCAL_SRC_FILES_BASE:= \ gst-libs/gst/interfaces/tunernorm.c \ gst-libs/gst/interfaces/tunerchannel.c \ gst-libs/gst/interfaces/videoorientation.c \ - gst-libs/gst/interfaces/xoverlay.c \ + gst-libs/gst/interfaces/videooverlay.c \ gst-libs/gst/interfaces/interfaces-marshal.c \ gst-libs/gst/interfaces/interfaces-enumtypes.c diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml index fdceb38..6bffbcc 100644 --- a/docs/libs/gst-plugins-base-libs-docs.sgml +++ b/docs/libs/gst-plugins-base-libs-docs.sgml @@ -113,7 +113,7 @@ - + diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 091b7b5..4afd7f5 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -795,26 +795,22 @@ gst_video_orientation_get_type
-gstxoverlay -gst/interfaces/xoverlay.h +gstvideooverlay +gst/interfaces/videooverlay.h GstXOverlay -GstXOverlayClass -gst_x_overlay_set_xwindow_id -gst_x_overlay_got_xwindow_id -gst_x_overlay_got_window_handle -gst_x_overlay_set_window_handle -gst_x_overlay_prepare_xwindow_id -gst_x_overlay_expose -gst_x_overlay_handle_events -gst_x_overlay_set_render_rectangle +GstXOverlayIface +gst_video_overlay_got_window_handle +gst_video_overlay_set_window_handle +gst_video_overlay_prepare_window_handle +gst_video_overlay_expose +gst_video_overlay_handle_events +gst_video_overlay_set_render_rectangle -GST_TYPE_X_OVERLAY -GST_X_OVERLAY -GST_X_OVERLAY_CLASS -GST_X_OVERLAY_GET_CLASS -GST_IS_X_OVERLAY -GST_IS_X_OVERLAY_CLASS -gst_x_overlay_get_type +GST_TYPE_VIDEO_OVERLAY +GST_VIDEO_OVERLAY +GST_IS_VIDEO_OVERLAY +GST_VIDEO_OVERLAY_GET_IFACE +gst_video_overlay_get_type
diff --git a/docs/libs/gst-plugins-base-libs.types b/docs/libs/gst-plugins-base-libs.types index f6c06af..d440b3b 100644 --- a/docs/libs/gst-plugins-base-libs.types +++ b/docs/libs/gst-plugins-base-libs.types @@ -40,8 +40,8 @@ gst_tuner_norm_get_type gst_stream_volume_get_type #include gst_video_orientation_get_type -#include -gst_x_overlay_get_type +#include +gst_video_overlay_get_type #include diff --git a/gst-libs/gst/interfaces/Makefile.am b/gst-libs/gst/interfaces/Makefile.am index 447671a..a661a03 100644 --- a/gst-libs/gst/interfaces/Makefile.am +++ b/gst-libs/gst/interfaces/Makefile.am @@ -15,7 +15,7 @@ headers_interfaces = \ tunernorm.h \ tunerchannel.h \ videoorientation.h \ - xoverlay.h + videooverlay.h # variables used for enum/marshal generation glib_enum_headers = $(headers_interfaces) @@ -50,7 +50,7 @@ libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES = \ tunernorm.c \ tunerchannel.c \ videoorientation.c \ - xoverlay.c + videooverlay.c nodist_libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES = \ $(built_sources) \ diff --git a/gst-libs/gst/interfaces/xoverlay.c b/gst-libs/gst/interfaces/videooverlay.c similarity index 66% rename from gst-libs/gst/interfaces/xoverlay.c rename to gst-libs/gst/interfaces/videooverlay.c index febf8c7..a41f340 100644 --- a/gst-libs/gst/interfaces/xoverlay.c +++ b/gst-libs/gst/interfaces/videooverlay.c @@ -1,7 +1,6 @@ -/* GStreamer X-based Overlay +/* GStreamer Video Overlay interface * Copyright (C) 2003 Ronald Bultje - * - * x-overlay.c: X-based overlay interface design + * Copyright (C) 2011 Tim-Philipp Müller * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -19,13 +18,14 @@ * Boston, MA 02111-1307, USA. */ /** - * SECTION:gstxoverlay - * @short_description: Interface for setting/getting a Window on elements - * supporting it + * SECTION:gstvideooverlay + * @short_description: Interface for setting/getting a window system resource + * on elements supporting it to configure a window into which to render a + * video. * * * - * The XOverlay interface is used for 2 main purposes : + * The #GstVideoOverlay interface is used for 2 main purposes : * * * @@ -63,11 +63,11 @@ * static GstBusSyncReply * create_window (GstBus * bus, GstMessage * message, GstPipeline * pipeline) * { - * // ignore anything but 'prepare-xwindow-id' element messages + * // ignore anything but 'prepare-window-handle' element messages * if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT) * return GST_BUS_PASS; * - * if (!gst_structure_has_name (message->structure, "prepare-xwindow-id")) + * if (!gst_structure_has_name (message->structure, "prepare-window-handle")) * return GST_BUS_PASS; * * win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0); @@ -78,7 +78,7 @@ * * XSync (disp, FALSE); * - * gst_x_overlay_set_window_handle (GST_X_OVERLAY (GST_MESSAGE_SRC (message)), + * gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message)), * win); * * gst_message_unref (message); @@ -105,7 +105,7 @@ * usually the case when the application creates the videosink to use * (e.g. #xvimagesink, #ximagesink, etc.) itself; in this case, the application * can just create the videosink element, create and realize the window to - * render the video on and then call gst_x_overlay_set_window_handle() directly + * render the video on and then call gst_video_overlay_set_window_handle() directly * with the XID or native window handle, before starting up the pipeline. * * @@ -117,18 +117,18 @@ * pipeline has been started up. When that happens, however, the video sink * will need to know right then whether to render onto an already existing * application window or whether to create its own window. This is when it - * posts a prepare-xwindow-id message, and that is also why this message needs + * posts a prepare-window-handle message, and that is also why this message needs * to be handled in a sync bus handler which will be called from the streaming * thread directly (because the video sink will need an answer right then). * * - * As response to the prepare-xwindow-id element message in the bus sync - * handler, the application may use gst_x_overlay_set_window_handle() to tell + * As response to the prepare-window-handle element message in the bus sync + * handler, the application may use gst_video_overlay_set_window_handle() to tell * the video sink to render onto an existing window surface. At this point the * application should already have obtained the window handle / XID, so it * just needs to set it. It is generally not advisable to call any GUI toolkit * functions or window system functions from the streaming thread in which the - * prepare-xwindow-id message is handled, because most GUI toolkits and + * prepare-window-handle message is handled, because most GUI toolkits and * windowing systems are not thread-safe at all and a lot of care would be * required to co-ordinate the toolkit and window system calls of the * different threads (Gtk+ users please note: prior to Gtk+ 2.18 @@ -140,7 +140,7 @@ * * * - * GstXOverlay and Gtk+ + * GstVideoOverlay and Gtk+ * * |[ * #include <gtk/gtk.h> @@ -153,18 +153,18 @@ * static GstBusSyncReply * bus_sync_handler (GstBus * bus, GstMessage * message, gpointer user_data) * { - * // ignore anything but 'prepare-xwindow-id' element messages + * // ignore anything but 'prepare-window-handle' element messages * if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT) * return GST_BUS_PASS; - * if (!gst_structure_has_name (message->structure, "prepare-xwindow-id")) + * if (!gst_structure_has_name (message->structure, "prepare-window-handle")) * return GST_BUS_PASS; * * if (video_window_xid != 0) { - * GstXOverlay *xoverlay; + * GstVideoOverlay *xoverlay; * * // GST_MESSAGE_SRC (message) will be the video sink element - * xoverlay = GST_X_OVERLAY (GST_MESSAGE_SRC (message)); - * gst_x_overlay_set_window_handle (xoverlay, video_window_xid); + * xoverlay = GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message)); + * gst_video_overlay_set_window_handle (xoverlay, video_window_xid); * } else { * g_warning ("Should have obtained video_window_xid by now!"); * } @@ -180,7 +180,7 @@ * // This is here just for pedagogical purposes, GDK_WINDOW_XID will call * // it as well in newer Gtk versions * if (!gdk_window_ensure_native (widget->window)) - * g_error ("Couldn't create native window needed for GstXOverlay!"); + * g_error ("Couldn't create native window needed for GstVideoOverlay!"); * #endif * * #ifdef GDK_WINDOWING_X11 @@ -229,12 +229,12 @@ * * * - * GstXOverlay and Qt + * GstVideoOverlay and Qt * * |[ * #include <glib.h> * #include <gst/gst.h> - * #include <gst/interfaces/xoverlay.h> + * #include <gst/interfaces/videooverlay.h> * * #include <QApplication> * #include <QTimer> @@ -264,7 +264,7 @@ * window.show(); * * WId xwinid = window.winId(); - * gst_x_overlay_set_window_handle (GST_X_OVERLAY (sink), xwinid); + * gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink), xwinid); * * // run the pipeline * @@ -294,19 +294,17 @@ #include "config.h" #endif -#include "xoverlay.h" - -static void gst_x_overlay_base_init (gpointer g_class); +#include "videooverlay.h" GType -gst_x_overlay_get_type (void) +gst_video_overlay_get_type (void) { - static GType gst_x_overlay_type = 0; + static GType gst_video_overlay_type = 0; - if (!gst_x_overlay_type) { - static const GTypeInfo gst_x_overlay_info = { - sizeof (GstXOverlayClass), - gst_x_overlay_base_init, + if (!gst_video_overlay_type) { + static const GTypeInfo gst_video_overlay_info = { + sizeof (GstVideoOverlayIface), + NULL, NULL, NULL, NULL, @@ -316,47 +314,16 @@ gst_x_overlay_get_type (void) NULL, }; - gst_x_overlay_type = g_type_register_static (G_TYPE_INTERFACE, - "GstXOverlay", &gst_x_overlay_info, 0); + gst_video_overlay_type = g_type_register_static (G_TYPE_INTERFACE, + "GstVideoOverlay", &gst_video_overlay_info, 0); } - return gst_x_overlay_type; -} - -static void -gst_x_overlay_base_init (gpointer g_class) -{ - + return gst_video_overlay_type; } /** - * gst_x_overlay_set_xwindow_id: - * @overlay: a #GstXOverlay to set the window on. - * @xwindow_id: a XID referencing the XWindow. - * - * This will call the video overlay's set_xwindow_id method. You should - * use this method to tell to a XOverlay to display video output to a - * specific XWindow. Passing 0 as the @xwindow_id will tell the overlay to - * stop using that window and create an internal one. - * - * Deprecated: Use gst_x_overlay_set_window_handle() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void gst_x_overlay_set_xwindow_id (GstXOverlay * overlay, gulong xwindow_id); -#endif -void -gst_x_overlay_set_xwindow_id (GstXOverlay * overlay, gulong xwindow_id) -{ - GST_WARNING_OBJECT (overlay, - "Using deprecated gst_x_overlay_set_xwindow_id()"); - gst_x_overlay_set_window_handle (overlay, xwindow_id); -} -#endif - -/** - * gst_x_overlay_set_window_handle: - * @overlay: a #GstXOverlay to set the window on. + * gst_video_overlay_set_window_handle: + * @overlay: a #GstVideoOverlay to set the window on. * @handle: a handle referencing the window. * * This will call the video overlay's set_window_handle method. You @@ -367,135 +334,97 @@ gst_x_overlay_set_xwindow_id (GstXOverlay * overlay, gulong xwindow_id) * Since: 0.10.31 */ void -gst_x_overlay_set_window_handle (GstXOverlay * overlay, guintptr handle) +gst_video_overlay_set_window_handle (GstVideoOverlay * overlay, guintptr handle) { - GstXOverlayClass *klass; + GstVideoOverlayIface *iface; g_return_if_fail (overlay != NULL); - g_return_if_fail (GST_IS_X_OVERLAY (overlay)); + g_return_if_fail (GST_IS_VIDEO_OVERLAY (overlay)); - klass = GST_X_OVERLAY_GET_CLASS (overlay); + iface = GST_VIDEO_OVERLAY_GET_IFACE (overlay); - if (klass->set_window_handle) { - klass->set_window_handle (overlay, handle); - } else { -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -#define set_xwindow_id set_xwindow_id_disabled -#endif - if (sizeof (guintptr) <= sizeof (gulong) && klass->set_xwindow_id) { - GST_WARNING_OBJECT (overlay, - "Calling deprecated set_xwindow_id() method"); - klass->set_xwindow_id (overlay, handle); - } else { - g_warning ("Refusing to cast guintptr to smaller gulong"); - } -#endif + if (iface->set_window_handle) { + iface->set_window_handle (overlay, handle); } } /** - * gst_x_overlay_got_xwindow_id: - * @overlay: a #GstXOverlay which got a XWindow. - * @xwindow_id: a #XID referencing the XWindow. - * - * This will post a "have-xwindow-id" element message on the bus. - * - * This function should only be used by video overlay plugin developers. - * - * Deprecated: Use gst_x_overlay_got_window_handle() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void gst_x_overlay_got_xwindow_id (GstXOverlay * overlay, gulong xwindow_id); -#endif -void -gst_x_overlay_got_xwindow_id (GstXOverlay * overlay, gulong xwindow_id) -{ - GST_WARNING_OBJECT (overlay, - "Using deprecated gst_x_overlay_got_xwindow_id()"); - gst_x_overlay_got_window_handle (overlay, xwindow_id); -} -#endif - -/** - * gst_x_overlay_got_window_handle: - * @overlay: a #GstXOverlay which got a window + * gst_video_overlay_got_window_handle: + * @overlay: a #GstVideoOverlay which got a window * @handle: a platform-specific handle referencing the window * - * This will post a "have-xwindow-id" element message on the bus. + * This will post a "have-window-handle" element message on the bus. * * This function should only be used by video overlay plugin developers. */ void -gst_x_overlay_got_window_handle (GstXOverlay * overlay, guintptr handle) +gst_video_overlay_got_window_handle (GstVideoOverlay * overlay, guintptr handle) { GstStructure *s; GstMessage *msg; g_return_if_fail (overlay != NULL); - g_return_if_fail (GST_IS_X_OVERLAY (overlay)); + g_return_if_fail (GST_IS_VIDEO_OVERLAY (overlay)); - GST_LOG_OBJECT (GST_OBJECT (overlay), "xwindow_id = %p", (gpointer) + GST_LOG_OBJECT (GST_OBJECT (overlay), "window_handle = %p", (gpointer) handle); - s = gst_structure_new ("have-xwindow-id", - "xwindow-id", G_TYPE_ULONG, (unsigned long) handle, + s = gst_structure_new ("have-window-handle", "window-handle", G_TYPE_UINT64, (guint64) handle, NULL); msg = gst_message_new_element (GST_OBJECT (overlay), s); gst_element_post_message (GST_ELEMENT (overlay), msg); } /** - * gst_x_overlay_prepare_xwindow_id: - * @overlay: a #GstXOverlay which does not yet have an XWindow. + * gst_video_overlay_prepare_window_handle: + * @overlay: a #GstVideoOverlay which does not yet have an Window handle set * - * This will post a "prepare-xwindow-id" element message on the bus + * This will post a "prepare-window-handle" element message on the bus * to give applications an opportunity to call - * gst_x_overlay_set_xwindow_id() before a plugin creates its own + * gst_video_overlay_set_window_handle() before a plugin creates its own * window. * * This function should only be used by video overlay plugin developers. */ void -gst_x_overlay_prepare_xwindow_id (GstXOverlay * overlay) +gst_video_overlay_prepare_window_handle (GstVideoOverlay * overlay) { GstStructure *s; GstMessage *msg; g_return_if_fail (overlay != NULL); - g_return_if_fail (GST_IS_X_OVERLAY (overlay)); + g_return_if_fail (GST_IS_VIDEO_OVERLAY (overlay)); - GST_LOG_OBJECT (GST_OBJECT (overlay), "prepare xwindow_id"); - s = gst_structure_new ("prepare-xwindow-id", NULL); + GST_LOG_OBJECT (GST_OBJECT (overlay), "prepare window handle"); + s = gst_structure_new ("prepare-window-handle", NULL); msg = gst_message_new_element (GST_OBJECT (overlay), s); gst_element_post_message (GST_ELEMENT (overlay), msg); } /** - * gst_x_overlay_expose: - * @overlay: a #GstXOverlay to expose. + * gst_video_overlay_expose: + * @overlay: a #GstVideoOverlay to expose. * * Tell an overlay that it has been exposed. This will redraw the current frame * in the drawable even if the pipeline is PAUSED. */ void -gst_x_overlay_expose (GstXOverlay * overlay) +gst_video_overlay_expose (GstVideoOverlay * overlay) { - GstXOverlayClass *klass; + GstVideoOverlayIface *iface; g_return_if_fail (overlay != NULL); - g_return_if_fail (GST_IS_X_OVERLAY (overlay)); + g_return_if_fail (GST_IS_VIDEO_OVERLAY (overlay)); - klass = GST_X_OVERLAY_GET_CLASS (overlay); + iface = GST_VIDEO_OVERLAY_GET_IFACE (overlay); - if (klass->expose) { - klass->expose (overlay); + if (iface->expose) { + iface->expose (overlay); } } /** - * gst_x_overlay_handle_events: - * @overlay: a #GstXOverlay to expose. + * gst_video_overlay_handle_events: + * @overlay: a #GstVideoOverlay to expose. * @handle_events: a #gboolean indicating if events should be handled or not. * * Tell an overlay that it should handle events from the window system. These @@ -507,34 +436,35 @@ gst_x_overlay_expose (GstXOverlay * overlay) * Since: 0.10.12 */ void -gst_x_overlay_handle_events (GstXOverlay * overlay, gboolean handle_events) +gst_video_overlay_handle_events (GstVideoOverlay * overlay, + gboolean handle_events) { - GstXOverlayClass *klass; + GstVideoOverlayIface *iface; g_return_if_fail (overlay != NULL); - g_return_if_fail (GST_IS_X_OVERLAY (overlay)); + g_return_if_fail (GST_IS_VIDEO_OVERLAY (overlay)); - klass = GST_X_OVERLAY_GET_CLASS (overlay); + iface = GST_VIDEO_OVERLAY_GET_IFACE (overlay); - if (klass->handle_events) { - klass->handle_events (overlay, handle_events); + if (iface->handle_events) { + iface->handle_events (overlay, handle_events); } } /** - * gst_x_overlay_set_render_rectangle: - * @overlay: a #GstXOverlay + * gst_video_overlay_set_render_rectangle: + * @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 * * 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 + * gst_video_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 + * gst_video_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 @@ -545,20 +475,20 @@ gst_x_overlay_handle_events (GstXOverlay * overlay, gboolean handle_events) * Since: 0.10.29 */ gboolean -gst_x_overlay_set_render_rectangle (GstXOverlay * overlay, +gst_video_overlay_set_render_rectangle (GstVideoOverlay * overlay, gint x, gint y, gint width, gint height) { - GstXOverlayClass *klass; + GstVideoOverlayIface *iface; g_return_val_if_fail (overlay != NULL, FALSE); - g_return_val_if_fail (GST_IS_X_OVERLAY (overlay), FALSE); + g_return_val_if_fail (GST_IS_VIDEO_OVERLAY (overlay), FALSE); g_return_val_if_fail ((width == -1 && height == -1) || (width > 0 && height > 0), FALSE); - klass = GST_X_OVERLAY_GET_CLASS (overlay); + iface = GST_VIDEO_OVERLAY_GET_IFACE (overlay); - if (klass->set_render_rectangle) { - klass->set_render_rectangle (overlay, x, y, width, height); + if (iface->set_render_rectangle) { + iface->set_render_rectangle (overlay, x, y, width, height); return TRUE; } return FALSE; diff --git a/gst-libs/gst/interfaces/videooverlay.h b/gst-libs/gst/interfaces/videooverlay.h new file mode 100644 index 0000000..cfdff44 --- /dev/null +++ b/gst-libs/gst/interfaces/videooverlay.h @@ -0,0 +1,97 @@ +/* GStreamer Video Overlay Interface + * Copyright (C) 2003 Ronald Bultje + * Copyright (C) 2003 Julien Moutte + * Copyright (C) 2011 Tim-Philipp Müller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_VIDEO_OVERLAY_H__ +#define __GST_VIDEO_OVERLAY_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_VIDEO_OVERLAY \ + (gst_video_overlay_get_type ()) +#define GST_VIDEO_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_OVERLAY, GstVideoOverlay)) +#define GST_IS_VIDEO_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_OVERLAY)) +#define GST_VIDEO_OVERLAY_GET_IFACE(inst) \ + (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_VIDEO_OVERLAY, GstVideoOverlayIface)) + +/** + * GstVideoOverlay: + * + * Opaque #GstVideoOverlay interface structure + */ +typedef struct _GstVideoOverlay GstVideoOverlay; +typedef struct _GstVideoOverlayIface GstVideoOverlayIface; + +/** + * GstVideoOverlayIface: + * @interface: parent interface type. + * @expose: virtual method to handle expose events + * @handle_events: virtual method to handle events + * @set_render_rectangle: virtual method to set the render rectangle + * @set_window_handle: virtual method to configure the window handle + * + * #GstVideoOverlay interface + */ +struct _GstVideoOverlayIface { + GTypeInterface interface; + + /* virtual functions */ + void (* expose) (GstVideoOverlay *overlay); + + void (* handle_events) (GstVideoOverlay *overlay, gboolean handle_events); + + void (* set_render_rectangle) (GstVideoOverlay *overlay, + gint x, gint y, + gint width, gint height); + + void (* set_window_handle) (GstVideoOverlay *overlay, guintptr handle); +}; + +GType gst_video_overlay_get_type (void); + +/* virtual function wrappers */ + +gboolean gst_video_overlay_set_render_rectangle (GstVideoOverlay * overlay, + gint x, + gint y, + gint width, + gint height); + +void gst_video_overlay_expose (GstVideoOverlay * overlay); + +void gst_video_overlay_handle_events (GstVideoOverlay * overlay, + gboolean handle_events); + +void gst_video_overlay_set_window_handle (GstVideoOverlay * overlay, + guintptr handle); + +/* public methods to dispatch bus messages */ +void gst_video_overlay_got_window_handle (GstVideoOverlay * overlay, + guintptr handle); + +void gst_video_overlay_prepare_window_handle (GstVideoOverlay * overlay); + +G_END_DECLS + +#endif /* __GST_VIDEO_OVERLAY_H__ */ diff --git a/gst-libs/gst/interfaces/xoverlay.h b/gst-libs/gst/interfaces/xoverlay.h deleted file mode 100644 index d0ece43..0000000 --- a/gst-libs/gst/interfaces/xoverlay.h +++ /dev/null @@ -1,125 +0,0 @@ -/* GStreamer X-based Overlay - * Copyright (C) 2003 Ronald Bultje - * Copyright (C) 2003 Julien Moutte - * - * x-overlay.h: X-based overlay interface design - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_X_OVERLAY_H__ -#define __GST_X_OVERLAY_H__ - -#include - -G_BEGIN_DECLS - -/* FIXME 0.11: remove all CLASS bits, this is an interface */ - -#define GST_TYPE_X_OVERLAY \ - (gst_x_overlay_get_type ()) -#define GST_X_OVERLAY(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, GstXOverlay)) -#define GST_X_OVERLAY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_X_OVERLAY, GstXOverlayClass)) -#define GST_IS_X_OVERLAY(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_X_OVERLAY)) -#define GST_IS_X_OVERLAY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_X_OVERLAY)) -#define GST_X_OVERLAY_GET_CLASS(inst) \ - (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_X_OVERLAY, GstXOverlayClass)) - -/** - * GstXOverlay: - * - * Opaque #GstXOverlay data structure. - */ -typedef struct _GstXOverlay GstXOverlay; -typedef struct _GstXOverlayClass GstXOverlayClass; - -/** - * GstXOverlayClass: - * @klass: parent interface type. - * @set_xwindow_id: (deprecated) virtual method to configure the XWindow handle - * @expose: virtual method to handle expose events - * @handle_events: virtual method to handle events - * @set_render_rectangle: virtual method to set the render rectangle (since 0.10.29) - * @set_window_handle: virtual method to configure the window handle - * - * #GstXOverlay interface - */ -struct _GstXOverlayClass { - GTypeInterface klass; - - /* virtual functions */ -#ifndef GST_DISABLE_DEPRECATED - void (* set_xwindow_id) (GstXOverlay *overlay, - gulong xwindow_id); -#else -#ifndef __GTK_DOC_IGNORE__ - void (* set_xwindow_id_disabled) (GstXOverlay *overlay, - gulong xwindow_id); -#endif -#endif /* not GST_DISABLE_DEPRECATED */ - - void (* expose) (GstXOverlay *overlay); - - void (* handle_events) (GstXOverlay *overlay, - gboolean handle_events); - - void (* set_render_rectangle) (GstXOverlay *overlay, - gint x, gint y, - gint width, gint height); - - void (* set_window_handle) (GstXOverlay *overlay, - guintptr handle); - /*< private >*/ - gpointer _gst_reserved[GST_PADDING - 3]; -}; - -GType gst_x_overlay_get_type (void); - -/* virtual class function wrappers */ -#ifndef GST_DISABLE_DEPRECATED -void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay, - gulong xwindow_id); -#endif - -gboolean gst_x_overlay_set_render_rectangle (GstXOverlay *overlay, - gint x, gint y, - gint width, gint height); - -void gst_x_overlay_expose (GstXOverlay *overlay); - -void gst_x_overlay_handle_events (GstXOverlay *overlay, - gboolean handle_events); - -void gst_x_overlay_set_window_handle (GstXOverlay *overlay, - guintptr handle); - -/* public methods to dispatch bus messages */ -#ifndef GST_DISABLE_DEPRECATED -void gst_x_overlay_got_xwindow_id (GstXOverlay *overlay, gulong xwindow_id); -#endif - -void gst_x_overlay_got_window_handle (GstXOverlay *overlay, - guintptr handle); - -void gst_x_overlay_prepare_xwindow_id (GstXOverlay *overlay); - -G_END_DECLS - -#endif /* __GST_X_OVERLAY_H__ */ diff --git a/gst-plugins-base.spec.in b/gst-plugins-base.spec.in index fa7dd62..9a9d421 100644 --- a/gst-plugins-base.spec.in +++ b/gst-plugins-base.spec.in @@ -166,7 +166,7 @@ GStreamer Plugins Base library development and header files. %{_includedir}/gstreamer-%{majorminor}/gst/interfaces/tuner.h %{_includedir}/gstreamer-%{majorminor}/gst/interfaces/tunerchannel.h %{_includedir}/gstreamer-%{majorminor}/gst/interfaces/tunernorm.h -%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/xoverlay.h +%{_includedir}/gstreamer-%{majorminor}/gst/interfaces/videooverlay.h %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiosrc.h %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstbaseaudiosrc.h %{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstbasertpaudiopayload.h