<!-- ##### SECTION Title ##### -->
GstEvent

<!-- ##### SECTION Short_Description ##### -->
Event definitions.

<!-- ##### SECTION Long_Description ##### -->
<para>
The event classes are used to construct and query events.
</para>

<para>
Events are usually created with gst_event_new() which takes the event type as an argument.
properties specific to the event can be set afterwards with the provided macros. 
The event should be unreferenced with gst_event_unref().
</para>
<para>
gst_event_new_seek() is a usually used to create a seek event and it takes the 
needed parameters for a seek event. 
</para>
<para>
gst_event_new_flush() creates a new flush event.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>
#GstPad
</para>

<!-- ##### ENUM GstEventType ##### -->
<para>
The different major types of events.
</para>

@GST_EVENT_UNKNOWN: unknown event.
@GST_EVENT_EOS: an end-of-stream event.
@GST_EVENT_FLUSH: a flush event.
@GST_EVENT_EMPTY: an empty event.
@GST_EVENT_DISCONTINUOUS: a discontinuous event to indicate the stream has a discontinuity.
@GST_EVENT_NEW_MEDIA: a new media stream is started
@GST_EVENT_QOS: a quality of service event
@GST_EVENT_SEEK: a seek event.
@GST_EVENT_SEEK_SEGMENT: a segment seek with start and stop position
@GST_EVENT_SEGMENT_DONE: the event that will be emited when the segment seek has ended
@GST_EVENT_SIZE: a size suggestion for a peer element
@GST_EVENT_RATE: adjust the output rate of an element
@GST_EVENT_FILLER: a dummy event that should be ignored by plugins
@GST_EVENT_TS_OFFSET: an event to set the time offset on buffers
@GST_EVENT_INTERRUPT: 

<!-- ##### MACRO GST_EVENT_TYPE ##### -->
<para>
Get the event type.
</para>

@event: The event to query.


<!-- ##### MACRO GST_EVENT_SRC ##### -->
<para>
The source object that generated this event
</para>

@event: The event to query


<!-- ##### MACRO GST_EVENT_TIMESTAMP ##### -->
<para>
Get the timestamp of the event.
</para>

@event: The event to query.


<!-- ##### ENUM GstEventFlag ##### -->
<para>
Event flags are used when querying for supported events
</para>

@GST_EVENT_FLAG_NONE: no value
@GST_RATE_FLAG_NEGATIVE: indicates negative rates are supported

<!-- ##### ENUM GstSeekType ##### -->
<para>
The different types of seek events.
</para>

@GST_SEEK_METHOD_CUR: Seek to an relative position
@GST_SEEK_METHOD_SET: Seek to an absolute position
@GST_SEEK_METHOD_END: Seek relative to the end of the stream
@GST_SEEK_FLAG_FLUSH: Flush any pending data while seeking
@GST_SEEK_FLAG_ACCURATE: Seek as accuratly as possible
@GST_SEEK_FLAG_KEY_UNIT: Seek to a nearby key unit
@GST_SEEK_FLAG_SEGMENT_LOOP: Loop between start and stop in a segmented seek

<!-- ##### ENUM GstSeekAccuracy ##### -->
<para>
The seekaccuracy gives more information of how the seek was performed,
if the seek was accurate or fuzzy.
</para>

@GST_SEEK_CERTAIN: The seek was exact
@GST_SEEK_FUZZY: The seek was fuzzy, exact position can not be guaranteed

<!-- ##### MACRO GST_EVENT_SEEK_TYPE ##### -->
<para>
Get the seektype of the GST_EVENT_SEEK.
</para>

@event: The event to query.


<!-- ##### MACRO GST_EVENT_SEEK_FORMAT ##### -->
<para>
The format of the seek value
</para>

@event: The event operate on


<!-- ##### MACRO GST_EVENT_SEEK_METHOD ##### -->
<para>
The seek method to use as one of #GstSeekType
</para>

@event: The event operate on


<!-- ##### MACRO GST_EVENT_SEEK_FLAGS ##### -->
<para>
The optional seek flags
</para>

@event: The event operate on


<!-- ##### MACRO GST_EVENT_SEEK_OFFSET ##### -->
<para>
Get the offset of the seek event.
</para>

@event: The event to query.


<!-- ##### MACRO GST_EVENT_SEEK_ACCURACY ##### -->
<para>
Indicates how accurate the event was performed.
</para>

