summaryrefslogtreecommitdiff
path: root/gst/gstmessage.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/gstmessage.c')
-rw-r--r--gst/gstmessage.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 4bc185d6a7..c8f042b1c7 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -110,6 +110,7 @@ static GstMessageQuarks message_quarks[] = {
{GST_MESSAGE_ASYNC_START, "async-start", 0},
{GST_MESSAGE_ASYNC_DONE, "async-done", 0},
{GST_MESSAGE_REQUEST_STATE, "request-state", 0},
+ {GST_MESSAGE_STEP_START, "step-start", 0},
{0, NULL, 0}
};
@@ -1723,3 +1724,28 @@ gst_message_parse_step_done (GstMessage * message, GstFormat * format,
g_value_get_uint64 (gst_structure_id_get_value (message->structure,
GST_QUARK (DURATION)));
}
+
+GstMessage *
+gst_message_new_step_start (GstObject * src, gboolean active)
+{
+ GstMessage *message;
+ GstStructure *structure;
+
+ structure = gst_structure_id_new (GST_QUARK (MESSAGE_STEP_START),
+ GST_QUARK (ACTIVE), G_TYPE_BOOLEAN, active, NULL);
+ message = gst_message_new_custom (GST_MESSAGE_STEP_START, src, structure);
+
+ return message;
+}
+
+void
+gst_message_parse_step_start (GstMessage * message, gboolean * active)
+{
+ g_return_if_fail (GST_IS_MESSAGE (message));
+ g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STEP_START);
+
+ if (active)
+ *active =
+ g_value_get_boolean (gst_structure_id_get_value (message->structure,
+ GST_QUARK (ACTIVE)));
+}