aboutsummaryrefslogtreecommitdiff
path: root/docs/libs/html/gstreamer-libs-GstBaseParse.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/libs/html/gstreamer-libs-GstBaseParse.html')
-rw-r--r--docs/libs/html/gstreamer-libs-GstBaseParse.html288
1 files changed, 165 insertions, 123 deletions
diff --git a/docs/libs/html/gstreamer-libs-GstBaseParse.html b/docs/libs/html/gstreamer-libs-GstBaseParse.html
index 3317774..606e661 100644
--- a/docs/libs/html/gstreamer-libs-GstBaseParse.html
+++ b/docs/libs/html/gstreamer-libs-GstBaseParse.html
@@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstBaseParse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
<link rel="prev" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
<link rel="next" href="GstBaseSrc.html" title="GstBaseSrc">
@@ -17,7 +17,7 @@
<td><a accesskey="p" href="gstreamer-base.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
<td><a accesskey="n" href="GstBaseSrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
@@ -43,8 +43,8 @@
struct <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse">GstBaseParse</a>;
struct <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseClass" title="struct GstBaseParseClass">GstBaseParseClass</a>;
<span class="returnvalue">void</span> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration" title="gst_base_parse_set_duration ()">gst_base_parse_set_duration</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate" title="gst_base_parse_set_average_bitrate ()">gst_base_parse_set_average_bitrate</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bitrate</code></em>);
@@ -62,32 +62,31 @@ struct <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBa
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_in</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_out</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" title="gst_base_parse_set_latency ()">gst_base_parse_set_latency</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
<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-libs-GstBaseParse.html#gst-base-parse-convert-default" title="gst_base_parse_convert_default ()">gst_base_parse_convert_default</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
<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-libs-GstBaseParse.html#gst-base-parse-add-index-entry" title="gst_base_parse_add_index_entry ()">gst_base_parse_add_index_entry</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);
<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame">GstBaseParseFrame</a>;
enum <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags">GstBaseParseFrameFlags</a>;
-<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a> (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a> (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" title="gst_base_parse_frame_init ()">gst_base_parse_frame_init</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()">gst_base_parse_frame_free</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS" title="GST_BASE_PARSE_DRAINING()">GST_BASE_PARSE_DRAINING</a> (parse)
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS" title="GST_BASE_PARSE_FLAG_DRAINING">GST_BASE_PARSE_FLAG_DRAINING</a>
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS" title="GST_BASE_PARSE_FLAG_LOST_SYNC">GST_BASE_PARSE_FLAG_LOST_SYNC</a>
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS" title="GST_BASE_PARSE_FLOW_DROPPED">GST_BASE_PARSE_FLOW_DROPPED</a>
-#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-QUEUED:CAPS" title="GST_BASE_PARSE_FLOW_QUEUED">GST_BASE_PARSE_FLOW_QUEUED</a>
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" title="GST_BASE_PARSE_LOST_SYNC()">GST_BASE_PARSE_LOST_SYNC</a> (parse)
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" title="GST_BASE_PARSE_SINK_PAD()">GST_BASE_PARSE_SINK_PAD</a> (obj)
#define <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" title="GST_BASE_PARSE_SRC_PAD()">GST_BASE_PARSE_SRC_PAD</a> (obj)
@@ -127,14 +126,16 @@ Description of the parsing mechanism:
<p class="title"><b>Set-up phase</b></p>
<ul class="itemizedlist" type="disc">
<li class="listitem"><p>
- GstBaseParse class calls <em class="parameter"><code>set_sink_caps</code></em> to inform the subclass about
- incoming sinkpad caps. Subclass should set the srcpad caps accordingly.
- </p></li>
-<li class="listitem"><p>
GstBaseParse calls <em class="parameter"><code>start</code></em> to inform subclass that data processing is
about to start now.
</p></li>
<li class="listitem"><p>
+ GstBaseParse class calls <em class="parameter"><code>set_sink_caps</code></em> to inform the subclass about
+ incoming sinkpad caps. Subclass could already set the srcpad caps
+ accordingly, but this might be delayed until calling
+ <code class="function">gst_base_parse_finish_frame()</code> with a non-queued frame.
+ </p></li>
+<li class="listitem"><p>
At least at this point subclass needs to tell the GstBaseParse class
how big data chunks it wants to receive (min_frame_size). It can do
this with <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size" title="gst_base_parse_set_min_frame_size ()"><code class="function">gst_base_parse_set_min_frame_size()</code></a>.
@@ -153,37 +154,46 @@ Description of the parsing mechanism:
by pulling it from upstream or collecting buffers in an internal
<a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>.
</p></li>
-<li class="listitem"><p>
+<li class="listitem">
+<p>
A buffer of (at least) min_frame_size bytes is passed to subclass with
- <em class="parameter"><code>check_valid_frame</code></em>. Subclass checks the contents and returns TRUE
- if the buffer contains a valid frame. It also needs to set the
- <em class="parameter"><code>framesize</code></em> according to the detected frame size. If buffer didn't
- contain a valid frame, this call must return FALSE and optionally
- set the <em class="parameter"><code>skipsize</code></em> value to inform base class that how many bytes
- it needs to skip in order to find a valid frame. <em class="parameter"><code>framesize</code></em> can always
- indicate a new minimum for current frame parsing. Indicating G_MAXUINT
- for requested amount means subclass simply needs best available
- subsequent data. In push mode this amounts to an additional input buffer
- (thus minimal additional latency), in pull mode this amounts to some
- arbitrary reasonable buffer size increase. The passed buffer
- is read-only. Note that <em class="parameter"><code>check_valid_frame</code></em> might receive any small
- amount of input data when leftover data is being drained (e.g. at EOS).
- </p></li>
-<li class="listitem"><p>
- After valid frame is found, it will be passed again to subclass with
- <em class="parameter"><code>parse_frame</code></em> call. Now subclass is responsible for parsing the
- frame contents and setting the caps, and buffer metadata (e.g.
- buffer timestamp and duration, or keyframe if applicable).
+ <em class="parameter"><code>handle_frame</code></em>. Subclass checks the contents and can optionally
+ return GST_FLOW_OK along with an amount of data to be skipped to find
+ a valid frame (which will result in a subsequent DISCONT).
+ If, otherwise, the buffer does not hold a complete frame,
+ <em class="parameter"><code>handle_frame</code></em> can merely return and will be called again when additional
+ data is available. In push mode this amounts to an
+ additional input buffer (thus minimal additional latency), in pull mode
+ this amounts to some arbitrary reasonable buffer size increase.
+ Of course, <code class="function">gst_base_parse_set_min_size()</code> could also be used if a very
+ specific known amount of additional data is required.
+ If, however, the buffer holds a complete valid frame, it can pass
+ the size of this frame to <code class="function">gst_base_parse_finish_frame()</code>.
+ If acting as a converter, it can also merely indicate consumed input data
+ while simultaneously providing custom output data.
+ Note that baseclass performs some processing (such as tracking
+ overall consumed data rate versus duration) for each finished frame,
+ but other state is only updated upon each call to <em class="parameter"><code>handle_frame</code></em>
+ (such as tracking upstream input timestamp).
+ </p>
+<p>
+ Subclass is also responsible for setting the buffer metadata
+ (e.g. buffer timestamp and duration, or keyframe if applicable).
(although the latter can also be done by GstBaseParse if it is
appropriately configured, see below). Frame is provided with
timestamp derived from upstream (as much as generally possible),
duration obtained from configuration (see below), and offset
if meaningful (in pull mode).
- </p></li>
+ </p>
+<p>
+ Note that <em class="parameter"><code>check_valid_frame</code></em> might receive any small
+ amount of input data when leftover data is being drained (e.g. at EOS).
+ </p>
+</li>
<li class="listitem"><p>
- Finally the buffer can be pushed downstream and the parsing loop starts
- over again. Just prior to actually pushing the buffer in question,
- it is passed to <em class="parameter"><code>pre_push_buffer</code></em> which gives subclass yet one
+ As part of finish frame processing,
+ just prior to actually pushing the buffer in question,
+ it is passed to <em class="parameter"><code>pre_push_frame</code></em> which gives subclass yet one
last chance to examine buffer metadata, or to send some custom (tag)
events, or to perform custom (segment) filtering.
</p></li>
@@ -211,9 +221,9 @@ needs to set the fixed caps on srcpad, when the format is ensured (e.g.
when base class calls subclass' <em class="parameter"><code>set_sink_caps</code></em> function).
</p>
<p>
-This base class uses <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
+This base class uses <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
subclass conversion routine needs to know that conversion from
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
frame number that can be found from the given byte position.
</p>
<p>
@@ -237,12 +247,9 @@ Things that subclass need to take care of:
done with <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size" title="gst_base_parse_set_min_frame_size ()"><code class="function">gst_base_parse_set_min_frame_size()</code></a> function.
</p></li>
<li class="listitem"><p>
- Examine data chunks passed to subclass with <em class="parameter"><code>check_valid_frame</code></em>
- and tell if they contain a valid frame
- </p></li>
-<li class="listitem"><p>
- Set the caps and timestamp to frame that is passed to subclass with
- <em class="parameter"><code>parse_frame</code></em> function.
+ Examine data chunks passed to subclass with <em class="parameter"><code>handle_frame</code></em> and pass
+ proper frame(s) to <code class="function">gst_base_parse_finish_frame()</code>, and setting src pad
+ caps and timestamps on frame.
</p></li>
<li class="listitem"><p>Provide conversion functions</p></li>
<li class="listitem"><p>
@@ -285,7 +292,7 @@ The opaque <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse"
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
<td>the parent element.</td>
</tr></tbody>
</table></div>
@@ -305,14 +312,10 @@ The opaque <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse"
gboolean (*set_sink_caps) (GstBaseParse * parse,
GstCaps * caps);
- gboolean (*check_valid_frame) (GstBaseParse * parse,
+ GstFlowReturn (*handle_frame) (GstBaseParse * parse,
GstBaseParseFrame * frame,
- guint * framesize,
gint * skipsize);
- GstFlowReturn (*parse_frame) (GstBaseParse * parse,
- GstBaseParseFrame * frame);
-
GstFlowReturn (*pre_push_frame) (GstBaseParse * parse,
GstBaseParseFrame * frame);
@@ -322,11 +325,17 @@ The opaque <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse"
GstFormat dest_format,
gint64 * dest_value);
- gboolean (*event) (GstBaseParse * parse,
+ gboolean (*sink_event) (GstBaseParse * parse,
GstEvent * event);
gboolean (*src_event) (GstBaseParse * parse,
GstEvent * event);
+
+ GstCaps * (*get_sink_caps) (GstBaseParse * parse,
+ GstCaps * filter);
+
+ GstFlowReturn (*detect) (GstBaseParse * parse,
+ GstBuffer * buffer);
};
</pre>
<p>
@@ -338,7 +347,7 @@ overridden.
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
<td>the parent class</td>
</tr>
<tr>
@@ -358,16 +367,17 @@ Allows closing external resources.</td>
<td>allows the subclass to be notified of the actual caps set.</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.check-valid-frame"></a>check_valid_frame</code></em> ()</span></p></td>
-<td>Check if the given piece of data contains a valid
-frame.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.parse-frame"></a>parse_frame</code></em> ()</span></p></td>
-<td>Parse the already checked frame. Subclass need to
-set the buffer timestamp, duration, caps and possibly
-other necessary metadata. This is called with srcpad's
-STREAM_LOCK held.</td>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Parses the input data into valid frames as defined by subclass
+which should be passed to <code class="function">gst_base_parse_finish_frame()</code>.
+The frame's input buffer is guaranteed writable,
+whereas the input frame ownership is held by caller
+(so subclass should make a copy if it needs to hang on).
+Input buffer (data) is provided by baseclass with as much
+metadata set as possible by baseclass according to upstream
+information and/or subclass settings,
+though subclass may still set buffer timestamp and duration
+if desired.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.pre-push-frame"></a>pre_push_frame</code></em> ()</span></p></td>
@@ -384,16 +394,28 @@ decide whether this buffer should be dropped or not
Convert between formats.</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.event"></a>event</code></em> ()</span></p></td>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.sink-event"></a>sink_event</code></em> ()</span></p></td>
<td>Optional.
-Event handler on the sink pad. This function should return
-TRUE if the event was handled and can be dropped.</td>
+Event handler on the sink pad. This function should chain
+up to the parent implementation to let the default handler
+run.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.src-event"></a>src_event</code></em> ()</span></p></td>
<td>Optional.
-Event handler on the source pad. Should return TRUE
-if the event was handled and can be dropped.</td>
+Event handler on the source pad. Should chain up to the
+parent to let the default handler run.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.get-sink-caps"></a>get_sink_caps</code></em> ()</span></p></td>
+<td>allows the subclass to do its own sink get caps if needed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.detect"></a>detect</code></em> ()</span></p></td>
+<td>Optional.
+Called until it doesn't return GST_FLOW_OK anymore for
+the first buffers. Can be used by the subclass to detect
+the stream format. Since: 0.10.36</td>
</tr>
</tbody>
</table></div>
@@ -402,8 +424,8 @@ if the event was handled and can be dropped.</td>
<div class="refsect2">
<a name="gst-base-parse-set-duration"></a><h3>gst_base_parse_set_duration ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_base_parse_set_duration (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);</pre>
<p>
Sets the duration of the currently playing media. Subclass can use this
@@ -423,7 +445,7 @@ frames.
<tr>
<td><p><span class="term"><em class="parameter"><code>fmt</code></em> :</span></p></td>
<td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
@@ -504,9 +526,9 @@ Set if the nature of the format or configuration does not allow (much)
parsing, and the parser should operate in passthrough mode (which only
applies when operating in push mode). That is, incoming buffers are
pushed through unmodified, i.e. no <em class="parameter"><code>check_valid_frame</code></em> or <em class="parameter"><code>parse_frame</code></em>
-callbacks will be invoked, but <em class="parameter"><code>pre_push_buffer</code></em> will still be invoked,
+callbacks will be invoked, but <em class="parameter"><code>pre_push_frame</code></em> will still be invoked,
so subclass can perform as much or as little is appropriate for
-passthrough semantics in <em class="parameter"><code>pre_push_buffer</code></em>.
+passthrough semantics in <em class="parameter"><code>pre_push_frame</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -623,8 +645,8 @@ entirely filled upon decoding.
<div class="refsect2">
<a name="gst-base-parse-set-latency"></a><h3>gst_base_parse_set_latency ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_base_parse_set_latency (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
<p>
Sets the minimum and maximum (which may likely be equal) latency introduced
by the parsing process. If there is such a latency, which depends on the
@@ -648,16 +670,16 @@ particular parsing of the format, it typically corresponds to 1 frame duration.
</tr>
</tbody>
</table></div>
-<p class="since">Since 0.10.34</p>
+<p class="since">Since 0.10.36</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-base-parse-convert-default"></a><h3>gst_base_parse_convert_default ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_base_parse_convert_default (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
<p>
Default implementation of "convert" vmethod in <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> class.
</p>
@@ -672,7 +694,7 @@ Default implementation of "convert" vmethod in <a class="link" href="gstreamer-l
<tr>
<td><p><span class="term"><em class="parameter"><code>src_format</code></em> :</span></p></td>
<td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_value</code></em> :</span></p></td>
@@ -681,7 +703,7 @@ Default implementation of "convert" vmethod in <a class="link" href="gstreamer-l
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_format</code></em> :</span></p></td>
<td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_value</code></em> :</span></p></td>
@@ -699,8 +721,8 @@ Default implementation of "convert" vmethod in <a class="link" href="gstreamer-l
<div class="refsect2">
<a name="gst-base-parse-add-index-entry"></a><h3>gst_base_parse_add_index_entry ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_base_parse_add_index_entry (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
- <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+ <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);</pre>
<p>
@@ -747,7 +769,9 @@ to the new entry, etc.
<a name="GstBaseParseFrame"></a><h3>GstBaseParseFrame</h3>
<pre class="programlisting">typedef struct {
GstBuffer * buffer;
+ GstBuffer * out_buffer;
guint flags;
+ guint64 offset;
gint overhead;
} GstBaseParseFrame;
</pre>
@@ -764,9 +788,12 @@ of each frame's processing, i.e. parsing virtual method invocation sequence.
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
-<td>data to check for valid frame or parsed frame.
-Subclass is allowed to replace this buffer.</td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
+<td>input data to be parsed for frames.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.out-buffer"></a>out_buffer</code></em>;</span></p></td>
+<td>(optional) (replacement) output data.</td>
</tr>
<tr>
<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstBaseParseFrame.flags"></a>flags</code></em>;</span></p></td>
@@ -775,6 +802,11 @@ convey additional context to subclass or allow subclass to tune
subsequent <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> actions.</td>
</tr>
<tr>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstBaseParseFrame.offset"></a>offset</code></em>;</span></p></td>
+<td>media specific offset of input frame
+Note that a converter may have a different one on the frame's buffer.</td>
+</tr>
+<tr>
<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstBaseParseFrame.overhead"></a>overhead</code></em>;</span></p></td>
<td>subclass can set this to indicates the metadata overhead
for the given frame, which is then used to enable more accurate bitrate
@@ -790,8 +822,11 @@ skipped in bitrate calculation.</td>
<a name="GstBaseParseFrameFlags"></a><h3>enum GstBaseParseFrameFlags</h3>
<pre class="programlisting">typedef enum {
GST_BASE_PARSE_FRAME_FLAG_NONE = 0,
- GST_BASE_PARSE_FRAME_FLAG_NO_FRAME = (1 &lt;&lt; 0),
- GST_BASE_PARSE_FRAME_FLAG_CLIP = (1 &lt;&lt; 1)
+ GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME = (1 &lt;&lt; 0),
+ GST_BASE_PARSE_FRAME_FLAG_NO_FRAME = (1 &lt;&lt; 1),
+ GST_BASE_PARSE_FRAME_FLAG_CLIP = (1 &lt;&lt; 2),
+ GST_BASE_PARSE_FRAME_FLAG_DROP = (1 &lt;&lt; 3),
+ GST_BASE_PARSE_FRAME_FLAG_QUEUE = (1 &lt;&lt; 4)
} GstBaseParseFrameFlags;
</pre>
<p>
@@ -806,6 +841,13 @@ Flags to be used in a <a class="link" href="gstreamer-libs-GstBaseParse.html#Gst
</td>
</tr>
<tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME</code></span></p></td>
+<td>set by baseclass if current frame
+ is passed for processing to the subclass for the first time
+ (and not set on subsequent calls with same data).
+</td>
+</tr>
+<tr>
<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_NO_FRAME</code></span></p></td>
<td>set to indicate this buffer should not be
counted as frame, e.g. if this frame is dependent on a previous one.
@@ -816,11 +858,24 @@ Flags to be used in a <a class="link" href="gstreamer-libs-GstBaseParse.html#Gst
<tr>
<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_CLIP</code></span></p></td>
<td>
-<em class="parameter"><code>pre_push_buffer</code></em> can set this to indicate
+<em class="parameter"><code>pre_push_frame</code></em> can set this to indicate
that regular segment clipping can still be performed (as opposed to
any custom one having been done).
</td>
</tr>
+<tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-DROP:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_DROP</code></span></p></td>
+<td>indicates to <em class="parameter"><code>finish_frame</code></em> that the
+ the frame should be dropped (and might be handled internall by subclass)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-QUEUE:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_QUEUE</code></span></p></td>
+<td>indicates to <em class="parameter"><code>finish_frame</code></em> that the
+ the frame should be queued for now and processed fully later
+ when the first non-queued frame is finished
+</td>
+</tr>
</tbody>
</table></div>
<p class="since">Since 0.10.33</p>
@@ -828,7 +883,7 @@ Flags to be used in a <a class="link" href="gstreamer-libs-GstBaseParse.html#Gst
<hr>
<div class="refsect2">
<a name="gst-base-parse-frame-new"></a><h3>gst_base_parse_frame_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);</pre>
<p>
@@ -841,7 +896,7 @@ then use <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-f
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
<tr>
@@ -857,8 +912,7 @@ Set to -1 to mark the entire frame as metadata. If in doubt, set to 0.</td>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a newly-allocated <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. Free with
-<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()"><code class="function">gst_base_parse_frame_free()</code></a> when no longer needed, unless you gave
-away ownership to <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()"><code class="function">gst_base_parse_push_frame()</code></a>.</td>
+<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()"><code class="function">gst_base_parse_frame_free()</code></a> when no longer needed.</td>
</tr>
</tbody>
</table></div>
@@ -893,13 +947,12 @@ allocated on the stack.
<hr>
<div class="refsect2">
<a name="gst-base-parse-push-frame"></a><h3>gst_base_parse_push_frame ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_base_parse_push_frame (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_base_parse_push_frame (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);</pre>
<p>
-Pushes the frame downstream, sends any pending events and
-does some timestamp and segment handling. Takes ownership
-of <em class="parameter"><code>frame</code></em> and will clear it (if it was initialised with
-<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" title="gst_base_parse_frame_init ()"><code class="function">gst_base_parse_frame_init()</code></a>) or free it.
+Pushes the frame's buffer downstream, sends any pending events and
+does some timestamp and segment handling. Takes ownership of
+frame's buffer, though caller retains ownership of <em class="parameter"><code>frame</code></em>.
</p>
<p>
This must be called with sinkpad STREAM_LOCK held.
@@ -914,12 +967,12 @@ This must be called with sinkpad STREAM_LOCK held.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
</tr>
</tbody>
</table></div>
@@ -961,25 +1014,14 @@ the parser is now processing the frames at the end of the stream)
<pre class="programlisting">#define GST_BASE_PARSE_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS
</pre>
<p>
-A <a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
-indicate that no output buffer was generated, or from pre_push_buffer to
+A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
+indicate that no output buffer was generated, or from pre_push_frame to
to forego pushing buffer.
</p>
<p class="since">Since 0.10.33</p>
</div>
<hr>
<div class="refsect2">
-<a name="GST-BASE-PARSE-FLOW-QUEUED:CAPS"></a><h3>GST_BASE_PARSE_FLOW_QUEUED</h3>
-<pre class="programlisting">#define GST_BASE_PARSE_FLOW_QUEUED GST_FLOW_CUSTOM_SUCCESS_1
-</pre>
-<p>
-A <a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse frame to indicate that
-the buffer will be queued to be pushed when the next OK
-</p>
-<p class="since">Since 0.10.33</p>
-</div>
-<hr>
-<div class="refsect2">
<a name="GST-BASE-PARSE-LOST-SYNC:CAPS"></a><h3>GST_BASE_PARSE_LOST_SYNC()</h3>
<pre class="programlisting">#define GST_BASE_PARSE_LOST_SYNC(parse) (!!(GST_BASE_PARSE_CAST(parse)-&gt;flags &amp; GST_BASE_PARSE_FLAG_LOST_SYNC))
</pre>
@@ -1001,7 +1043,7 @@ Obtains current sync status.
<pre class="programlisting">#define GST_BASE_PARSE_SINK_PAD(obj) (GST_BASE_PARSE_CAST (obj)-&gt;sinkpad)
</pre>
<p>
-Gives the pointer to the sink <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the sink <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1018,7 +1060,7 @@ Gives the pointer to the sink <a href="../gstreamer-0.11/GstPad.html"><span clas
<pre class="programlisting">#define GST_BASE_PARSE_SRC_PAD(obj) (GST_BASE_PARSE_CAST (obj)-&gt;srcpad)
</pre>
<p>
-Gives the pointer to the source <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">