From 861724761f815f5bcd28be1f9aeca0b4a0c20ef7 Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Wed, 7 Jan 2004 21:49:25 +0000 Subject: examples/gstplay/Makefile.am: Adding the interface library. Original commit message from CVS: * examples/gstplay/Makefile.am: Adding the interface library. * gst-libs/gst/play/Makefile.am: Adding the interface library. * gst-libs/gst/play/gstplay.c: (gst_play_set_video_sink): Connecting tothe XOverlay size signal instead of GstVideoSink. * gst-libs/gst/play/gstplay.h: Including the XOverlay interface to check GST_IS_X_OVERLAY before signal connect. * gst-libs/gst/video/gstvideosink.c: (gst_videosink_class_init): Removing the have_video_size signal. * gst-libs/gst/video/gstvideosink.h: Removing the have_video_size signal and associated public method. * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents), (gst_ximagesink_sinkconnect): Using XOverlay public method to fire size signal. * sys/xvideo/xvideosink.c: (gst_xvideosink_sinkconnect), (gst_xvideosink_xwindow_new): Using XOverlay public method to fire size signal. * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sinkconnect): Using XOverlay public method to fire size signal. --- gst-libs/gst/play/Makefile.am | 5 ++++- gst-libs/gst/play/gstplay.c | 7 +++++-- gst-libs/gst/play/gstplay.h | 1 + gst-libs/gst/play/play.c | 7 +++++-- gst-libs/gst/play/play.h | 1 + gst-libs/gst/video/gstvideosink.c | 37 ------------------------------------- gst-libs/gst/video/gstvideosink.h | 9 +-------- gst-libs/gst/video/videosink.h | 9 +-------- 8 files changed, 18 insertions(+), 58 deletions(-) (limited to 'gst-libs') diff --git a/gst-libs/gst/play/Makefile.am b/gst-libs/gst/play/Makefile.am index db444521..82a6d672 100644 --- a/gst-libs/gst/play/Makefile.am +++ b/gst-libs/gst/play/Makefile.am @@ -8,7 +8,10 @@ libgstplay_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@ libgstplay_@GST_MAJORMINOR@include_HEADERS = gstplay.h libgstplay_@GST_MAJORMINOR@_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_CFLAGS) -libgstplay_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) $(GST_PLUGINS_LIBS) $(GST_CONTROL_LIBS) +libgstplay_@GST_MAJORMINOR@_la_LIBADD = + $(GST_LIBS) $(GST_PLUGINS_LIBS) \ + $(GST_CONTROL_LIBS) \ + $(top_builddir)/gst-libs/gst/libgstinterfaces-$(GST_MAJORMINOR).la libgstplay_@GST_MAJORMINOR@_la_LDFLAGS = \ -version-info @GST_PLUGINS_LIBVERSION@ diff --git a/gst-libs/gst/play/gstplay.c b/gst-libs/gst/play/gstplay.c index d79e06f3..7c7ef849 100644 --- a/gst-libs/gst/play/gstplay.c +++ b/gst-libs/gst/play/gstplay.c @@ -685,8 +685,11 @@ gst_play_set_video_sink (GstPlay *play, GstElement *video_sink) if (GST_IS_ELEMENT (video_sink_element)) { g_hash_table_replace (play->priv->elements, "video_sink_element", video_sink_element); - g_signal_connect (G_OBJECT (video_sink_element), "have_video_size", - G_CALLBACK (gst_play_have_video_size), play); + if (GST_IS_X_OVERLAY (video_sink_element)) { + g_signal_connect (G_OBJECT (video_sink_element), + "desired_size_changed", + G_CALLBACK (gst_play_have_video_size), play); + } } gst_element_set_state (video_sink, GST_STATE (GST_ELEMENT(play))); diff --git a/gst-libs/gst/play/gstplay.h b/gst-libs/gst/play/gstplay.h index 0c45d943..484b7bc0 100644 --- a/gst-libs/gst/play/gstplay.h +++ b/gst-libs/gst/play/gstplay.h @@ -21,6 +21,7 @@ #define __GST_PLAY_H__ #include +#include #define GST_TYPE_PLAY (gst_play_get_type()) #define GST_PLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY, GstPlay)) diff --git a/gst-libs/gst/play/play.c b/gst-libs/gst/play/play.c index d79e06f3..7c7ef849 100644 --- a/gst-libs/gst/play/play.c +++ b/gst-libs/gst/play/play.c @@ -685,8 +685,11 @@ gst_play_set_video_sink (GstPlay *play, GstElement *video_sink) if (GST_IS_ELEMENT (video_sink_element)) { g_hash_table_replace (play->priv->elements, "video_sink_element", video_sink_element); - g_signal_connect (G_OBJECT (video_sink_element), "have_video_size", - G_CALLBACK (gst_play_have_video_size), play); + if (GST_IS_X_OVERLAY (video_sink_element)) { + g_signal_connect (G_OBJECT (video_sink_element), + "desired_size_changed", + G_CALLBACK (gst_play_have_video_size), play); + } } gst_element_set_state (video_sink, GST_STATE (GST_ELEMENT(play))); diff --git a/gst-libs/gst/play/play.h b/gst-libs/gst/play/play.h index 0c45d943..484b7bc0 100644 --- a/gst-libs/gst/play/play.h +++ b/gst-libs/gst/play/play.h @@ -21,6 +21,7 @@ #define __GST_PLAY_H__ #include +#include #define GST_TYPE_PLAY (gst_play_get_type()) #define GST_PLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY, GstPlay)) diff --git a/gst-libs/gst/video/gstvideosink.c b/gst-libs/gst/video/gstvideosink.c index 4a3db86b..ca7cc51a 100644 --- a/gst-libs/gst/video/gstvideosink.c +++ b/gst-libs/gst/video/gstvideosink.c @@ -24,15 +24,7 @@ #include "gstvideosink.h" -/* VideoSink signals and args */ - -enum { - HAVE_VIDEO_SIZE, - LAST_SIGNAL -}; - static GstElementClass *parent_class = NULL; -static guint gst_videosink_signals[LAST_SIGNAL] = { 0 }; /* Private methods */ @@ -66,41 +58,12 @@ gst_videosink_class_init (GstVideoSinkClass *klass) gstelement_class = (GstElementClass*)klass; parent_class = g_type_class_ref (GST_TYPE_ELEMENT); - - gst_videosink_signals[HAVE_VIDEO_SIZE] = - g_signal_new ("have_video_size", - G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GstVideoSinkClass, have_video_size), - NULL, NULL, - gst_marshal_VOID__INT_INT, G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); gstelement_class->set_clock = gst_videosink_set_clock; } /* Public methods */ -/** - * gst_video_sink_got_video_size: - * @videosink: a #GstVideoSink which received video geometry. - * @width: a width as a #gint. - * @height: a height as a #gint. - * - * This will fire an have_size signal and update the internal object's - * geometry. - * - * This function should be used by video sink developpers. - */ -void -gst_video_sink_got_video_size (GstVideoSink *videosink, gint width, gint height) -{ - g_return_if_fail (videosink != NULL); - g_return_if_fail (GST_IS_VIDEOSINK (videosink)); - - g_signal_emit (G_OBJECT (videosink), gst_videosink_signals[HAVE_VIDEO_SIZE], - 0, width, height); -} - GType gst_videosink_get_type (void) { diff --git a/gst-libs/gst/video/gstvideosink.h b/gst-libs/gst/video/gstvideosink.h index 6ba23fd4..129a47d6 100644 --- a/gst-libs/gst/video/gstvideosink.h +++ b/gst-libs/gst/video/gstvideosink.h @@ -61,19 +61,12 @@ struct _GstVideoSink { struct _GstVideoSinkClass { GstElementClass parent_class; - - /* signals */ - void (*have_video_size) (GstVideoSink *element, gint width, gint height); - + gpointer _gst_reserved[GST_PADDING]; }; GType gst_videosink_get_type (void); -/* public methods to fire signals */ -void gst_video_sink_got_video_size (GstVideoSink *videosink, - gint width, gint height); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/gst-libs/gst/video/videosink.h b/gst-libs/gst/video/videosink.h index 6ba23fd4..129a47d6 100644 --- a/gst-libs/gst/video/videosink.h +++ b/gst-libs/gst/video/videosink.h @@ -61,19 +61,12 @@ struct _GstVideoSink { struct _GstVideoSinkClass { GstElementClass parent_class; - - /* signals */ - void (*have_video_size) (GstVideoSink *element, gint width, gint height); - + gpointer _gst_reserved[GST_PADDING]; }; GType gst_videosink_get_type (void); -/* public methods to fire signals */ -void gst_video_sink_got_video_size (GstVideoSink *videosink, - gint width, gint height); - #ifdef __cplusplus } #endif /* __cplusplus */ -- cgit v1.2.1