Events: seeking (and more)

Events work in a very similar way as queries. Dispatching, for example, works exactly the same for events (and also has the same limitations). Although there are more ways in which applications and elements can interact using events, we will only focus on seeking here. This is done using the seek-event. A seek-event contains a seeking offset, a seek method (which indicates relative to what the offset was given), a seek format (which is the unit of the offset, e.g. time, audio samples, video frames or bytes) and optionally a set of seeking-related flags (e.g. whether internal buffers should be flushed). The behaviour of a seek is also wrapped in the function gst_element_seek ().


static void
seek_to_time (GstElement *audiosink,
	      gint64      time_nanonseconds)
{
  gst_element_seek (audiosink,
		    GST_SEEK_METHOD_SET | GST_FORMAT_TIME |
		    GST_SEEK_FLAG_FLUSH, time_nanoseconds);
}