All elements to which it applies (sources, sinks, demuxers) should implement query functions on their pads, so that applications and neighbour elements can request the current position, the stream length (if known) and so on.
All elements that are event-aware (their
GST_ELEMENT_EVENT_AWARE
flag is set)
should implement event handling for all
events, either specifically or using
gst_pad_event_default ()
. Elements that
you should handle specifically are the interrupt event, in
order to properly bail out as soon as possible if state is
changed. Events may never be dropped unless specifically
intended.
Loop-based elements should always implement event handling, in order to prevent hangs (infinite loop) on state changes.