examples/gstplay/Makefile.am: Adding the interface library.
authorJulien Moutte <julien@moutte.net>
Wed, 7 Jan 2004 21:49:25 +0000 (21:49 +0000)
committerJulien Moutte <julien@moutte.net>
Wed, 7 Jan 2004 21:49:25 +0000 (21:49 +0000)
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.

ChangeLog
examples/gstplay/Makefile.am
gst-libs/gst/play/Makefile.am
gst-libs/gst/play/gstplay.c
gst-libs/gst/play/gstplay.h
gst-libs/gst/play/play.c
gst-libs/gst/play/play.h
gst-libs/gst/video/gstvideosink.c
gst-libs/gst/video/gstvideosink.h
gst-libs/gst/video/videosink.h

index 600f0f1..1b926af 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2004-01-07  Julien MOUTTE  <julien@moutte.net>
+
+       * 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 to         the 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.
+
 2004-01-07  David Schleef  <ds@schleef.org>
 
        * gst/videofilter/Makefile.am:
index f80a8bf..795fc36 100644 (file)
@@ -5,5 +5,6 @@ player_SOURCES = player.c
 player_CFLAGS = $(GST_CFLAGS)
 player_LDFLAGS = \
     $(GST_LIBS) \
-    $(top_builddir)/gst-libs/gst/play/libgstplay-@GST_MAJORMINOR@.la
+    $(top_builddir)/gst-libs/gst/play/libgstplay-@GST_MAJORMINOR@.la \
+    $(top_builddir)/gst-libs/gst/libgstinterfaces-$(GST_MAJORMINOR).la
 
index db44452..82a6d67 100644 (file)
@@ -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@
 
index d79e06f..7c7ef84 100644 (file)
@@ -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)));
index 0c45d94..484b7bc 100644 (file)
@@ -21,6 +21,7 @@
 #define __GST_PLAY_H__
 
 #include <gst/gst.h>
+#include <gst/xoverlay/xoverlay.h>
 
 #define GST_TYPE_PLAY            (gst_play_get_type())
 #define GST_PLAY(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY, GstPlay))
index d79e06f..7c7ef84 100644 (file)
@@ -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)));
index 0c45d94..484b7bc 100644 (file)
@@ -21,6 +21,7 @@
 #define __GST_PLAY_H__
 
 #include <gst/gst.h>
+#include <gst/xoverlay/xoverlay.h>
 
 #define GST_TYPE_PLAY            (gst_play_get_type())
 #define GST_PLAY(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY, GstPlay))
index 4a3db86..ca7cc51 100644 (file)
 
 #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)
 {
index 6ba23fd..129a47d 100644 (file)
@@ -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 */
index 6ba23fd..129a47d 100644 (file)
@@ -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 */