Initialize Tizen 2.3
[framework/multimedia/gstreamer0.10.git] / mobile / docs / gst / html / gstreamer-GstEvent.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GstEvent</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GStreamer 0.10 Core Reference Manual">
8 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
9 <link rel="prev" href="gstreamer-GstGError.html" title="GstGError">
10 <link rel="next" href="gstreamer-GstFilter.html" title="GstFilter">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gstreamer-GstGError.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer 0.10 Core Reference Manual</th>
21 <td><a accesskey="n" href="gstreamer-GstFilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gstreamer-GstEvent.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gstreamer-GstEvent.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gstreamer-GstEvent"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gstreamer-GstEvent.top_of_page"></a>GstEvent</span></h2>
34 <p>GstEvent — Structure describing events that are passed up and down
35                     a pipeline</p>
36 </td>
37 <td valign="top" align="right"></td>
38 </tr></table></div>
39 <div class="refsynopsisdiv">
40 <a name="gstreamer-GstEvent.synopsis"></a><h2>Synopsis</h2>
41 <pre class="synopsis">
42 #include &lt;gst/gst.h&gt;
43
44 struct              <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent">GstEvent</a>;
45 enum                <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags">GstEventTypeFlags</a>;
46 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS" title="GST_EVENT_TYPE_BOTH">GST_EVENT_TYPE_BOTH</a>
47 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS" title="GST_EVENT_MAKE_TYPE()">GST_EVENT_MAKE_TYPE</a>                 (num,
48                                                          flags)
49 enum                <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType">GstEventType</a>;
50 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TRACE-NAME:CAPS" title="GST_EVENT_TRACE_NAME">GST_EVENT_TRACE_NAME</a>
51 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS" title="GST_EVENT_TYPE()">GST_EVENT_TYPE</a>                      (event)
52 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-NAME:CAPS" title="GST_EVENT_TYPE_NAME()">GST_EVENT_TYPE_NAME</a>                 (event)
53 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TIMESTAMP:CAPS" title="GST_EVENT_TIMESTAMP()">GST_EVENT_TIMESTAMP</a>                 (event)
54 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-SRC:CAPS" title="GST_EVENT_SRC()">GST_EVENT_SRC</a>                       (event)
55 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-IS-UPSTREAM:CAPS" title="GST_EVENT_IS_UPSTREAM()">GST_EVENT_IS_UPSTREAM</a>               (ev)
56 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-IS-DOWNSTREAM:CAPS" title="GST_EVENT_IS_DOWNSTREAM()">GST_EVENT_IS_DOWNSTREAM</a>             (ev)
57 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-IS-SERIALIZED:CAPS" title="GST_EVENT_IS_SERIALIZED()">GST_EVENT_IS_SERIALIZED</a>             (ev)
58 <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="returnvalue">GstEventTypeFlags</span></a>   <a class="link" href="gstreamer-GstEvent.html#gst-event-type-get-flags" title="gst_event_type_get_flags ()">gst_event_type_get_flags</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);
59 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstEvent.html#gst-event-type-get-name" title="gst_event_type_get_name ()">gst_event_type_get_name</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);
60 <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstEvent.html#gst-event-type-to-quark" title="gst_event_type_to_quark ()">gst_event_type_to_quark</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);
61 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()">gst_event_ref</a>                       (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
62 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-unref" title="gst_event_unref ()">gst_event_unref</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
63 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace ()">gst_event_replace</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
64                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);
65 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-copy" title="gst_event_copy ()">gst_event_copy</a>                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
66 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-custom" title="gst_event_new_custom ()">gst_event_new_custom</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>,
67                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
68 const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-get-structure" title="gst_event_get_structure ()">gst_event_get_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
69 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-has-name" title="gst_event_has_name ()">gst_event_has_name</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
70                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
71 <span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()">gst_event_get_seqnum</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
72 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-set-seqnum" title="gst_event_set_seqnum ()">gst_event_set_seqnum</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
73                                                          <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);
74 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-flush-start" title="gst_event_new_flush_start ()">gst_event_new_flush_start</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
75 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-flush-stop" title="gst_event_new_flush_stop ()">gst_event_new_flush_stop</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
76 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-eos" title="gst_event_new_eos ()">gst_event_new_eos</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
77 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-new-segment" title="gst_event_new_new_segment ()">gst_event_new_new_segment</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> update</code></em>,
78                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
79                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
80                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
81                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
82                                                          <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
83 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-new-segment-full" title="gst_event_new_new_segment_full ()">gst_event_new_new_segment_full</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> update</code></em>,
84                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
85                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> applied_rate</code></em>,
86                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
87                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
88                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
89                                                          <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
90 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-new-segment" title="gst_event_parse_new_segment ()">gst_event_parse_new_segment</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
91                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>,
92                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
93                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
94                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
95                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
96                                                          <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);
97 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-new-segment-full" title="gst_event_parse_new_segment_full ()">gst_event_parse_new_segment_full</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
98                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>,
99                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
100                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *applied_rate</code></em>,
101                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
102                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
103                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
104                                                          <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);
105 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
106 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
107                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
108 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
109                                                          <em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
110                                                          <em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
111                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> async</code></em>);
112 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-buffer-size" title="gst_event_parse_buffer_size ()">gst_event_parse_buffer_size</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
113                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
114                                                          <em class="parameter"><code><span class="type">gint64</span> *minsize</code></em>,
115                                                          <em class="parameter"><code><span class="type">gint64</span> *maxsize</code></em>,
116                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *async</code></em>);
117 enum                <a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType">GstQOSType</a>;
118 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()">gst_event_new_qos</a>                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
119                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
120                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
121 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos-full" title="gst_event_new_qos_full ()">gst_event_new_qos_full</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> type</code></em>,
122                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
123                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
124                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
125 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-qos" title="gst_event_parse_qos ()">gst_event_parse_qos</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
126                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
127                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *diff</code></em>,
128                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);
129 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-qos-full" title="gst_event_parse_qos_full ()">gst_event_parse_qos_full</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
130                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> *type</code></em>,
131                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
132                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *diff</code></em>,
133                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);
134 enum                <a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType">GstSeekType</a>;
135 enum                <a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags">GstSeekFlags</a>;
136 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()">gst_event_new_seek</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
137                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
138                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
139                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
140                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
141                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
142                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
143 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-seek" title="gst_event_parse_seek ()">gst_event_parse_seek</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
144                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
145                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
146                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> *flags</code></em>,
147                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *start_type</code></em>,
148                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
149                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *stop_type</code></em>,
150                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);
151 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-navigation" title="gst_event_new_navigation ()">gst_event_new_navigation</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
152 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-latency" title="gst_event_new_latency ()">gst_event_new_latency</a>               (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> latency</code></em>);
153 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-latency" title="gst_event_parse_latency ()">gst_event_parse_latency</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
154                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *latency</code></em>);
155 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-step" title="gst_event_new_step ()">gst_event_new_step</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
156                                                          <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
157                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
158                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
159                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);
160 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-step" title="gst_event_parse_step ()">gst_event_parse_step</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
161                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
162                                                          <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
163                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
164                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
165                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);
166 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
167 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-sink-message" title="gst_event_parse_sink_message ()">gst_event_parse_sink_message</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
168                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **msg</code></em>);
169 </pre>
170 </div>
171 <div class="refsect1">
172 <a name="gstreamer-GstEvent.description"></a><h2>Description</h2>
173 <p>
174 The event class provides factory methods to construct events for sending
175 and functions to query (parse) received events.
176 </p>
177 <p>
178 Events are usually created with gst_event_new_*() which takes event-type
179 specific parameters as arguments.
180 To send an event application will usually use <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a> and
181 elements will use <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()"><code class="function">gst_pad_send_event()</code></a> or <a class="link" href="GstPad.html#gst-pad-push-event" title="gst_pad_push_event ()"><code class="function">gst_pad_push_event()</code></a>.
182 The event should be unreffed with <a class="link" href="gstreamer-GstEvent.html#gst-event-unref" title="gst_event_unref ()"><code class="function">gst_event_unref()</code></a> if it has not been sent.
183 </p>
184 <p>
185 Events that have been received can be parsed with their respective 
186 gst_event_parse_*() functions. It is valid to pass <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for unwanted details.
187 </p>
188 <p>
189 Events are passed between elements in parallel to the data stream. Some events
190 are serialized with buffers, others are not. Some events only travel downstream,
191 others only upstream. Some events can travel both upstream and downstream. 
192 </p>
193 <p>
194 The events are used to signal special conditions in the datastream such as
195 EOS (end of stream) or the start of a new stream-segment.
196 Events are also used to flush the pipeline of any pending data.
197 </p>
198 <p>
199 Most of the event API is used inside plugins. Applications usually only 
200 construct and use seek events. 
201 To do that <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> is used to create a seek event. It takes
202 the needed parameters to specify seeking time and mode.
203 </p>
204 <div class="example">
205 <a name="idp19246192"></a><p class="title"><b>Example 11. performing a seek on a pipeline</b></p>
206 <div class="example-contents">
207   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
208     <tbody>
209       <tr>
210         <td class="listing_lines" align="right"><pre>1
211 2
212 3
213 4
214 5
215 6
216 7
217 8
218 9
219 10
220 11
221 12
222 13
223 14
224 15</pre></td>
225         <td class="listing_code"><pre class="programlisting">GstEvent <span class="gtkdoc opt">*</span>event<span class="gtkdoc opt">;</span>
226 gboolean result<span class="gtkdoc opt">;</span>
227 <span class="gtkdoc opt">...</span>
228 <span class="gtkdoc slc">// construct a seek event to play the media from second 2 to 5, flush</span>
229 <span class="gtkdoc slc">// the pipeline to decrease latency.</span>
230 event <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#gst-event-new-seek">gst_event_new_seek</a></span> <span class="gtkdoc opt">(</span><span class="number">1.0</span><span class="gtkdoc opt">,</span> 
231    GST_FORMAT_TIME<span class="gtkdoc opt">,</span> 
232    GST_SEEK_FLAG_FLUSH<span class="gtkdoc opt">,</span>
233    GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">2</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">,</span>
234    GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">5</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
235 <span class="gtkdoc opt">...</span>
236 result <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-send-event">gst_element_send_event</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> event<span class="gtkdoc opt">);</span>
237 <span class="keyword">if</span> <span class="gtkdoc opt">(!</span>result<span class="gtkdoc opt">)</span>
238   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;seek failed&quot;</span><span class="gtkdoc opt">);</span>
239 <span class="gtkdoc opt">...</span></pre></td>
240       </tr>
241     </tbody>
242   </table>
243 </div>
244
245 </div>
246 <p><br class="example-break">
247 </p>
248 <p>
249 Last reviewed on 2006-09-6 (0.10.10)
250 </p>
251 </div>
252 <div class="refsect1">
253 <a name="gstreamer-GstEvent.details"></a><h2>Details</h2>
254 <div class="refsect2">
255 <a name="GstEvent"></a><h3>struct GstEvent</h3>
256 <pre class="programlisting">struct GstEvent {
257   GstMiniObject mini_object;
258
259   GstEventType  type;
260   guint64       timestamp;
261   GstObject     *src;
262
263   GstStructure  *structure;
264 };
265 </pre>
266 <p>
267 A <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.
268 </p>
269 <div class="variablelist"><table border="0">
270 <col align="left" valign="top">
271 <tbody>
272 <tr>
273 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstEvent.mini-object"></a>mini_object</code></em>;</span></p></td>
274 <td>the parent structure</td>
275 </tr>
276 <tr>
277 <td><p><span class="term"><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> <em class="structfield"><code><a name="GstEvent.type"></a>type</code></em>;</span></p></td>
278 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event</td>
279 </tr>
280 <tr>
281 <td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstEvent.timestamp"></a>timestamp</code></em>;</span></p></td>
282 <td>the timestamp of the event</td>
283 </tr>
284 <tr>
285 <td><p><span class="term"><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *<em class="structfield"><code><a name="GstEvent.src"></a>src</code></em>;</span></p></td>
286 <td>the src of the event</td>
287 </tr>
288 <tr>
289 <td><p><span class="term"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstEvent.structure"></a>structure</code></em>;</span></p></td>
290 <td>the <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> containing the event info.</td>
291 </tr>
292 </tbody>
293 </table></div>
294 </div>
295 <hr>
296 <div class="refsect2">
297 <a name="GstEventTypeFlags"></a><h3>enum GstEventTypeFlags</h3>
298 <pre class="programlisting">typedef enum {
299   GST_EVENT_TYPE_UPSTREAM       = 1 &lt;&lt; 0,
300   GST_EVENT_TYPE_DOWNSTREAM     = 1 &lt;&lt; 1,
301   GST_EVENT_TYPE_SERIALIZED     = 1 &lt;&lt; 2
302 } GstEventTypeFlags;
303 </pre>
304 <p>
305 <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a> indicate the aspects of the different <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a>
306 values. You can get the type flags of a <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> with the
307 <a class="link" href="gstreamer-GstEvent.html#gst-event-type-get-flags" title="gst_event_type_get_flags ()"><code class="function">gst_event_type_get_flags()</code></a> function.
308 </p>
309 <div class="variablelist"><table border="0">
310 <col align="left" valign="top">
311 <tbody>
312 <tr>
313 <td><p><a name="GST-EVENT-TYPE-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_UPSTREAM</code></span></p></td>
314 <td>Set if the event can travel upstream.
315 </td>
316 </tr>
317 <tr>
318 <td><p><a name="GST-EVENT-TYPE-DOWNSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_DOWNSTREAM</code></span></p></td>
319 <td>Set if the event can travel downstream.
320 </td>
321 </tr>
322 <tr>
323 <td><p><a name="GST-EVENT-TYPE-SERIALIZED:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_SERIALIZED</code></span></p></td>
324 <td>Set if the event should be serialized with data
325                             flow.
326 </td>
327 </tr>
328 </tbody>
329 </table></div>
330 </div>
331 <hr>
332 <div class="refsect2">
333 <a name="GST-EVENT-TYPE-BOTH:CAPS"></a><h3>GST_EVENT_TYPE_BOTH</h3>
334 <pre class="programlisting">#define             GST_EVENT_TYPE_BOTH</pre>
335 <p>
336 The same thing as <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-UPSTREAM:CAPS"><span class="type">GST_EVENT_TYPE_UPSTREAM</span></a> | <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-DOWNSTREAM:CAPS"><span class="type">GST_EVENT_TYPE_DOWNSTREAM</span></a>.
337 </p>
338 </div>
339 <hr>
340 <div class="refsect2">
341 <a name="GST-EVENT-MAKE-TYPE:CAPS"></a><h3>GST_EVENT_MAKE_TYPE()</h3>
342 <pre class="programlisting">#define             GST_EVENT_MAKE_TYPE(num,flags)</pre>
343 <p>
344 when making custom event types, use this macro with the num and
345 the given flags
346 </p>
347 <div class="variablelist"><table border="0">
348 <col align="left" valign="top">
349 <tbody>
350 <tr>
351 <td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
352 <td>the event number to create</td>
353 </tr>
354 <tr>
355 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
356 <td>the event flags</td>
357 </tr>
358 </tbody>
359 </table></div>
360 </div>
361 <hr>
362 <div class="refsect2">
363 <a name="GstEventType"></a><h3>enum GstEventType</h3>
364 <pre class="programlisting">typedef enum {
365   GST_EVENT_UNKNOWN               = GST_EVENT_MAKE_TYPE (0, 0),
366   /* bidirectional events */
367   GST_EVENT_FLUSH_START           = GST_EVENT_MAKE_TYPE (1, FLAG(BOTH)),
368   GST_EVENT_FLUSH_STOP            = GST_EVENT_MAKE_TYPE (2, FLAG(BOTH) | FLAG(SERIALIZED)),
369   /* downstream serialized events */
370   GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (5, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
371   GST_EVENT_NEWSEGMENT            = GST_EVENT_MAKE_TYPE (6, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
372   GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (7, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
373   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (8, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
374   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (9, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
375   /* upstream events */
376   GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (15, FLAG(UPSTREAM)),
377   GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (16, FLAG(UPSTREAM)),
378   GST_EVENT_NAVIGATION            = GST_EVENT_MAKE_TYPE (17, FLAG(UPSTREAM)),
379   GST_EVENT_LATENCY               = GST_EVENT_MAKE_TYPE (18, FLAG(UPSTREAM)),
380   GST_EVENT_STEP                  = GST_EVENT_MAKE_TYPE (19, FLAG(UPSTREAM)),
381
382   /* custom events start here */
383   GST_EVENT_CUSTOM_UPSTREAM       = GST_EVENT_MAKE_TYPE (32, FLAG(UPSTREAM)),
384   GST_EVENT_CUSTOM_DOWNSTREAM     = GST_EVENT_MAKE_TYPE (32, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
385   GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (32, FLAG(DOWNSTREAM)),
386   GST_EVENT_CUSTOM_BOTH           = GST_EVENT_MAKE_TYPE (32, FLAG(BOTH) | FLAG(SERIALIZED)),
387   GST_EVENT_CUSTOM_BOTH_OOB       = GST_EVENT_MAKE_TYPE (32, FLAG(BOTH))
388 } GstEventType;
389 </pre>
390 <p>
391 <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> lists the standard event types that can be sent in a pipeline.
392 </p>
393 <p>
394 The custom event types can be used for private messages between elements
395 that can't be expressed using normal
396 GStreamer buffer passing semantics. Custom events carry an arbitrary
397 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>.
398 Specific custom events are distinguished by the name of the structure.
399 </p>
400 <div class="variablelist"><table border="0">
401 <col align="left" valign="top">
402 <tbody>
403 <tr>
404 <td><p><a name="GST-EVENT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_EVENT_UNKNOWN</code></span></p></td>
405 <td>unknown event.
406 </td>
407 </tr>
408 <tr>
409 <td><p><a name="GST-EVENT-FLUSH-START:CAPS"></a><span class="term"><code class="literal">GST_EVENT_FLUSH_START</code></span></p></td>
410 <td>Start a flush operation. This event clears all data
411                 from the pipeline and unblock all streaming threads.
412 </td>
413 </tr>
414 <tr>
415 <td><p><a name="GST-EVENT-FLUSH-STOP:CAPS"></a><span class="term"><code class="literal">GST_EVENT_FLUSH_STOP</code></span></p></td>
416 <td>Stop a flush operation. This event resets the
417                 running-time of the pipeline.
418 </td>
419 </tr>
420 <tr>
421 <td><p><a name="GST-EVENT-EOS:CAPS"></a><span class="term"><code class="literal">GST_EVENT_EOS</code></span></p></td>
422 <td>End-Of-Stream. No more data is to be expected to follow
423                 without a NEWSEGMENT event.
424 </td>
425 </tr>
426 <tr>
427 <td><p><a name="GST-EVENT-NEWSEGMENT:CAPS"></a><span class="term"><code class="literal">GST_EVENT_NEWSEGMENT</code></span></p></td>
428 <td>A new media segment follows in the dataflow. The
429                 segment events contains information for clipping buffers and
430                 converting buffer timestamps to running-time and
431                 stream-time.
432 </td>
433 </tr>
434 <tr>
435 <td><p><a name="GST-EVENT-TAG:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TAG</code></span></p></td>
436 <td>A new set of metadata tags has been found in the stream.
437 </td>
438 </tr>
439 <tr>
440 <td><p><a name="GST-EVENT-BUFFERSIZE:CAPS"></a><span class="term"><code class="literal">GST_EVENT_BUFFERSIZE</code></span></p></td>
441 <td>Notification of buffering requirements. Currently not
442                 used yet.
443 </td>
444 </tr>
445 <tr>
446 <td><p><a name="GST-EVENT-SINK-MESSAGE:CAPS"></a><span class="term"><code class="literal">GST_EVENT_SINK_MESSAGE</code></span></p></td>
447 <td>An event that sinks turn into a message. Used to
448                          send messages that should be emitted in sync with
449                          rendering.
450                          Since: 0.10.26
451 </td>
452 </tr>
453 <tr>
454 <td><p><a name="GST-EVENT-QOS:CAPS"></a><span class="term"><code class="literal">GST_EVENT_QOS</code></span></p></td>
455 <td>A quality message. Used to indicate to upstream elements
456                 that the downstream elements should adjust their processing
457                 rate.
458 </td>
459 </tr>
460 <tr>
461 <td><p><a name="GST-EVENT-SEEK:CAPS"></a><span class="term"><code class="literal">GST_EVENT_SEEK</code></span></p></td>
462 <td>A request for a new playback position and rate.
463 </td>
464 </tr>
465 <tr>
466 <td><p><a name="GST-EVENT-NAVIGATION:CAPS"></a><span class="term"><code class="literal">GST_EVENT_NAVIGATION</code></span></p></td>
467 <td>Navigation events are usually used for communicating
468                        user requests, such as mouse or keyboard movements,
469                        to upstream elements.
470 </td>
471 </tr>
472 <tr>
473 <td><p><a name="GST-EVENT-LATENCY:CAPS"></a><span class="term"><code class="literal">GST_EVENT_LATENCY</code></span></p></td>
474 <td>Notification of new latency adjustment. Sinks will use
475                     the latency information to adjust their synchronisation.
476                     Since: 0.10.12
477 </td>
478 </tr>
479 <tr>
480 <td><p><a name="GST-EVENT-STEP:CAPS"></a><span class="term"><code class="literal">GST_EVENT_STEP</code></span></p></td>
481 <td>A request for stepping through the media. Sinks will usually
482                  execute the step operation. Since: 0.10.24
483 </td>
484 </tr>
485 <tr>
486 <td><p><a name="GST-EVENT-CUSTOM-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_UPSTREAM</code></span></p></td>
487 <td>Upstream custom event
488 </td>
489 </tr>
490 <tr>
491 <td><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_DOWNSTREAM</code></span></p></td>
492 <td>Downstream custom event that travels in the
493                        data flow.
494 </td>
495 </tr>
496 <tr>
497 <td><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_DOWNSTREAM_OOB</code></span></p></td>
498 <td>Custom out-of-band downstream event.
499 </td>
500 </tr>
501 <tr>
502 <td><p><a name="GST-EVENT-CUSTOM-BOTH:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_BOTH</code></span></p></td>
503 <td>Custom upstream or downstream event.
504                         In-band when travelling downstream.
505 </td>
506 </tr>
507 <tr>
508 <td><p><a name="GST-EVENT-CUSTOM-BOTH-OOB:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_BOTH_OOB</code></span></p></td>
509 <td>Custom upstream or downstream out-of-band event.
510 </td>
511 </tr>
512 </tbody>
513 </table></div>
514 </div>
515 <hr>
516 <div class="refsect2">
517 <a name="GST-EVENT-TRACE-NAME:CAPS"></a><h3>GST_EVENT_TRACE_NAME</h3>
518 <pre class="programlisting">#define GST_EVENT_TRACE_NAME    "GstEvent"
519 </pre>
520 <p>
521 The name used for memory allocation tracing
522 </p>
523 </div>
524 <hr>
525 <div class="refsect2">
526 <a name="GST-EVENT-TYPE:CAPS"></a><h3>GST_EVENT_TYPE()</h3>
527 <pre class="programlisting">#define GST_EVENT_TYPE(event)           (GST_EVENT_CAST(event)-&gt;type)
528 </pre>
529 <p>
530 Get the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.
531 </p>
532 <div class="variablelist"><table border="0">
533 <col align="left" valign="top">
534 <tbody><tr>
535 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
536 <td>the event to query</td>
537 </tr></tbody>
538 </table></div>
539 </div>
540 <hr>
541 <div class="refsect2">
542 <a name="GST-EVENT-TYPE-NAME:CAPS"></a><h3>GST_EVENT_TYPE_NAME()</h3>
543 <pre class="programlisting">#define GST_EVENT_TYPE_NAME(event)      (gst_event_type_get_name(GST_EVENT_TYPE(event)))
544 </pre>
545 <p>
546 Get a constant string representation of the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.
547 </p>
548 <div class="variablelist"><table border="0">
549 <col align="left" valign="top">
550 <tbody><tr>
551 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
552 <td>the event to query</td>
553 </tr></tbody>
554 </table></div>
555 </div>
556 <hr>
557 <div class="refsect2">
558 <a name="GST-EVENT-TIMESTAMP:CAPS"></a><h3>GST_EVENT_TIMESTAMP()</h3>
559 <pre class="programlisting">#define GST_EVENT_TIMESTAMP(event)      (GST_EVENT_CAST(event)-&gt;timestamp)
560 </pre>
561 <p>
562 Get the <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp of the event. This is the time when the event
563 was created.
564 </p>
565 <div class="variablelist"><table border="0">
566 <col align="left" valign="top">
567 <tbody><tr>
568 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
569 <td>the event to query</td>
570 </tr></tbody>
571 </table></div>
572 </div>
573 <hr>
574 <div class="refsect2">
575 <a name="GST-EVENT-SRC:CAPS"></a><h3>GST_EVENT_SRC()</h3>
576 <pre class="programlisting">#define GST_EVENT_SRC(event)            (GST_EVENT_CAST(event)-&gt;src)
577 </pre>
578 <p>
579 The source <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> that generated this event.
580 </p>
581 <div class="variablelist"><table border="0">
582 <col align="left" valign="top">
583 <tbody><tr>
584 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
585 <td>the event to query</td>
586 </tr></tbody>
587 </table></div>
588 </div>
589 <hr>
590 <div class="refsect2">
591 <a name="GST-EVENT-IS-UPSTREAM:CAPS"></a><h3>GST_EVENT_IS_UPSTREAM()</h3>
592 <pre class="programlisting">#define GST_EVENT_IS_UPSTREAM(ev)       !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_UPSTREAM)
593 </pre>
594 <p>
595 Check if an event can travel upstream.
596 </p>
597 <div class="variablelist"><table border="0">
598 <col align="left" valign="top">
599 <tbody><tr>
600 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
601 <td>the event to query</td>
602 </tr></tbody>
603 </table></div>
604 </div>
605 <hr>
606 <div class="refsect2">
607 <a name="GST-EVENT-IS-DOWNSTREAM:CAPS"></a><h3>GST_EVENT_IS_DOWNSTREAM()</h3>
608 <pre class="programlisting">#define GST_EVENT_IS_DOWNSTREAM(ev)     !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_DOWNSTREAM)
609 </pre>
610 <p>
611 Check if an event can travel downstream.
612 </p>
613 <div class="variablelist"><table border="0">
614 <col align="left" valign="top">
615 <tbody><tr>
616 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
617 <td>the event to query</td>
618 </tr></tbody>
619 </table></div>
620 </div>
621 <hr>
622 <div class="refsect2">
623 <a name="GST-EVENT-IS-SERIALIZED:CAPS"></a><h3>GST_EVENT_IS_SERIALIZED()</h3>
624 <pre class="programlisting">#define GST_EVENT_IS_SERIALIZED(ev)     !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_SERIALIZED)
625 </pre>
626 <p>
627 Check if an event is serialized with the data stream.
628 </p>
629 <div class="variablelist"><table border="0">
630 <col align="left" valign="top">
631 <tbody><tr>
632 <td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
633 <td>the event to query</td>
634 </tr></tbody>
635 </table></div>
636 </div>
637 <hr>
638 <div class="refsect2">
639 <a name="gst-event-type-get-flags"></a><h3>gst_event_type_get_flags ()</h3>
640 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="returnvalue">GstEventTypeFlags</span></a>   gst_event_type_get_flags            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
641 <p>
642 Gets the <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>.
643 </p>
644 <div class="variablelist"><table border="0">
645 <col align="left" valign="top">
646 <tbody>
647 <tr>
648 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
649 <td>a <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a>
650 </td>
651 </tr>
652 <tr>
653 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
654 <td>a <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a>.</td>
655 </tr>
656 </tbody>
657 </table></div>
658 </div>
659 <hr>
660 <div class="refsect2">
661 <a name="gst-event-type-get-name"></a><h3>gst_event_type_get_name ()</h3>
662 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_event_type_get_name             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
663 <p>
664 Get a printable name for the given event type. Do not modify or free.
665 </p>
666 <div class="variablelist"><table border="0">
667 <col align="left" valign="top">
668 <tbody>
669 <tr>
670 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
671 <td>the event type</td>
672 </tr>
673 <tr>
674 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
675 <td>a reference to the static name of the event.</td>
676 </tr>
677 </tbody>
678 </table></div>
679 </div>
680 <hr>
681 <div class="refsect2">
682 <a name="gst-event-type-to-quark"></a><h3>gst_event_type_to_quark ()</h3>
683 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_event_type_to_quark             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
684 <p>
685 Get the unique quark for the given event type.
686 </p>
687 <div class="variablelist"><table border="0">
688 <col align="left" valign="top">
689 <tbody>
690 <tr>
691 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
692 <td>the event type</td>
693 </tr>
694 <tr>
695 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
696 <td>the quark associated with the event type</td>
697 </tr>
698 </tbody>
699 </table></div>
700 </div>
701 <hr>
702 <div class="refsect2">
703 <a name="gst-event-ref"></a><h3>gst_event_ref ()</h3>
704 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_ref                       (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
705 <p>
706 Increase the refcount of this event.
707 </p>
708 <div class="variablelist"><table border="0">
709 <col align="left" valign="top">
710 <tbody>
711 <tr>
712 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
713 <td>The event to refcount</td>
714 </tr>
715 <tr>
716 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
717 <td>
718 <em class="parameter"><code>event</code></em> (for convenience when doing assignments). <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
719 </td>
720 </tr>
721 </tbody>
722 </table></div>
723 </div>
724 <hr>
725 <div class="refsect2">
726 <a name="gst-event-unref"></a><h3>gst_event_unref ()</h3>
727 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_unref                     (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
728 <p>
729 Decrease the refcount of an event, freeing it if the refcount reaches 0.
730 </p>
731 <div class="variablelist"><table border="0">
732 <col align="left" valign="top">
733 <tbody><tr>
734 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
735 <td>the event to refcount. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
736 </td>
737 </tr></tbody>
738 </table></div>
739 </div>
740 <hr>
741 <div class="refsect2">
742 <a name="gst-event-replace"></a><h3>gst_event_replace ()</h3>
743 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_replace                   (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
744                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);</pre>
745 <p>
746 Modifies a pointer to a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to point to a different <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. The
747 modification is done atomically (so this is useful for ensuring thread safety
748 in some cases), and the reference counts are updated appropriately (the old
749 event is unreffed, the new one is reffed).
750 </p>
751 <p>
752 Either <em class="parameter"><code>new_event</code></em> or the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> pointed to by <em class="parameter"><code>old_event</code></em> may be NULL.
753 </p>
754 <div class="variablelist"><table border="0">
755 <col align="left" valign="top">
756 <tbody>
757 <tr>
758 <td><p><span class="term"><em class="parameter"><code>old_event</code></em> :</span></p></td>
759 <td>pointer to a pointer to a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>
760 to be replaced. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
761 </td>
762 </tr>
763 <tr>
764 <td><p><span class="term"><em class="parameter"><code>new_event</code></em> :</span></p></td>
765 <td>pointer to a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> that will
766 replace the event pointed to by <em class="parameter"><code>old_event</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
767 </td>
768 </tr>
769 </tbody>
770 </table></div>
771 <p class="since">Since 0.10.3</p>
772 </div>
773 <hr>
774 <div class="refsect2">
775 <a name="gst-event-copy"></a><h3>gst_event_copy ()</h3>
776 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_copy                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
777 <p>
778 Copy the event using the event specific copy function.
779 </p>
780 <div class="variablelist"><table border="0">
781 <col align="left" valign="top">
782 <tbody>
783 <tr>
784 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
785 <td>The event to copy</td>
786 </tr>
787 <tr>
788 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
789 <td>the new event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
790 </td>
791 </tr>
792 </tbody>
793 </table></div>
794 </div>
795 <hr>
796 <div class="refsect2">
797 <a name="gst-event-new-custom"></a><h3>gst_event_new_custom ()</h3>
798 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_custom                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>,
799                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
800 <p>
801 Create a new custom-typed event. This can be used for anything not
802 handled by other event-specific functions to pass an event to another
803 element.
804 </p>
805 <p>
806 Make sure to allocate an event type with the <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS" title="GST_EVENT_MAKE_TYPE()"><span class="type">GST_EVENT_MAKE_TYPE</span></a> macro,
807 assigning a free number and filling in the correct direction and
808 serialization flags.
809 </p>
810 <p>
811 New custom events can also be created by subclassing the event type if
812 needed.
813 </p>
814 <div class="variablelist"><table border="0">
815 <col align="left" valign="top">
816 <tbody>
817 <tr>
818 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
819 <td>The type of the new event</td>
820 </tr>
821 <tr>
822 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
823 <td>the structure for the event. The event will
824 take ownership of the structure. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
825 </td>
826 </tr>
827 <tr>
828 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
829 <td>the new custom event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
830 </td>
831 </tr>
832 </tbody>
833 </table></div>
834 </div>
835 <hr>
836 <div class="refsect2">
837 <a name="gst-event-get-structure"></a><h3>gst_event_get_structure ()</h3>
838 <pre class="programlisting">const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_event_get_structure            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
839 <p>
840 Access the structure of the event.
841 </p>
842 <div class="variablelist"><table border="0">
843 <col align="left" valign="top">
844 <tbody>
845 <tr>
846 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
847 <td>The <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
848 </tr>
849 <tr>
850 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
851 <td>The structure of the event. The structure is still
852 owned by the event, which means that you should not free it and
853 that the pointer becomes invalid when you free the event.
854 MT safe.</td>
855 </tr>
856 </tbody>
857 </table></div>
858 </div>
859 <hr>
860 <div class="refsect2">
861 <a name="gst-event-has-name"></a><h3>gst_event_has_name ()</h3>
862 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_event_has_name                  (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
863                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
864 <p>
865 Checks if <em class="parameter"><code>event</code></em> has the given <em class="parameter"><code>name</code></em>. This function is usually used to
866 check the name of a custom event.
867 </p>
868 <div class="variablelist"><table border="0">
869 <col align="left" valign="top">
870 <tbody>
871 <tr>
872 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
873 <td>The <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
874 </tr>
875 <tr>
876 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
877 <td>name to check</td>
878 </tr>
879 <tr>
880 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
881 <td>
882 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>name</code></em> matches the name of the event structure.</td>
883 </tr>
884 </tbody>
885 </table></div>
886 <p class="since">Since 0.10.20</p>
887 </div>
888 <hr>
889 <div class="refsect2">
890 <a name="gst-event-get-seqnum"></a><h3>gst_event_get_seqnum ()</h3>
891 <pre class="programlisting"><span class="returnvalue">guint32</span>             gst_event_get_seqnum                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
892 <p>
893 Retrieve the sequence number of a event.
894 </p>
895 <p>
896 Events have ever-incrementing sequence numbers, which may also be set
897 explicitly via <a class="link" href="gstreamer-GstEvent.html#gst-event-set-seqnum" title="gst_event_set_seqnum ()"><code class="function">gst_event_set_seqnum()</code></a>. Sequence numbers are typically used to
898 indicate that a event corresponds to some other set of events or messages,
899 for example an EOS event corresponding to a SEEK event. It is considered good
900 practice to make this correspondence when possible, though it is not
901 required.
902 </p>
903 <p>
904 Note that events and messages share the same sequence number incrementor;
905 two events or messages will never have the same sequence number unless
906 that correspondence was made explicitly.
907 </p>
908 <div class="variablelist"><table border="0">
909 <col align="left" valign="top">
910 <tbody>
911 <tr>
912 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
913 <td>A <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
914 </tr>
915 <tr>
916 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
917 <td>The event's sequence number.
918 MT safe.</td>
919 </tr>
920 </tbody>
921 </table></div>
922 <p class="since">Since 0.10.22</p>
923 </div>
924 <hr>
925 <div class="refsect2">
926 <a name="gst-event-set-seqnum"></a><h3>gst_event_set_seqnum ()</h3>
927 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_set_seqnum                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
928                                                          <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);</pre>
929 <p>
930 Set the sequence number of a event.
931 </p>
932 <p>
933 This function might be called by the creator of a event to indicate that the
934 event relates to other events or messages. See <a class="link" href="gstreamer-GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()"><code class="function">gst_event_get_seqnum()</code></a> for
935 more information.
936 </p>
937 <p>
938 MT safe.
939 </p>
940 <div class="variablelist"><table border="0">
941 <col align="left" valign="top">
942 <tbody>
943 <tr>
944 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
945 <td>A <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
946 </tr>
947 <tr>
948 <td><p><span class="term"><em class="parameter"><code>seqnum</code></em> :</span></p></td>
949 <td>A sequence number.</td>
950 </tr>
951 </tbody>
952 </table></div>
953 <p class="since">Since 0.10.22</p>
954 </div>
955 <hr>
956 <div class="refsect2">
957 <a name="gst-event-new-flush-start"></a><h3>gst_event_new_flush_start ()</h3>
958 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_flush_start           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
959 <p>
960 Allocate a new flush start event. The flush start event can be sent
961 upstream and downstream and travels out-of-bounds with the dataflow.
962 </p>
963 <p>
964 It marks pads as being flushing and will make them return
965 <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a> when used for data flow with <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a>,
966 <a class="link" href="GstPad.html#gst-pad-chain" title="gst_pad_chain ()"><code class="function">gst_pad_chain()</code></a>, <a class="link" href="GstPad.html#gst-pad-alloc-buffer" title="gst_pad_alloc_buffer ()"><code class="function">gst_pad_alloc_buffer()</code></a>, <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()"><code class="function">gst_pad_get_range()</code></a> and
967 <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a>. Any event (except a <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS"><span class="type">GST_EVENT_FLUSH_STOP</span></a>) received
968 on a flushing pad will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> immediately.
969 </p>
970 <p>
971 Elements should unlock any blocking functions and exit their streaming
972 functions as fast as possible when this event is received.
973 </p>
974 <p>
975 This event is typically generated after a seek to flush out all queued data
976 in the pipeline so that the new media is played as soon as possible.
977 </p>
978 <div class="variablelist"><table border="0">
979 <col align="left" valign="top">
980 <tbody><tr>
981 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
982 <td>a new flush start event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
983 </td>
984 </tr></tbody>
985 </table></div>
986 </div>
987 <hr>
988 <div class="refsect2">
989 <a name="gst-event-new-flush-stop"></a><h3>gst_event_new_flush_stop ()</h3>
990 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_flush_stop            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
991 <p>
992 Allocate a new flush stop event. The flush stop event can be sent
993 upstream and downstream and travels serialized with the dataflow.
994 It is typically sent after sending a FLUSH_START event to make the
995 pads accept data again.
996 </p>
997 <p>
998 Elements can process this event synchronized with the dataflow since
999 the preceeding FLUSH_START event stopped the dataflow.
1000 </p>
1001 <p>
1002 This event is typically generated to complete a seek and to resume
1003 dataflow.
1004 </p>
1005 <div class="variablelist"><table border="0">
1006 <col align="left" valign="top">
1007 <tbody><tr>
1008 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1009 <td>a new flush stop event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1010 </td>
1011 </tr></tbody>
1012 </table></div>
1013 </div>
1014 <hr>
1015 <div class="refsect2">
1016 <a name="gst-event-new-eos"></a><h3>gst_event_new_eos ()</h3>
1017 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_eos                   (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1018 <p>
1019 Create a new EOS event. The eos event can only travel downstream
1020 synchronized with the buffer flow. Elements that receive the EOS
1021 event on a pad can return <a class="link" href="GstPad.html#GST-FLOW-UNEXPECTED:CAPS"><span class="type">GST_FLOW_UNEXPECTED</span></a> as a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a>
1022 when data after the EOS event arrives.
1023 </p>
1024 <p>
1025 The EOS event will travel down to the sink elements in the pipeline
1026 which will then post the <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS"><span class="type">GST_MESSAGE_EOS</span></a> on the bus after they have
1027 finished playing any buffered data.
1028 </p>
1029 <p>
1030 When all sinks have posted an EOS message, an EOS message is
1031 forwarded to the application.
1032 </p>
1033 <p>
1034 The EOS event itself will not cause any state transitions of the pipeline.
1035 </p>
1036 <div class="variablelist"><table border="0">
1037 <col align="left" valign="top">
1038 <tbody><tr>
1039 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1040 <td>the new EOS event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1041 </td>
1042 </tr></tbody>
1043 </table></div>
1044 </div>
1045 <hr>
1046 <div class="refsect2">
1047 <a name="gst-event-new-new-segment"></a><h3>gst_event_new_new_segment ()</h3>
1048 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_new_segment           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> update</code></em>,
1049                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
1050                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
1051                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
1052                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
1053                                                          <em class="parameter"><code><span class="type">gint64</span> position</code></em>);</pre>
1054 <p>
1055 Allocate a new newsegment event with the given format/values tripplets
1056 </p>
1057 <p>
1058 This method calls <a class="link" href="gstreamer-GstEvent.html#gst-event-new-new-segment-full" title="gst_event_new_new_segment_full ()"><code class="function">gst_event_new_new_segment_full()</code></a> passing a default
1059 value of 1.0 for applied_rate
1060 </p>
1061 <div class="variablelist"><table border="0">
1062 <col align="left" valign="top">
1063 <tbody>
1064 <tr>
1065 <td><p><span class="term"><em class="parameter"><code>update</code></em> :</span></p></td>
1066 <td>is this segment an update to a previous one</td>
1067 </tr>
1068 <tr>
1069 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1070 <td>a new rate for playback</td>
1071 </tr>
1072 <tr>
1073 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1074 <td>The format of the segment values</td>
1075 </tr>
1076 <tr>
1077 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1078 <td>the start value of the segment</td>
1079 </tr>
1080 <tr>
1081 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1082 <td>the stop value of the segment</td>
1083 </tr>
1084 <tr>
1085 <td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
1086 <td>stream position</td>
1087 </tr>
1088 <tr>
1089 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1090 <td>a new newsegment event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1091 </td>
1092 </tr>
1093 </tbody>
1094 </table></div>
1095 </div>
1096 <hr>
1097 <div class="refsect2">
1098 <a name="gst-event-new-new-segment-full"></a><h3>gst_event_new_new_segment_full ()</h3>
1099 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_new_segment_full      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> update</code></em>,
1100                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
1101                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> applied_rate</code></em>,
1102                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
1103                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
1104                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
1105                                                          <em class="parameter"><code><span class="type">gint64</span> position</code></em>);</pre>
1106 <p>
1107 Allocate a new newsegment event with the given format/values triplets.
1108 </p>
1109 <p>
1110 The newsegment event marks the range of buffers to be processed. All
1111 data not within the segment range is not to be processed. This can be
1112 used intelligently by plugins to apply more efficient methods of skipping
1113 unneeded data. The valid range is expressed with the <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em>
1114 values.
1115 </p>
1116 <p>
1117 The position value of the segment is used in conjunction with the start
1118 value to convert the buffer timestamps into the stream time. This is 
1119 usually done in sinks to report the current stream_time. 
1120 <em class="parameter"><code>position</code></em> represents the stream_time of a buffer carrying a timestamp of 
1121 <em class="parameter"><code>start</code></em>. <em class="parameter"><code>position</code></em> cannot be -1.
1122 </p>
1123 <p>
1124 <em class="parameter"><code>start</code></em> cannot be -1, <em class="parameter"><code>stop</code></em> can be -1. If there
1125 is a valid <em class="parameter"><code>stop</code></em> given, it must be greater or equal the <em class="parameter"><code>start</code></em>, including 
1126 when the indicated playback <em class="parameter"><code>rate</code></em> is &lt; 0.
1127 </p>
1128 <p>
1129 The <em class="parameter"><code>applied_rate</code></em> value provides information about any rate adjustment that
1130 has already been made to the timestamps and content on the buffers of the 
1131 stream. (<em class="parameter"><code>rate</code></em> * <em class="parameter"><code>applied_rate</code></em>) should always equal the rate that has been 
1132 requested for playback. For example, if an element has an input segment 
1133 with intended playback <em class="parameter"><code>rate</code></em> of 2.0 and applied_rate of 1.0, it can adjust 
1134 incoming timestamps and buffer content by half and output a newsegment event 
1135 with <em class="parameter"><code>rate</code></em> of 1.0 and <em class="parameter"><code>applied_rate</code></em> of 2.0
1136 </p>
1137 <p>
1138 After a newsegment event, the buffer stream time is calculated with:
1139 </p>
1140 <p>
1141   position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)
1142 </p>
1143 <div class="variablelist"><table border="0">
1144 <col align="left" valign="top">
1145 <tbody>
1146 <tr>
1147 <td><p><span class="term"><em class="parameter"><code>update</code></em> :</span></p></td>
1148 <td>Whether this segment is an update to a previous one</td>
1149 </tr>
1150 <tr>
1151 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1152 <td>A new rate for playback</td>
1153 </tr>
1154 <tr>
1155 <td><p><span class="term"><em class="parameter"><code>applied_rate</code></em> :</span></p></td>
1156 <td>The rate factor which has already been applied</td>
1157 </tr>
1158 <tr>
1159 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1160 <td>The format of the segment values</td>
1161 </tr>
1162 <tr>
1163 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1164 <td>The start value of the segment</td>
1165 </tr>
1166 <tr>
1167 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1168 <td>The stop value of the segment</td>
1169 </tr>
1170 <tr>
1171 <td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
1172 <td>stream position</td>
1173 </tr>
1174 <tr>
1175 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1176 <td>a new newsegment event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1177 </td>
1178 </tr>
1179 </tbody>
1180 </table></div>
1181 <p class="since">Since 0.10.6</p>
1182 </div>
1183 <hr>
1184 <div class="refsect2">
1185 <a name="gst-event-parse-new-segment"></a><h3>gst_event_parse_new_segment ()</h3>
1186 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_new_segment         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1187                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>,
1188                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
1189                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
1190                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
1191                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
1192                                                          <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);</pre>
1193 <p>
1194 Get the update flag, rate, format, start, stop and position in the 
1195 newsegment event. In general, <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-new-segment-full" title="gst_event_parse_new_segment_full ()"><code class="function">gst_event_parse_new_segment_full()</code></a> should
1196 be used instead of this, to also retrieve the applied_rate value of the
1197 segment. See <a class="link" href="gstreamer-GstEvent.html#gst-event-new-new-segment-full" title="gst_event_new_new_segment_full ()"><code class="function">gst_event_new_new_segment_full()</code></a> for a full description 
1198 of the newsegment event.
1199 </p>
1200 <div class="variablelist"><table border="0">
1201 <col align="left" valign="top">
1202 <tbody>
1203 <tr>
1204 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1205 <td>The event to query</td>
1206 </tr>
1207 <tr>
1208 <td><p><span class="term"><em class="parameter"><code>update</code></em> :</span></p></td>
1209 <td>A pointer to the update flag of the segment. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1210 </td>
1211 </tr>
1212 <tr>
1213 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1214 <td>A pointer to the rate of the segment. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1215 </td>
1216 </tr>
1217 <tr>
1218 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1219 <td>A pointer to the format of the newsegment values. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1220 </td>
1221 </tr>
1222 <tr>
1223 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1224 <td>A pointer to store the start value in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1225 </td>
1226 </tr>
1227 <tr>
1228 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1229 <td>A pointer to store the stop value in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1230 </td>
1231 </tr>
1232 <tr>
1233 <td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
1234 <td>A pointer to store the stream time in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1235 </td>
1236 </tr>
1237 </tbody>
1238 </table></div>
1239 </div>
1240 <hr>
1241 <div class="refsect2">
1242 <a name="gst-event-parse-new-segment-full"></a><h3>gst_event_parse_new_segment_full ()</h3>
1243 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_new_segment_full    (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1244                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>,
1245                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
1246                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *applied_rate</code></em>,
1247                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
1248                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
1249                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
1250                                                          <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);</pre>
1251 <p>
1252 Get the update, rate, applied_rate, format, start, stop and 
1253 position in the newsegment event. See <a class="link" href="gstreamer-GstEvent.html#gst-event-new-new-segment-full" title="gst_event_new_new_segment_full ()"><code class="function">gst_event_new_new_segment_full()</code></a> 
1254 for a full description of the newsegment event.
1255 </p>
1256 <div class="variablelist"><table border="0">
1257 <col align="left" valign="top">
1258 <tbody>
1259 <tr>
1260 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1261 <td>The event to query</td>
1262 </tr>
1263 <tr>
1264 <td><p><span class="term"><em class="parameter"><code>update</code></em> :</span></p></td>
1265 <td>A pointer to the update flag of the segment. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1266 </td>
1267 </tr>
1268 <tr>
1269 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1270 <td>A pointer to the rate of the segment. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1271 </td>
1272 </tr>
1273 <tr>
1274 <td><p><span class="term"><em class="parameter"><code>applied_rate</code></em> :</span></p></td>
1275 <td>A pointer to the applied_rate of the segment. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1276 </td>
1277 </tr>
1278 <tr>
1279 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1280 <td>A pointer to the format of the newsegment values. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1281 </td>
1282 </tr>
1283 <tr>
1284 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1285 <td>A pointer to store the start value in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1286 </td>
1287 </tr>
1288 <tr>
1289 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1290 <td>A pointer to store the stop value in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1291 </td>
1292 </tr>
1293 <tr>
1294 <td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
1295 <td>A pointer to store the stream time in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1296 </td>
1297 </tr>
1298 </tbody>
1299 </table></div>
1300 <p class="since">Since 0.10.6</p>
1301 </div>
1302 <hr>
1303 <div class="refsect2">
1304 <a name="gst-event-new-tag"></a><h3>gst_event_new_tag ()</h3>
1305 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_tag                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
1306 <p>
1307 Generates a metadata tag event from the given <em class="parameter"><code>taglist</code></em>.
1308 </p>
1309 <div class="variablelist"><table border="0">
1310 <col align="left" valign="top">
1311 <tbody>
1312 <tr>
1313 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
1314 <td>metadata list. The event will take ownership
1315 of the taglist. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1316 </td>
1317 </tr>
1318 <tr>
1319 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1320 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1321 </td>
1322 </tr>
1323 </tbody>
1324 </table></div>
1325 </div>
1326 <hr>
1327 <div class="refsect2">
1328 <a name="gst-event-parse-tag"></a><h3>gst_event_parse_tag ()</h3>
1329 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_tag                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1330                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
1331 <p>
1332 Parses a tag <em class="parameter"><code>event</code></em> and stores the results in the given <em class="parameter"><code>taglist</code></em> location.
1333 No reference to the taglist will be returned, it remains valid only until
1334 the <em class="parameter"><code>event</code></em> is freed. Don't modify or free the taglist, make a copy if you
1335 want to modify it or store it for later use.
1336 </p>
1337 <div class="variablelist"><table border="0">
1338 <col align="left" valign="top">
1339 <tbody>
1340 <tr>
1341 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1342 <td>a tag event</td>
1343 </tr>
1344 <tr>
1345 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
1346 <td>pointer to metadata list. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1347 </td>
1348 </tr>
1349 </tbody>
1350 </table></div>
1351 </div>
1352 <hr>
1353 <div class="refsect2">
1354 <a name="gst-event-new-buffer-size"></a><h3>gst_event_new_buffer_size ()</h3>
1355 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_buffer_size           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
1356                                                          <em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
1357                                                          <em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
1358                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> async</code></em>);</pre>
1359 <p>
1360 Create a new buffersize event. The event is sent downstream and notifies
1361 elements that they should provide a buffer of the specified dimensions.
1362 </p>
1363 <p>
1364 When the <em class="parameter"><code>async</code></em> flag is set, a thread boundary is preferred.
1365 </p>
1366 <div class="variablelist"><table border="0">
1367 <col align="left" valign="top">
1368 <tbody>
1369 <tr>
1370 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1371 <td>buffer format</td>
1372 </tr>
1373 <tr>
1374 <td><p><span class="term"><em class="parameter"><code>minsize</code></em> :</span></p></td>
1375 <td>minimum buffer size</td>
1376 </tr>
1377 <tr>
1378 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
1379 <td>maximum buffer size</td>
1380 </tr>
1381 <tr>
1382 <td><p><span class="term"><em class="parameter"><code>async</code></em> :</span></p></td>
1383 <td>thread behavior</td>
1384 </tr>
1385 <tr>
1386 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1387 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1388 </td>
1389 </tr>
1390 </tbody>
1391 </table></div>
1392 </div>
1393 <hr>
1394 <div class="refsect2">
1395 <a name="gst-event-parse-buffer-size"></a><h3>gst_event_parse_buffer_size ()</h3>
1396 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_buffer_size         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1397                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
1398                                                          <em class="parameter"><code><span class="type">gint64</span> *minsize</code></em>,
1399                                                          <em class="parameter"><code><span class="type">gint64</span> *maxsize</code></em>,
1400                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *async</code></em>);</pre>
1401 <p>
1402 Get the format, minsize, maxsize and async-flag in the buffersize event.
1403 </p>
1404 <div class="variablelist"><table border="0">
1405 <col align="left" valign="top">
1406 <tbody>
1407 <tr>
1408 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1409 <td>The event to query</td>
1410 </tr>
1411 <tr>
1412 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1413 <td>A pointer to store the format in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1414 </td>
1415 </tr>
1416 <tr>
1417 <td><p><span class="term"><em class="parameter"><code>minsize</code></em> :</span></p></td>
1418 <td>A pointer to store the minsize in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1419 </td>
1420 </tr>
1421 <tr>
1422 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
1423 <td>A pointer to store the maxsize in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1424 </td>
1425 </tr>
1426 <tr>
1427 <td><p><span class="term"><em class="parameter"><code>async</code></em> :</span></p></td>
1428 <td>A pointer to store the async-flag in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1429 </td>
1430 </tr>
1431 </tbody>
1432 </table></div>
1433 </div>
1434 <hr>
1435 <div class="refsect2">
1436 <a name="GstQOSType"></a><h3>enum GstQOSType</h3>
1437 <pre class="programlisting">typedef enum {
1438   GST_QOS_TYPE_OVERFLOW        = 0,
1439   GST_QOS_TYPE_UNDERFLOW       = 1,
1440   GST_QOS_TYPE_THROTTLE        = 2
1441 } GstQOSType;
1442 </pre>
1443 <p>
1444 The different types of QoS events that can be given to the 
1445 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos-full" title="gst_event_new_qos_full ()"><code class="function">gst_event_new_qos_full()</code></a> method.
1446 </p>
1447 <div class="variablelist"><table border="0">
1448 <col align="left" valign="top">
1449 <tbody>
1450 <tr>
1451 <td><p><a name="GST-QOS-TYPE-OVERFLOW:CAPS"></a><span class="term"><code class="literal">GST_QOS_TYPE_OVERFLOW</code></span></p></td>
1452 <td>The QoS event type that is produced when downstream
1453    elements are producing data too quickly and the element can't keep up
1454    processing the data. Upstream should reduce their processing rate. This
1455    type is also used when buffers arrive early or in time.
1456 </td>
1457 </tr>
1458 <tr>
1459 <td><p><a name="GST-QOS-TYPE-UNDERFLOW:CAPS"></a><span class="term"><code class="literal">GST_QOS_TYPE_UNDERFLOW</code></span></p></td>
1460 <td>The QoS event type that is produced when downstream
1461    elements are producing data too slowly and need to speed up their processing
1462    rate. 
1463 </td>
1464 </tr>
1465 <tr>
1466 <td><p><a name="GST-QOS-TYPE-THROTTLE:CAPS"></a><span class="term"><code class="literal">GST_QOS_TYPE_THROTTLE</code></span></p></td>
1467 <td>The QoS event type that is produced when the
1468    application enabled throttling to limit the datarate.
1469 </td>
1470 </tr>
1471 </tbody>
1472 </table></div>
1473 <p class="since">Since 0.10.33</p>
1474 </div>
1475 <hr>
1476 <div class="refsect2">
1477 <a name="gst-event-new-qos"></a><h3>gst_event_new_qos ()</h3>
1478 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_qos                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
1479                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
1480                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
1481 <p>
1482 Allocate a new qos event with the given values. This function calls
1483 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos-full" title="gst_event_new_qos_full ()"><code class="function">gst_event_new_qos_full()</code></a> with the type set to <a class="link" href="gstreamer-GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS"><span class="type">GST_QOS_TYPE_OVERFLOW</span></a>
1484 when diff is negative (buffers are in time) and <a class="link" href="gstreamer-GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS"><span class="type">GST_QOS_TYPE_UNDERFLOW</span></a>
1485 when <em class="parameter"><code>diff</code></em> is positive (buffers are late).
1486 </p>
1487 <div class="variablelist"><table border="0">
1488 <col align="left" valign="top">
1489 <tbody>
1490 <tr>
1491 <td><p><span class="term"><em class="parameter"><code>proportion</code></em> :</span></p></td>
1492 <td>the proportion of the qos message</td>
1493 </tr>
1494 <tr>
1495 <td><p><span class="term"><em class="parameter"><code>diff</code></em> :</span></p></td>
1496 <td>The time difference of the last Clock sync</td>
1497 </tr>
1498 <tr>
1499 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
1500 <td>The timestamp of the buffer</td>
1501 </tr>
1502 <tr>
1503 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1504 <td>a new QOS event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1505 </td>
1506 </tr>
1507 </tbody>
1508 </table></div>
1509 </div>
1510 <hr>
1511 <div class="refsect2">
1512 <a name="gst-event-new-qos-full"></a><h3>gst_event_new_qos_full ()</h3>
1513 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_qos_full              (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> type</code></em>,
1514                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
1515                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
1516                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
1517 <p>
1518 Allocate a new qos event with the given values.
1519 The QOS event is generated in an element that wants an upstream
1520 element to either reduce or increase its rate because of
1521 high/low CPU load or other resource usage such as network performance or
1522 throttling. Typically sinks generate these events for each buffer
1523 they receive.
1524 </p>
1525 <p>
1526 <em class="parameter"><code>type</code></em> indicates the reason for the QoS event. <a class="link" href="gstreamer-GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS"><span class="type">GST_QOS_TYPE_OVERFLOW</span></a> is
1527 used when a buffer arrived in time or when the sink cannot keep up with
1528 the upstream datarate. <a class="link" href="gstreamer-GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS"><span class="type">GST_QOS_TYPE_UNDERFLOW</span></a> is when the sink is not
1529 receiving buffers fast enough and thus has to drop late buffers. 
1530 <a class="link" href="gstreamer-GstEvent.html#GST-QOS-TYPE-THROTTLE:CAPS"><span class="type">GST_QOS_TYPE_THROTTLE</span></a> is used when the datarate is artificially limited
1531 by the application, for example to reduce power consumption.
1532 </p>
1533 <p>
1534 <em class="parameter"><code>proportion</code></em> indicates the real-time performance of the streaming in the
1535 element that generated the QoS event (usually the sink). The value is
1536 generally computed based on more long term statistics about the streams
1537 timestamps compared to the clock.
1538 A value &lt; 1.0 indicates that the upstream element is producing data faster
1539 than real-time. A value &gt; 1.0 indicates that the upstream element is not
1540 producing data fast enough. 1.0 is the ideal <em class="parameter"><code>proportion</code></em> value. The
1541 proportion value can safely be used to lower or increase the quality of
1542 the element.
1543 </p>
1544 <p>
1545 <em class="parameter"><code>diff</code></em> is the difference against the clock in running time of the last
1546 buffer that caused the element to generate the QOS event. A negative value
1547 means that the buffer with <em class="parameter"><code>timestamp</code></em> arrived in time. A positive value
1548 indicates how late the buffer with <em class="parameter"><code>timestamp</code></em> was. When throttling is
1549 enabled, <em class="parameter"><code>diff</code></em> will be set to the requested throttling interval.
1550 </p>
1551 <p>
1552 <em class="parameter"><code>timestamp</code></em> is the timestamp of the last buffer that cause the element
1553 to generate the QOS event. It is expressed in running time and thus an ever
1554 increasing value.
1555 </p>
1556 <p>
1557 The upstream element can use the <em class="parameter"><code>diff</code></em> and <em class="parameter"><code>timestamp</code></em> values to decide
1558 whether to process more buffers. For possitive <em class="parameter"><code>diff</code></em>, all buffers with
1559 timestamp &lt;= <em class="parameter"><code>timestamp</code></em> + <em class="parameter"><code>diff</code></em> will certainly arrive late in the sink
1560 as well. A (negative) <em class="parameter"><code>diff</code></em> value so that <em class="parameter"><code>timestamp</code></em> + <em class="parameter"><code>diff</code></em> would yield a
1561 result smaller than 0 is not allowed.
1562 </p>
1563 <p>
1564 The application can use general event probes to intercept the QoS
1565 event and implement custom application specific QoS handling.
1566 </p>
1567 <div class="variablelist"><table border="0">
1568 <col align="left" valign="top">
1569 <tbody>
1570 <tr>
1571 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1572 <td>the QoS type</td>
1573 </tr>
1574 <tr>
1575 <td><p><span class="term"><em class="parameter"><code>proportion</code></em> :</span></p></td>
1576 <td>the proportion of the qos message</td>
1577 </tr>
1578 <tr>
1579 <td><p><span class="term"><em class="parameter"><code>diff</code></em> :</span></p></td>
1580 <td>The time difference of the last Clock sync</td>
1581 </tr>
1582 <tr>
1583 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
1584 <td>The timestamp of the buffer</td>
1585 </tr>
1586 <tr>
1587 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1588 <td>a new QOS event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1589 </td>
1590 </tr>
1591 </tbody>
1592 </table></div>
1593 <p class="since">Since 0.10.33</p>
1594 </div>
1595 <hr>
1596 <div class="refsect2">
1597 <a name="gst-event-parse-qos"></a><h3>gst_event_parse_qos ()</h3>
1598 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_qos                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1599                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
1600                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *diff</code></em>,
1601                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);</pre>
1602 <p>
1603 Get the proportion, diff and timestamp in the qos event. See
1604 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()"><code class="function">gst_event_new_qos()</code></a> for more information about the different QoS values.
1605 </p>
1606 <div class="variablelist"><table border="0">
1607 <col align="left" valign="top">
1608 <tbody>
1609 <tr>
1610 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1611 <td>The event to query</td>
1612 </tr>
1613 <tr>
1614 <td><p><span class="term"><em class="parameter"><code>proportion</code></em> :</span></p></td>
1615 <td>A pointer to store the proportion in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1616 </td>
1617 </tr>
1618 <tr>
1619 <td><p><span class="term"><em class="parameter"><code>diff</code></em> :</span></p></td>
1620 <td>A pointer to store the diff in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1621 </td>
1622 </tr>
1623 <tr>
1624 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
1625 <td>A pointer to store the timestamp in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1626 </td>
1627 </tr>
1628 </tbody>
1629 </table></div>
1630 </div>
1631 <hr>
1632 <div class="refsect2">
1633 <a name="gst-event-parse-qos-full"></a><h3>gst_event_parse_qos_full ()</h3>
1634 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_qos_full            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1635                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> *type</code></em>,
1636                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
1637                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *diff</code></em>,
1638                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);</pre>
1639 <p>
1640 Get the type, proportion, diff and timestamp in the qos event. See
1641 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos-full" title="gst_event_new_qos_full ()"><code class="function">gst_event_new_qos_full()</code></a> for more information about the different QoS values.
1642 </p>
1643 <div class="variablelist"><table border="0">
1644 <col align="left" valign="top">
1645 <tbody>
1646 <tr>
1647 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1648 <td>The event to query</td>
1649 </tr>
1650 <tr>
1651 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1652 <td>A pointer to store the QoS type in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1653 </td>
1654 </tr>
1655 <tr>
1656 <td><p><span class="term"><em class="parameter"><code>proportion</code></em> :</span></p></td>
1657 <td>A pointer to store the proportion in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1658 </td>
1659 </tr>
1660 <tr>
1661 <td><p><span class="term"><em class="parameter"><code>diff</code></em> :</span></p></td>
1662 <td>A pointer to store the diff in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1663 </td>
1664 </tr>
1665 <tr>
1666 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
1667 <td>A pointer to store the timestamp in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1668 </td>
1669 </tr>
1670 </tbody>
1671 </table></div>
1672 <p class="since">Since 0.10.33</p>
1673 </div>
1674 <hr>
1675 <div class="refsect2">
1676 <a name="GstSeekType"></a><h3>enum GstSeekType</h3>
1677 <pre class="programlisting">typedef enum {
1678   /* one of these */
1679   GST_SEEK_TYPE_NONE            = 0,
1680   GST_SEEK_TYPE_CUR             = 1,
1681   GST_SEEK_TYPE_SET             = 2,
1682   GST_SEEK_TYPE_END             = 3
1683 } GstSeekType;
1684 </pre>
1685 <p>
1686 The different types of seek events. When constructing a seek event with
1687 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a>, a format, a seek method and optional flags are to
1688 be provided. The seek event is then inserted into the graph with
1689 <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()"><code class="function">gst_pad_send_event()</code></a> or <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a>.
1690 </p>
1691 <div class="variablelist"><table border="0">
1692 <col align="left" valign="top">
1693 <tbody>
1694 <tr>
1695 <td><p><a name="GST-SEEK-TYPE-NONE:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_NONE</code></span></p></td>
1696 <td>no change in position is required
1697 </td>
1698 </tr>
1699 <tr>
1700 <td><p><a name="GST-SEEK-TYPE-CUR:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_CUR</code></span></p></td>
1701 <td>change relative to currently configured segment. This
1702    can't be used to seek relative to the current playback position - do a
1703    position query, calculate the desired position and then do an absolute
1704    position seek instead if that's what you want to do.
1705 </td>
1706 </tr>
1707 <tr>
1708 <td><p><a name="GST-SEEK-TYPE-SET:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_SET</code></span></p></td>
1709 <td>absolute position is requested
1710 </td>
1711 </tr>
1712 <tr>
1713 <td><p><a name="GST-SEEK-TYPE-END:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_END</code></span></p></td>
1714 <td>relative position to duration is requested
1715 </td>
1716 </tr>
1717 </tbody>
1718 </table></div>
1719 </div>
1720 <hr>
1721 <div class="refsect2">
1722 <a name="GstSeekFlags"></a><h3>enum GstSeekFlags</h3>
1723 <pre class="programlisting">typedef enum {
1724   GST_SEEK_FLAG_NONE            = 0,
1725   GST_SEEK_FLAG_FLUSH           = (1 &lt;&lt; 0),
1726   GST_SEEK_FLAG_ACCURATE        = (1 &lt;&lt; 1),
1727   GST_SEEK_FLAG_KEY_UNIT        = (1 &lt;&lt; 2),
1728   GST_SEEK_FLAG_SEGMENT         = (1 &lt;&lt; 3),
1729   GST_SEEK_FLAG_SKIP            = (1 &lt;&lt; 4)
1730 } GstSeekFlags;
1731 </pre>
1732 <p>
1733 Flags to be used with <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()"><code class="function">gst_element_seek()</code></a> or <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a>. All flags
1734 can be used together.
1735 </p>
1736 <p>
1737 A non flushing seek might take some time to perform as the currently
1738 playing data in the pipeline will not be cleared.
1739 </p>
1740 <p>
1741 An accurate seek might be slower for formats that don't have any indexes
1742 or timestamp markers in the stream. Specifying this flag might require a
1743 complete scan of the file in those cases.
1744 </p>
1745 <p>
1746 When performing a segment seek: after the playback of the segment completes,
1747 no EOS will be emmited by the element that performed the seek, but a
1748 <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><span class="type">GST_MESSAGE_SEGMENT_DONE</span></a> message will be posted on the bus by the element.
1749 When this message is posted, it is possible to send a new seek event to
1750 continue playback. With this seek method it is possible to perform seamless
1751 looping or simple linear editing.
1752 </p>
1753 <p>
1754 When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
1755 playback, the <em class="parameter"><code>GST_SEEK_FLAG_SKIP</code></em> flag can be used to instruct decoders
1756 and demuxers to adjust the playback rate by skipping frames. This can improve
1757 performance and decrease CPU usage because not all frames need to be decoded.
1758 </p>
1759 <p>
1760 Also see part-seeking.txt in the GStreamer design documentation for more
1761 details on the meaning of these flags and the behaviour expected of
1762 elements that handle them.
1763 </p>
1764 <div class="variablelist"><table border="0">
1765 <col align="left" valign="top">
1766 <tbody>
1767 <tr>
1768 <td><p><a name="GST-SEEK-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_NONE</code></span></p></td>
1769 <td>no flag
1770 </td>
1771 </tr>
1772 <tr>
1773 <td><p><a name="GST-SEEK-FLAG-FLUSH:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_FLUSH</code></span></p></td>
1774 <td>flush pipeline
1775 </td>
1776 </tr>
1777 <tr>
1778 <td><p><a name="GST-SEEK-FLAG-ACCURATE:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_ACCURATE</code></span></p></td>
1779 <td>accurate position is requested, this might
1780                     be considerably slower for some formats.
1781 </td>
1782 </tr>
1783 <tr>
1784 <td><p><a name="GST-SEEK-FLAG-KEY-UNIT:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_KEY_UNIT</code></span></p></td>
1785 <td>seek to the nearest keyframe. This might be
1786                     faster but less accurate.
1787 </td>
1788 </tr>
1789 <tr>
1790 <td><p><a name="GST-SEEK-FLAG-SEGMENT:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_SEGMENT</code></span></p></td>
1791 <td>perform a segment seek.
1792 </td>
1793 </tr>
1794 <tr>
1795 <td><p><a name="GST-SEEK-FLAG-SKIP:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_SKIP</code></span></p></td>
1796 <td>when doing fast foward or fast reverse playback, allow
1797                     elements to skip frames instead of generating all
1798                     frames. Since 0.10.22.
1799 </td>
1800 </tr>
1801 </tbody>
1802 </table></div>
1803 </div>
1804 <hr>
1805 <div class="refsect2">
1806 <a name="gst-event-new-seek"></a><h3>gst_event_new_seek ()</h3>
1807 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_seek                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
1808                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
1809                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
1810                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
1811                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
1812                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
1813                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
1814 <p>
1815 Allocate a new seek event with the given parameters.
1816 </p>
1817 <p>
1818 The seek event configures playback of the pipeline between <em class="parameter"><code>start</code></em> to <em class="parameter"><code>stop</code></em>
1819 at the speed given in <em class="parameter"><code>rate</code></em>, also called a playback segment.
1820 The <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> values are expressed in <em class="parameter"><code>format</code></em>.
1821 </p>
1822 <p>
1823 A <em class="parameter"><code>rate</code></em> of 1.0 means normal playback rate, 2.0 means double speed.
1824 Negatives values means backwards playback. A value of 0.0 for the
1825 rate is not allowed and should be accomplished instead by PAUSING the
1826 pipeline.
1827 </p>
1828 <p>
1829 A pipeline has a default playback segment configured with a start
1830 position of 0, a stop position of -1 and a rate of 1.0. The currently
1831 configured playback segment can be queried with <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-SEGMENT:CAPS"><span class="type">GST_QUERY_SEGMENT</span></a>. 
1832 </p>
1833 <p>
1834 <em class="parameter"><code>start_type</code></em> and <em class="parameter"><code>stop_type</code></em> specify how to adjust the currently configured 
1835 start and stop fields in playback segment. Adjustments can be made relative
1836 or absolute to the last configured values. A type of <a class="link" href="gstreamer-GstEvent.html#GST-SEEK-TYPE-NONE:CAPS"><span class="type">GST_SEEK_TYPE_NONE</span></a>
1837 means that the position should not be updated.
1838 </p>
1839 <p>
1840 When the rate is positive and <em class="parameter"><code>start</code></em> has been updated, playback will start
1841 from the newly configured start position. 
1842 </p>
1843 <p>
1844 For negative rates, playback will start from the newly configured stop
1845 position (if any). If the stop position if updated, it must be different from
1846 -1 for negative rates.
1847 </p>
1848 <p>
1849 It is not possible to seek relative to the current playback position, to do
1850 this, PAUSE the pipeline, query the current playback position with
1851 <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-POSITION:CAPS"><span class="type">GST_QUERY_POSITION</span></a> and update the playback segment current position with a
1852 <a class="link" href="gstreamer-GstEvent.html#GST-SEEK-TYPE-SET:CAPS"><span class="type">GST_SEEK_TYPE_SET</span></a> to the desired position.
1853 </p>
1854 <div class="variablelist"><table border="0">
1855 <col align="left" valign="top">
1856 <tbody>
1857 <tr>
1858 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1859 <td>The new playback rate</td>
1860 </tr>
1861 <tr>
1862 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1863 <td>The format of the seek values</td>
1864 </tr>
1865 <tr>
1866 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
1867 <td>The optional seek flags</td>
1868 </tr>
1869 <tr>
1870 <td><p><span class="term"><em class="parameter"><code>start_type</code></em> :</span></p></td>
1871 <td>The type and flags for the new start position</td>
1872 </tr>
1873 <tr>
1874 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1875 <td>The value of the new start position</td>
1876 </tr>
1877 <tr>
1878 <td><p><span class="term"><em class="parameter"><code>stop_type</code></em> :</span></p></td>
1879 <td>The type and flags for the new stop position</td>
1880 </tr>
1881 <tr>
1882 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1883 <td>The value of the new stop position</td>
1884 </tr>
1885 <tr>
1886 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1887 <td>a new seek event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1888 </td>
1889 </tr>
1890 </tbody>
1891 </table></div>
1892 </div>
1893 <hr>
1894 <div class="refsect2">
1895 <a name="gst-event-parse-seek"></a><h3>gst_event_parse_seek ()</h3>
1896 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_seek                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
1897                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
1898                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
1899                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> *flags</code></em>,
1900                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *start_type</code></em>,
1901                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
1902                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *stop_type</code></em>,
1903                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);</pre>
1904 <p>
1905 Parses a seek <em class="parameter"><code>event</code></em> and stores the results in the given result locations.
1906 </p>
1907 <div class="variablelist"><table border="0">
1908 <col align="left" valign="top">
1909 <tbody>
1910 <tr>
1911 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
1912 <td>a seek event</td>
1913 </tr>
1914 <tr>
1915 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
1916 <td>result location for the rate. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1917 </td>
1918 </tr>
1919 <tr>
1920 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1921 <td>result location for the stream format. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1922 </td>
1923 </tr>
1924 <tr>
1925 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
1926 <td>result location for the <a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1927 </td>
1928 </tr>
1929 <tr>
1930 <td><p><span class="term"><em class="parameter"><code>start_type</code></em> :</span></p></td>
1931 <td>result location for the <a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> of the start position. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1932 </td>
1933 </tr>
1934 <tr>
1935 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
1936 <td>result location for the start postion expressed in <em class="parameter"><code>format</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1937 </td>
1938 </tr>
1939 <tr>
1940 <td><p><span class="term"><em class="parameter"><code>stop_type</code></em> :</span></p></td>
1941 <td>result location for the <a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> of the stop position. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1942 </td>
1943 </tr>
1944 <tr>
1945 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
1946 <td>result location for the stop postion expressed in <em class="parameter"><code>format</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1947 </td>
1948 </tr>
1949 </tbody>
1950 </table></div>
1951 </div>
1952 <hr>
1953 <div class="refsect2">
1954 <a name="gst-event-new-navigation"></a><h3>gst_event_new_navigation ()</h3>
1955 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_navigation            (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
1956 <p>
1957 Create a new navigation event from the given description.
1958 </p>
1959 <div class="variablelist"><table border="0">
1960 <col align="left" valign="top">
1961 <tbody>
1962 <tr>
1963 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
1964 <td>description of the event. The event will take
1965 ownership of the structure. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1966 </td>
1967 </tr>
1968 <tr>
1969 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1970 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1971 </td>
1972 </tr>
1973 </tbody>
1974 </table></div>
1975 </div>
1976 <hr>
1977 <div class="refsect2">
1978 <a name="gst-event-new-latency"></a><h3>gst_event_new_latency ()</h3>
1979 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_latency               (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> latency</code></em>);</pre>
1980 <p>
1981 Create a new latency event. The event is sent upstream from the sinks and
1982 notifies elements that they should add an additional <em class="parameter"><code>latency</code></em> to the
1983 running time before synchronising against the clock.
1984 </p>
1985 <p>
1986 The latency is mostly used in live sinks and is always expressed in
1987 the time format.
1988 </p>
1989 <div class="variablelist"><table border="0">
1990 <col align="left" valign="top">
1991 <tbody>
1992 <tr>
1993 <td><p><span class="term"><em class="parameter"><code>latency</code></em> :</span></p></td>
1994 <td>the new latency value</td>
1995 </tr>
1996 <tr>
1997 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1998 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1999 </td>
2000 </tr>
2001 </tbody>
2002 </table></div>
2003 <p class="since">Since 0.10.12</p>
2004 </div>
2005 <hr>
2006 <div class="refsect2">
2007 <a name="gst-event-parse-latency"></a><h3>gst_event_parse_latency ()</h3>
2008 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_latency             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
2009                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *latency</code></em>);</pre>
2010 <p>
2011 Get the latency in the latency event.
2012 </p>
2013 <div class="variablelist"><table border="0">
2014 <col align="left" valign="top">
2015 <tbody>
2016 <tr>
2017 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
2018 <td>The event to query</td>
2019 </tr>
2020 <tr>
2021 <td><p><span class="term"><em class="parameter"><code>latency</code></em> :</span></p></td>
2022 <td>A pointer to store the latency in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
2023 </td>
2024 </tr>
2025 </tbody>
2026 </table></div>
2027 <p class="since">Since 0.10.12</p>
2028 </div>
2029 <hr>
2030 <div class="refsect2">
2031 <a name="gst-event-new-step"></a><h3>gst_event_new_step ()</h3>
2032 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_step                  (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
2033                                                          <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
2034                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
2035                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
2036                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);</pre>
2037 <p>
2038 Create a new step event. The purpose of the step event is to instruct a sink
2039 to skip <em class="parameter"><code>amount</code></em> (expressed in <em class="parameter"><code>format</code></em>) of media. It can be used to implement
2040 stepping through the video frame by frame or for doing fast trick modes.
2041 </p>
2042 <p>
2043 A rate of &lt;= 0.0 is not allowed. Pause the pipeline, for the effect of rate
2044 = 0.0 or first reverse the direction of playback using a seek event to get
2045 the same effect as rate &lt; 0.0.
2046 </p>
2047 <p>
2048 The <em class="parameter"><code>flush</code></em> flag will clear any pending data in the pipeline before starting
2049 the step operation.
2050 </p>
2051 <p>
2052 The <em class="parameter"><code>intermediate</code></em> flag instructs the pipeline that this step operation is
2053 part of a larger step operation.
2054 </p>
2055 <div class="variablelist"><table border="0">
2056 <col align="left" valign="top">
2057 <tbody>
2058 <tr>
2059 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2060 <td>the format of <em class="parameter"><code>amount</code></em>
2061 </td>
2062 </tr>
2063 <tr>
2064 <td><p><span class="term"><em class="parameter"><code>amount</code></em> :</span></p></td>
2065 <td>the amount of data to step</td>
2066 </tr>
2067 <tr>
2068 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
2069 <td>the step rate</td>
2070 </tr>
2071 <tr>
2072 <td><p><span class="term"><em class="parameter"><code>flush</code></em> :</span></p></td>
2073 <td>flushing steps</td>
2074 </tr>
2075 <tr>
2076 <td><p><span class="term"><em class="parameter"><code>intermediate</code></em> :</span></p></td>
2077 <td>intermediate steps</td>
2078 </tr>
2079 <tr>
2080 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2081 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2082 </td>
2083 </tr>
2084 </tbody>
2085 </table></div>
2086 <p class="since">Since 0.10.24</p>
2087 </div>
2088 <hr>
2089 <div class="refsect2">
2090 <a name="gst-event-parse-step"></a><h3>gst_event_parse_step ()</h3>
2091 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_step                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
2092                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
2093                                                          <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
2094                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
2095                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
2096                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);</pre>
2097 <p>
2098 Parse the step event.
2099 </p>
2100 <div class="variablelist"><table border="0">
2101 <col align="left" valign="top">
2102 <tbody>
2103 <tr>
2104 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
2105 <td>The event to query</td>
2106 </tr>
2107 <tr>
2108 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2109 <td>a pointer to store the format in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2110 </td>
2111 </tr>
2112 <tr>
2113 <td><p><span class="term"><em class="parameter"><code>amount</code></em> :</span></p></td>
2114 <td>a pointer to store the amount in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2115 </td>
2116 </tr>
2117 <tr>
2118 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
2119 <td>a pointer to store the rate in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2120 </td>
2121 </tr>
2122 <tr>
2123 <td><p><span class="term"><em class="parameter"><code>flush</code></em> :</span></p></td>
2124 <td>a pointer to store the flush boolean in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2125 </td>
2126 </tr>
2127 <tr>
2128 <td><p><span class="term"><em class="parameter"><code>intermediate</code></em> :</span></p></td>
2129 <td>a pointer to store the intermediate
2130 boolean in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2131 </td>
2132 </tr>
2133 </tbody>
2134 </table></div>
2135 <p class="since">Since 0.10.24</p>
2136 </div>
2137 <hr>
2138 <div class="refsect2">
2139 <a name="gst-event-new-sink-message"></a><h3>gst_event_new_sink_message ()</h3>
2140 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_sink_message          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
2141 <p>
2142 Create a new sink-message event. The purpose of the sink-message event is
2143 to instruct a sink to post the message contained in the event synchronized
2144 with the stream.
2145 </p>
2146 <div class="variablelist"><table border="0">
2147 <col align="left" valign="top">
2148 <tbody>
2149 <tr>
2150 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
2151 <td>the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to be posted. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2152 </td>
2153 </tr>
2154 <tr>
2155 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2156 <td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2157 </td>
2158 </tr>
2159 </tbody>
2160 </table></div>
2161 <p class="since">Since 0.10.26</p>
2162 </div>
2163 <hr>
2164 <div class="refsect2">
2165 <a name="gst-event-parse-sink-message"></a><h3>gst_event_parse_sink_message ()</h3>
2166 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_sink_message        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
2167                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **msg</code></em>);</pre>
2168 <p>
2169 Parse the sink-message event. Unref <em class="parameter"><code>msg</code></em> after usage.
2170 </p>
2171 <div class="variablelist"><table border="0">
2172 <col align="left" valign="top">
2173 <tbody>
2174 <tr>
2175 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
2176 <td>The event to query</td>
2177 </tr>
2178 <tr>
2179 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
2180 <td>a pointer to store the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2181 </td>
2182 </tr>
2183 </tbody>
2184 </table></div>
2185 <p class="since">Since 0.10.26</p>
2186 </div>
2187 </div>
2188 <div class="refsect1">
2189 <a name="gstreamer-GstEvent.see-also"></a><h2>See Also</h2>
2190 <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
2191 </div>
2192 </div>
2193 <div class="footer">
2194 <hr>
2195           Generated by GTK-Doc V1.18</div>
2196 </body>
2197 </html>