/**
* GstSegment:
* @flags: flags for this segment
- * @rate: the rate of the segment
+ * @rate: the playback rate of the segment
* @applied_rate: the already applied rate to the segment
* @format: the format of the segment values
- * @base: the base of the segment
- * @offset: the offset to apply to @start or @stop
- * @start: the start of the segment
- * @stop: the stop of the segment
- * @time: the stream time of the segment
- * @position: the position in the segment (used internally by elements
- * such as sources, demuxers or parsers to track progress)
- * @duration: the duration of the segment
+ * @base: the running time (plus elapsed time, see offset) of the segment start
+ * @offset: the amount (in buffer timestamps) that has already been elapsed in
+ * the segment
+ * @start: the start of the segment in buffer timestamp time (PTS)
+ * @stop: the stop of the segment in buffer timestamp time (PTS)
+ * @time: the stream time of the segment start
+ * @position: the buffer timestamp position in the segment (used internally by
+ * elements such as sources, demuxers or parsers to track progress)
+ * @duration: the duration of the stream
*
* A helper structure that holds the configured region of
* interest in a media file.
gpointer _gst_reserved[GST_PADDING];
};
+GST_API
GType gst_segment_get_type (void);
+GST_API
GstSegment * gst_segment_new (void) G_GNUC_MALLOC;
+
+GST_API
GstSegment * gst_segment_copy (const GstSegment *segment) G_GNUC_MALLOC;
+
+GST_API
void gst_segment_copy_into (const GstSegment *src, GstSegment *dest);
+
+GST_API
void gst_segment_free (GstSegment *segment);
+GST_API
void gst_segment_init (GstSegment *segment, GstFormat format);
+GST_API
+gint gst_segment_to_stream_time_full (const GstSegment *segment, GstFormat format, guint64 position, guint64 * stream_time);
+
+GST_API
guint64 gst_segment_to_stream_time (const GstSegment *segment, GstFormat format, guint64 position);
+
+GST_API
+gint gst_segment_position_from_stream_time_full (const GstSegment * segment, GstFormat format, guint64 stream_time, guint64 * position);
+
+GST_API
+guint64 gst_segment_position_from_stream_time (const GstSegment * segment, GstFormat format, guint64 stream_time);
+
+GST_API
guint64 gst_segment_to_running_time (const GstSegment *segment, GstFormat format, guint64 position);
+GST_API
gint gst_segment_to_running_time_full (const GstSegment *segment, GstFormat format, guint64 position,
guint64 * running_time);
+
+GST_DEPRECATED_FOR(gst_segment_position_from_running_time)
guint64 gst_segment_to_position (const GstSegment *segment, GstFormat format, guint64 running_time);
+GST_API
+gint gst_segment_position_from_running_time_full (const GstSegment *segment, GstFormat format, guint64 running_time, guint64 * position);
+
+GST_API
+guint64 gst_segment_position_from_running_time (const GstSegment *segment, GstFormat format, guint64 running_time);
+
+GST_API
gboolean gst_segment_set_running_time (GstSegment *segment, GstFormat format, guint64 running_time);
+GST_API
gboolean gst_segment_offset_running_time (GstSegment *segment, GstFormat format, gint64 offset);
+GST_API
gboolean gst_segment_clip (const GstSegment *segment, GstFormat format, guint64 start,
guint64 stop, guint64 *clip_start, guint64 *clip_stop);
-
-
+GST_API
gboolean gst_segment_do_seek (GstSegment * segment, gdouble rate,
GstFormat format, GstSeekFlags flags,
GstSeekType start_type, guint64 start,
GstSeekType stop_type, guint64 stop, gboolean * update);
+GST_API
gboolean gst_segment_is_equal (const GstSegment * s0, const GstSegment * s1);
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstSegment, gst_segment_free)
+#endif
+
G_END_DECLS
#endif /* __GST_SEGMENT_H__ */