GST_ELEMENT_BUS
GST_ELEMENT_CLOCK
GST_ELEMENT_PADS
+GST_ELEMENT_START_TIME
GST_ELEMENT_ERROR
GST_ELEMENT_WARNING
GST_ELEMENT_INFO
<SUBSECTION element-properties>
gst_element_set_base_time
gst_element_get_base_time
+gst_element_set_start_time
+gst_element_get_start_time
gst_element_set_bus
gst_element_get_bus
gst_element_get_factory
}
/**
+ * gst_element_set_start_time:
+ * @element: a #GstElement.
+ * @time: the base time to set.
+ *
+ * Set the start time of an element. See gst_element_get_start_time().
+ *
+ * MT safe.
+ *
+ * Since: 0.10.24
+ */
+void
+gst_element_set_start_time (GstElement * element, GstClockTime time)
+{
+ GstClockTime old;
+
+ g_return_if_fail (GST_IS_ELEMENT (element));
+
+ GST_OBJECT_LOCK (element);
+ old = GST_ELEMENT_START_TIME (element);
+ GST_ELEMENT_START_TIME (element) = time;
+ GST_OBJECT_UNLOCK (element);
+
+ GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, element,
+ "set start_time=%" GST_TIME_FORMAT ", old %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (time), GST_TIME_ARGS (old));
+}
+
+/**
+ * gst_element_get_start_time:
+ * @element: a #GstElement.
+ *
+ * Returns the start time of the element. The start time is the
+ * running time of the clock when this element was last put to
+ * PAUSED.
+ *
+ * MT safe.
+ *
+ * Returns: the start time of the element.
+ *
+ * Since: 0.10.24
+ */
+GstClockTime
+gst_element_get_start_time (GstElement * element)
+{
+ GstClockTime result;
+
+ g_return_val_if_fail (GST_IS_ELEMENT (element), GST_CLOCK_TIME_NONE);
+
+ GST_OBJECT_LOCK (element);
+ result = GST_ELEMENT_START_TIME (element);
+ GST_OBJECT_UNLOCK (element);
+
+ return result;
+}
+
+/**
* gst_element_is_indexable:
* @element: a #GstElement.
*
#define GST_ELEMENT_PADS(elem) (GST_ELEMENT_CAST(elem)->pads)
/**
+ * GST_ELEMENT_START_TIME:
+ * @elem: a #GstElement to return the start time for.
+ *
+ * This macro returns the start_time of the @elem. The start_time is the
+ * running_time of the pipeline when the element went to PAUSED.
+ *
+ * Since: 0.10.24
+ */
+#define GST_ELEMENT_START_TIME(elem) (GST_ELEMENT_CAST(elem)->abidata.ABI.start_time)
+
+/**
* GST_ELEMENT_ERROR:
* @el: the element that generates the error
* @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)
struct {
/* state set by application */
GstState target_state;
+ /* running time of the last PAUSED state */
+ GstClockTime start_time;
} ABI;
/* adding + 0 to mark ABI change to be undone later */
gpointer _gst_reserved[GST_PADDING + 0];
gboolean gst_element_set_clock (GstElement *element, GstClock *clock);
void gst_element_set_base_time (GstElement *element, GstClockTime time);
GstClockTime gst_element_get_base_time (GstElement *element);
+void gst_element_set_start_time (GstElement *element, GstClockTime time);
+GstClockTime gst_element_get_start_time (GstElement *element);
/* indexes */
gboolean gst_element_is_indexable (GstElement *element);
gst_element_get_pad
gst_element_get_query_types
gst_element_get_request_pad
+ gst_element_get_start_time
gst_element_get_state
gst_element_get_static_pad
gst_element_get_type
gst_element_set_clock
gst_element_set_index
gst_element_set_locked_state
+ gst_element_set_start_time
gst_element_set_state
gst_element_state_change_return_get_name
gst_element_state_get_name