@event: The event to query


<!-- ##### MACRO GST_SEEK_FLAGS_MASK ##### -->
<para>
Mask for the flags in the GstSeekType
</para>



<!-- ##### MACRO GST_SEEK_FLAGS_SHIFT ##### -->
<para>
Shift for the flags in the GstSeekType
</para>



<!-- ##### MACRO GST_SEEK_FORMAT_MASK ##### -->
<para>
Mask for the format in the GstSeekType
</para>



<!-- ##### MACRO GST_SEEK_FORMAT_SHIFT ##### -->
<para>
Shift for the format in the GstSeekType
</para>



<!-- ##### MACRO GST_SEEK_METHOD_MASK ##### -->
<para>
Mask for the method in the GstSeekType
</para>



<!-- ##### MACRO GST_SEEK_METHOD_SHIFT ##### -->
<para>
Shift for the method in the GstSeekType
</para>



<!-- ##### MACRO GST_EVENT_DISCONT_NEW_MEDIA ##### -->
<para>
Flag that indicates the discont event was because of a new media
type.
</para>

@event: The event to operate on


<!-- ##### MACRO GST_EVENT_DISCONT_OFFSET ##### -->
<para>
The offset of the discont event. A discont evetn can hold up to 8 different
format/value pairs.
</para>

@event: The event to query
@i: The offset/value pair.


<!-- ##### MACRO GST_EVENT_DISCONT_OFFSET_LEN ##### -->
<para>
Get the number of offset/value pairs this event has.
</para>

@event: The event to query.


<!-- ##### MACRO GST_EVENT_RATE_VALUE ##### -->
<para>
Get access to the rate vale field
</para>

@event: The event to query


<!-- ##### MACRO GST_EVENT_SEEK_ENDOFFSET ##### -->
<para>
The event stop position for a segment seek
</para>

@event: The event to query


<!-- ##### MACRO GST_EVENT_SIZE_FORMAT ##### -->
<para>
The format of the size event.
</para>

@event: The event to query


<!-- ##### MACRO GST_EVENT_SIZE_VALUE ##### -->
<para>
The value of the size event
</para>

@event: The event to query


<!-- ##### STRUCT GstEvent ##### -->
<para>
The event structure
</para>

@data: 
@type: 
@timestamp: 
@src: 

<!-- ##### FUNCTION gst_event_new ##### -->
<para>

</para>

@type: 
@Returns: 


<!-- ##### MACRO gst_event_copy ##### -->
<para>
Copy the event using the event specific copy function
</para>

@ev: The event to copy
@Returns: A new event that is a copy of the given input event


<!-- ##### MACRO gst_event_ref ##### -->
<para>
Increase the refcount of this event
</para>

@ev: The event to refcount


<!-- ##### MACRO gst_event_ref_by_count ##### -->
<para>
Increase the refcount of the event with the given value
</para>

@ev: The event to refcount
@c: The value to add to the refcount


<!-- ##### MACRO gst_event_unref ##### -->
<para>
Decrease the refcount of an event, freeing it if the refcount reaches 0
</para>

@ev: The event to unref


<!-- ##### FUNCTION gst_event_new_seek ##### -->
<para>

</para>

@type: 
@offset: 
@Returns: 


<!-- ##### FUNCTION gst_event_new_segment_seek ##### -->
<para>

</para>

@type: 
@start: 
@stop: 
@Returns: 


<!-- ##### FUNCTION gst_event_new_size ##### -->
<para>

</para>

@format: 
@value: 
@Returns: 


<!-- ##### FUNCTION gst_event_new_discontinuous ##### -->
<para>

</para>

@new_media: 
@format1: 
@Varargs: 
@Returns: 


<!-- ##### FUNCTION gst_event_discont_get_value ##### -->
<para>

</para>

@event: 
@format: 
@value: 
@Returns: 


<!-- ##### MACRO gst_event_new_filler ##### -->
<para>
Create a new dummy event that should be ignored
</para>



<!-- ##### MACRO gst_event_new_flush ##### -->
<para>
Create a new flush event.
</para>



<!-- ##### FUNCTION gst_event_print_stats ##### -->
<para>

</para>



<!-- ##### MACRO GST_EVENT_MASK_FUNCTION ##### -->
<para>
A convenience macro to create event mask functions
</para>

@type: The type of the first argument of the function
@functionname: the name of the function
@...: event masks, the last element is marked with 0


