summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/play/play.old.c
diff options
context:
space:
mode:
authorJulien Moutte <julien@moutte.net>2003-09-11 19:27:37 +0000
committerJulien Moutte <julien@moutte.net>2003-09-11 19:27:37 +0000
commit6136075583e0624d2be79e2d853c00058741cfda (patch)
tree4ec0424b72104b42cd53cfdc44ed2ed55a454058 /gst-libs/gst/play/play.old.c
parentdb7862f6f21d0750d8653bb4fbdeaee08493ce5e (diff)
downloadgst-plugins-bad-6136075583e0624d2be79e2d853c00058741cfda.tar.gz
gst-plugins-bad-6136075583e0624d2be79e2d853c00058741cfda.tar.bz2
gst-plugins-bad-6136075583e0624d2be79e2d853c00058741cfda.zip
Visualisation video sink now has its own HAVE_VIS_SIZE signal.
Original commit message from CVS: Visualisation video sink now has its own HAVE_VIS_SIZE signal.
Diffstat (limited to 'gst-libs/gst/play/play.old.c')
-rw-r--r--gst-libs/gst/play/play.old.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gst-libs/gst/play/play.old.c b/gst-libs/gst/play/play.old.c
index 82f2910d..3be3199f 100644
--- a/gst-libs/gst/play/play.old.c
+++ b/gst-libs/gst/play/play.old.c
@@ -34,6 +34,7 @@ enum
HAVE_XID,
HAVE_VIS_XID,
HAVE_VIDEO_SIZE,
+ HAVE_VIS_SIZE,
PIPELINE_ERROR,
/* put additional signals before this comment */
LAST_SIGNAL,
@@ -352,6 +353,11 @@ gst_play_idle_signal (GstPlay * play)
signal->signal_data.video_size.width,
signal->signal_data.video_size.height);
break;
+ case HAVE_VIS_SIZE:
+ g_signal_emit (G_OBJECT (play), gst_play_signals[HAVE_VIS_SIZE], 0,
+ signal->signal_data.video_size.width,
+ signal->signal_data.video_size.height);
+ break;
case STATE_CHANGE:
g_signal_emit (G_OBJECT (play), gst_play_signals[STATE_CHANGE], 0,
signal->signal_data.state.old_state,
@@ -444,6 +450,22 @@ callback_video_have_size (GstElement * element,
}
static void
+callback_video_have_vis_size (GstElement * element,
+ gint width, gint height, GstPlay * play)
+{
+ GstPlaySignal *signal;
+
+ signal = g_new0 (GstPlaySignal, 1);
+ signal->signal_id = HAVE_VIS_SIZE;
+ signal->signal_data.video_size.width = width;
+ signal->signal_data.video_size.height = height;
+
+ g_async_queue_push (play->signal_queue, signal);
+
+ play->idle_add_func ((GSourceFunc) gst_play_idle_signal, play);
+}
+
+static void
callback_pipeline_error (GstElement * object,
GstElement * orig, char *error, GstPlay * play)
{
@@ -665,6 +687,15 @@ gst_play_class_init (GstPlayClass * klass)
gst_marshal_VOID__INT_INT,
G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
+ gst_play_signals[HAVE_VIS_SIZE] =
+ g_signal_new ("have_vis_size",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GstPlayClass, have_vis_size),
+ NULL, NULL,
+ gst_marshal_VOID__INT_INT,
+ G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
+
gst_control_init (NULL, NULL);
}