mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-18 12:15:19 +00:00
updating tee to use properties
Original commit message from CVS: updating tee to use properties
This commit is contained in:
parent
bc9abdfd96
commit
70834db6ad
4 changed files with 44 additions and 8 deletions
|
@ -43,6 +43,7 @@ enum {
|
||||||
ARG_0,
|
ARG_0,
|
||||||
ARG_SILENT,
|
ARG_SILENT,
|
||||||
ARG_NUM_PADS,
|
ARG_NUM_PADS,
|
||||||
|
ARG_LAST_MESSAGE,
|
||||||
/* FILL ME */
|
/* FILL ME */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,6 +108,9 @@ gst_tee_class_init (GstTeeClass *klass)
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SILENT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SILENT,
|
||||||
g_param_spec_boolean ("silent", "silent", "silent",
|
g_param_spec_boolean ("silent", "silent", "silent",
|
||||||
FALSE, G_PARAM_READWRITE));
|
FALSE, G_PARAM_READWRITE));
|
||||||
|
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LAST_MESSAGE,
|
||||||
|
g_param_spec_string ("last_message", "last_message", "last_message",
|
||||||
|
NULL, G_PARAM_READABLE));
|
||||||
|
|
||||||
|
|
||||||
gobject_class->set_property = GST_DEBUG_FUNCPTR(gst_tee_set_property);
|
gobject_class->set_property = GST_DEBUG_FUNCPTR(gst_tee_set_property);
|
||||||
|
@ -153,6 +157,7 @@ gst_tee_init (GstTee *tee)
|
||||||
gst_pad_set_connect_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_sinkconnect));
|
gst_pad_set_connect_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_sinkconnect));
|
||||||
|
|
||||||
tee->silent = FALSE;
|
tee->silent = FALSE;
|
||||||
|
tee->last_message = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* helper compare function */
|
/* helper compare function */
|
||||||
|
@ -199,9 +204,16 @@ gst_tee_request_new_pad (GstElement *element, GstPadTemplate *templ, const gchar
|
||||||
name = NULL;
|
name = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gst_element_info (GST_ELEMENT (tee), "new pad %s", name);
|
/* FIXME: thomas: does tee also have to notify a new pad ? */
|
||||||
|
if (!tee->silent) {
|
||||||
|
if (tee->last_message) g_free (tee->last_message);
|
||||||
|
tee->last_message = g_strdup_printf ("new pad %s", name);
|
||||||
|
g_object_notify (G_OBJECT (tee), "last_message");
|
||||||
|
}
|
||||||
|
/* g_object_notify (G_OBJECT (element), "new pad"); */
|
||||||
|
|
||||||
srcpad = gst_pad_new_from_template (templ, name);
|
srcpad = gst_pad_new_from_template (templ, name);
|
||||||
|
g_free (name);
|
||||||
gst_element_add_pad (GST_ELEMENT (tee), srcpad);
|
gst_element_add_pad (GST_ELEMENT (tee), srcpad);
|
||||||
gst_pad_set_event_function (srcpad, gst_tee_event_handler);
|
gst_pad_set_event_function (srcpad, gst_tee_event_handler);
|
||||||
GST_PAD_ELEMENT_PRIVATE (srcpad) = NULL;
|
GST_PAD_ELEMENT_PRIVATE (srcpad) = NULL;
|
||||||
|
@ -245,6 +257,9 @@ gst_tee_set_property (GObject *object, guint prop_id, const GValue *value, GPara
|
||||||
case ARG_SILENT:
|
case ARG_SILENT:
|
||||||
tee->silent = g_value_get_boolean (value);
|
tee->silent = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
case ARG_LAST_MESSAGE:
|
||||||
|
g_value_set_string ((GValue *) value, tee->last_message);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -314,8 +329,10 @@ gst_tee_chain (GstPad *pad, GstBuffer *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tee->silent) {
|
if (!tee->silent) {
|
||||||
gst_element_info (GST_ELEMENT (tee), "chain ******* (%s:%s)t (%d bytes, %llu)",
|
if (tee->last_message) g_free (tee->last_message);
|
||||||
GST_DEBUG_PAD_NAME (outpad), GST_BUFFER_SIZE (buf), GST_BUFFER_TIMESTAMP (buf));
|
tee->last_message = g_strdup_printf ("chain ******* (%s:%s)t (%d bytes, %llu) %p",
|
||||||
|
GST_DEBUG_PAD_NAME (outpad), GST_BUFFER_SIZE (buf), GST_BUFFER_TIMESTAMP (buf), buf);
|
||||||
|
g_object_notify (G_OBJECT (tee), "last_message");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GST_PAD_IS_CONNECTED (outpad))
|
if (GST_PAD_IS_CONNECTED (outpad))
|
||||||
|
|
|
@ -53,6 +53,7 @@ struct _GstTee {
|
||||||
GstPad *sinkpad;
|
GstPad *sinkpad;
|
||||||
|
|
||||||
gboolean silent;
|
gboolean silent;
|
||||||
|
gchar *last_message;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstTeeClass {
|
struct _GstTeeClass {
|
||||||
|
|
|
@ -43,6 +43,7 @@ enum {
|
||||||
ARG_0,
|
ARG_0,
|
||||||
ARG_SILENT,
|
ARG_SILENT,
|
||||||
ARG_NUM_PADS,
|
ARG_NUM_PADS,
|
||||||
|
ARG_LAST_MESSAGE,
|
||||||
/* FILL ME */
|
/* FILL ME */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,6 +108,9 @@ gst_tee_class_init (GstTeeClass *klass)
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SILENT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SILENT,
|
||||||
g_param_spec_boolean ("silent", "silent", "silent",
|
g_param_spec_boolean ("silent", "silent", "silent",
|
||||||
FALSE, G_PARAM_READWRITE));
|
FALSE, G_PARAM_READWRITE));
|
||||||
|
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LAST_MESSAGE,
|
||||||
|
g_param_spec_string ("last_message", "last_message", "last_message",
|
||||||
|
NULL, G_PARAM_READABLE));
|
||||||
|
|
||||||
|
|
||||||
gobject_class->set_property = GST_DEBUG_FUNCPTR(gst_tee_set_property);
|
gobject_class->set_property = GST_DEBUG_FUNCPTR(gst_tee_set_property);
|
||||||
|
@ -153,6 +157,7 @@ gst_tee_init (GstTee *tee)
|
||||||
gst_pad_set_connect_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_sinkconnect));
|
gst_pad_set_connect_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_sinkconnect));
|
||||||
|
|
||||||
tee->silent = FALSE;
|
tee->silent = FALSE;
|
||||||
|
tee->last_message = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* helper compare function */
|
/* helper compare function */
|
||||||
|
@ -199,9 +204,16 @@ gst_tee_request_new_pad (GstElement *element, GstPadTemplate *templ, const gchar
|
||||||
name = NULL;
|
name = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gst_element_info (GST_ELEMENT (tee), "new pad %s", name);
|
/* FIXME: thomas: does tee also have to notify a new pad ? */
|
||||||
|
if (!tee->silent) {
|
||||||
|
if (tee->last_message) g_free (tee->last_message);
|
||||||
|
tee->last_message = g_strdup_printf ("new pad %s", name);
|
||||||
|
g_object_notify (G_OBJECT (tee), "last_message");
|
||||||
|
}
|
||||||
|
/* g_object_notify (G_OBJECT (element), "new pad"); */
|
||||||
|
|
||||||
srcpad = gst_pad_new_from_template (templ, name);
|
srcpad = gst_pad_new_from_template (templ, name);
|
||||||
|
g_free (name);
|
||||||
gst_element_add_pad (GST_ELEMENT (tee), srcpad);
|
gst_element_add_pad (GST_ELEMENT (tee), srcpad);
|
||||||
gst_pad_set_event_function (srcpad, gst_tee_event_handler);
|
gst_pad_set_event_function (srcpad, gst_tee_event_handler);
|
||||||
GST_PAD_ELEMENT_PRIVATE (srcpad) = NULL;
|
GST_PAD_ELEMENT_PRIVATE (srcpad) = NULL;
|
||||||
|
@ -245,6 +257,9 @@ gst_tee_set_property (GObject *object, guint prop_id, const GValue *value, GPara
|
||||||
case ARG_SILENT:
|
case ARG_SILENT:
|
||||||
tee->silent = g_value_get_boolean (value);
|
tee->silent = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
case ARG_LAST_MESSAGE:
|
||||||
|
g_value_set_string ((GValue *) value, tee->last_message);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -314,8 +329,10 @@ gst_tee_chain (GstPad *pad, GstBuffer *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tee->silent) {
|
if (!tee->silent) {
|
||||||
gst_element_info (GST_ELEMENT (tee), "chain ******* (%s:%s)t (%d bytes, %llu)",
|
if (tee->last_message) g_free (tee->last_message);
|
||||||
GST_DEBUG_PAD_NAME (outpad), GST_BUFFER_SIZE (buf), GST_BUFFER_TIMESTAMP (buf));
|
tee->last_message = g_strdup_printf ("chain ******* (%s:%s)t (%d bytes, %llu) %p",
|
||||||
|
GST_DEBUG_PAD_NAME (outpad), GST_BUFFER_SIZE (buf), GST_BUFFER_TIMESTAMP (buf), buf);
|
||||||
|
g_object_notify (G_OBJECT (tee), "last_message");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GST_PAD_IS_CONNECTED (outpad))
|
if (GST_PAD_IS_CONNECTED (outpad))
|
||||||
|
|
|
@ -53,6 +53,7 @@ struct _GstTee {
|
||||||
GstPad *sinkpad;
|
GstPad *sinkpad;
|
||||||
|
|
||||||
gboolean silent;
|
gboolean silent;
|
||||||
|
gchar *last_message;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstTeeClass {
|
struct _GstTeeClass {
|
||||||
|
|
Loading…
Reference in a new issue