| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>GstBaseTransform</title> |
| <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="GstBaseSink.html" title="GstBaseSink"> |
| <link rel="next" href="GstPushSrc.html" title="GstPushSrc"> |
| <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> |
| <tr valign="middle"> |
| <td><a accesskey="p" href="GstBaseSink.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 1.0 Library Reference Manual</th> |
| <td><a accesskey="n" href="GstPushSrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> |
| </tr> |
| <tr><td colspan="5" class="shortcuts"> |
| <a href="#GstBaseTransform.synopsis" class="shortcut">Top</a> |
| | |
| <a href="#GstBaseTransform.description" class="shortcut">Description</a> |
| | |
| <a href="#GstBaseTransform.object-hierarchy" class="shortcut">Object Hierarchy</a> |
| | |
| <a href="#GstBaseTransform.properties" class="shortcut">Properties</a> |
| </td></tr> |
| </table> |
| <div class="refentry"> |
| <a name="GstBaseTransform"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="GstBaseTransform.top_of_page"></a>GstBaseTransform</span></h2> |
| <p>GstBaseTransform — Base class for simple transform filters</p> |
| </td> |
| <td valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsynopsisdiv"> |
| <a name="GstBaseTransform.synopsis"></a><h2>Synopsis</h2> |
| <pre class="synopsis"> |
| #include <gst/base/gstbasetransform.h> |
| |
| struct <a class="link" href="GstBaseTransform.html#GstBaseTransform-struct" title="struct GstBaseTransform">GstBaseTransform</a>; |
| struct <a class="link" href="GstBaseTransform.html#GstBaseTransformClass" title="struct GstBaseTransformClass">GstBaseTransformClass</a>; |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstBaseTransform.html#gst-base-transform-is-passthrough" title="gst_base_transform_is_passthrough ()">gst_base_transform_is_passthrough</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-set-passthrough" title="gst_base_transform_set_passthrough ()">gst_base_transform_set_passthrough</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> passthrough</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="GstBaseTransform.html#gst-base-transform-is-in-place" title="gst_base_transform_is_in_place ()">gst_base_transform_is_in_place</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-set-in-place" title="gst_base_transform_set_in_place ()">gst_base_transform_set_in_place</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> in_place</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="GstBaseTransform.html#gst-base-transform-is-qos-enabled" title="gst_base_transform_is_qos_enabled ()">gst_base_transform_is_qos_enabled</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-set-qos-enabled" title="gst_base_transform_set_qos_enabled ()">gst_base_transform_set_qos_enabled</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> enabled</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-update-qos" title="gst_base_transform_update_qos ()">gst_base_transform_update_qos</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>, |
| <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>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-set-gap-aware" title="gst_base_transform_set_gap_aware ()">gst_base_transform_set_gap_aware</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> gap_aware</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstBaseTransform.html#gst-base-transform-get-allocator" title="gst_base_transform_get_allocator ()">gst_base_transform_get_allocator</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstAllocator.html"><span class="type">GstAllocator</span></a> **allocator</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>); |
| <a href="../gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> * <a class="link" href="GstBaseTransform.html#gst-base-transform-get-buffer-pool" title="gst_base_transform_get_buffer_pool ()">gst_base_transform_get_buffer_pool</a> (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>); |
| #define <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS" title="GST_BASE_TRANSFORM_SINK_NAME">GST_BASE_TRANSFORM_SINK_NAME</a> |
| #define <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS" title="GST_BASE_TRANSFORM_SRC_NAME">GST_BASE_TRANSFORM_SRC_NAME</a> |
| #define <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS" title="GST_BASE_TRANSFORM_SINK_PAD()">GST_BASE_TRANSFORM_SINK_PAD</a> (obj) |
| #define <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS" title="GST_BASE_TRANSFORM_SRC_PAD()">GST_BASE_TRANSFORM_SRC_PAD</a> (obj) |
| #define <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" title="GST_BASE_TRANSFORM_FLOW_DROPPED">GST_BASE_TRANSFORM_FLOW_DROPPED</a> |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.object-hierarchy"></a><h2>Object Hierarchy</h2> |
| <pre class="synopsis"> |
| <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> |
| +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> |
| +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a> |
| +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a> |
| +----GstBaseTransform |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.properties"></a><h2>Properties</h2> |
| <pre class="synopsis"> |
| "<a class="link" href="GstBaseTransform.html#GstBaseTransform--qos" title='The "qos" property'>qos</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.description"></a><h2>Description</h2> |
| <p> |
| This base class is for filter elements that process data. |
| </p> |
| <p> |
| It provides for: |
| </p> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem"><p>one sinkpad and one srcpad</p></li> |
| <li class="listitem"><p> |
| Possible formats on sink and source pad implemented |
| with custom transform_caps function. By default uses |
| same format on sink and source. |
| </p></li> |
| <li class="listitem"><p>Handles state changes</p></li> |
| <li class="listitem"><p>Does flushing</p></li> |
| <li class="listitem"><p>Push mode</p></li> |
| <li class="listitem"><p> |
| Pull mode if the sub-class transform can operate on arbitrary data |
| </p></li> |
| </ul></div> |
| <p> |
| </p> |
| <p> |
| </p> |
| <div class="refsect2"> |
| <a name="idp5388448"></a><h3>Use Cases</h3> |
| <p> |
| </p> |
| <div class="orderedlist"><ol class="orderedlist" type="1"> |
| <li class="listitem"> |
| <div class="itemizedlist"> |
| <p class="title"><b>Passthrough mode</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem"><p> |
| Element has no interest in modifying the buffer. It may want to inspect it, |
| in which case the element should have a transform_ip function. If there |
| is no transform_ip function in passthrough mode, the buffer is pushed |
| intact. |
| </p></li> |
| <li class="listitem"><p> |
| On the GstBaseTransformClass is the passthrough_on_same_caps variable |
| which will automatically set/unset passthrough based on whether the |
| element negotiates the same caps on both pads. |
| </p></li> |
| <li class="listitem"><p> |
| passthrough_on_same_caps on an element that doesn't implement a |
| transform_caps function is useful for elements that only inspect data |
| (such as level) |
| </p></li> |
| </ul> |
| </div> |
| <div class="itemizedlist"> |
| <p class="title"><b>Example elements</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem">Level</li> |
| <li class="listitem">Videoscale, audioconvert, videoconvert, audioresample in |
| certain modes.</li> |
| </ul> |
| </div> |
| </li> |
| <li class="listitem"> |
| <div class="itemizedlist"> |
| <p class="title"><b>Modifications in-place - input buffer and output buffer are the |
| same thing.</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem"><p> |
| The element must implement a transform_ip function. |
| </p></li> |
| <li class="listitem"><p> |
| Output buffer size must <= input buffer size |
| </p></li> |
| <li class="listitem"><p> |
| If the always_in_place flag is set, non-writable buffers will be copied |
| and passed to the transform_ip function, otherwise a new buffer will be |
| created and the transform function called. |
| </p></li> |
| <li class="listitem"><p> |
| Incoming writable buffers will be passed to the transform_ip function |
| immediately. </p></li> |
| <li class="listitem"><p> |
| only implementing transform_ip and not transform implies always_in_place |
| = TRUE |
| </p></li> |
| </ul> |
| </div> |
| <div class="itemizedlist"> |
| <p class="title"><b>Example elements</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem">Volume</li> |
| <li class="listitem">Audioconvert in certain modes (signed/unsigned |
| conversion)</li> |
| <li class="listitem">videoconvert in certain modes (endianness |
| swapping)</li> |
| </ul> |
| </div> |
| </li> |
| <li class="listitem"> |
| <div class="itemizedlist"> |
| <p class="title"><b>Modifications only to the caps/metadata of a buffer</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem"><p> |
| The element does not require writable data, but non-writable buffers |
| should be subbuffered so that the meta-information can be replaced. |
| </p></li> |
| <li class="listitem"><p> |
| Elements wishing to operate in this mode should replace the |
| prepare_output_buffer method to create subbuffers of the input buffer |
| and set always_in_place to TRUE |
| </p></li> |
| </ul> |
| </div> |
| <div class="itemizedlist"> |
| <p class="title"><b>Example elements</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem">Capsfilter when setting caps on outgoing buffers that have |
| none.</li> |
| <li class="listitem">identity when it is going to re-timestamp buffers by |
| datarate.</li> |
| </ul> |
| </div> |
| </li> |
| <li class="listitem"> |
| <div class="itemizedlist"> |
| <p class="title"><b>Normal mode</b></p> |
| <ul class="itemizedlist" type="disc"> |
| <li class="listitem"><p> |
| always_in_place flag is not set, or there is no transform_ip function |
| </p></li> |
| <li class="listitem"><p> |
| Element will receive an input buffer and output buffer to operate on. |
| </p></li> |
| <li class="listitem"><p> |
| Output buffer is allocated by calling the prepare_output_buffer function. |
| </p></li> |
| </ul> |
| </div> |
| <div class="itemizedlist"> |
| <p class="title"><b>Example elements</b></p> |
| <ul class="itemizedlist" type="disc"><li class="listitem">Videoscale, videoconvert, audioconvert when doing |
| scaling/conversions</li></ul> |
| </div> |
| </li> |
| <li class="listitem"> |
| <div class="itemizedlist"> |
| <p class="title"><b>Special output buffer allocations</b></p> |
| <ul class="itemizedlist" type="disc"><li class="listitem"><p> |
| Elements which need to do special allocation of their output buffers |
| other than what gst_buffer_pad_alloc allows should implement a |
| prepare_output_buffer method, which calls the parent implementation and |
| passes the newly allocated buffer. |
| </p></li></ul> |
| </div> |
| <div class="itemizedlist"> |
| <p class="title"><b>Example elements</b></p> |
| <ul class="itemizedlist" type="disc"><li class="listitem">efence</li></ul> |
| </div> |
| </li> |
| </ol></div> |
| <p> |
| </p> |
| </div> |
| <p> |
| </p> |
| <hr> |
| <div class="refsect2"> |
| <a name="idp6912544"></a><h3>Sub-class settable flags on GstBaseTransform</h3> |
| <p> |
| </p> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem"> |
| <p> |
| </p> |
| <div class="itemizedlist"> |
| <p class="title"><b>passthrough</b></p> |
| <ul class="itemizedlist" type="circle"> |
| <li class="listitem"><p> |
| Implies that in the current configuration, the sub-class is not |
| interested in modifying the buffers. |
| </p></li> |
| <li class="listitem"><p> |
| Elements which are always in passthrough mode whenever the same caps |
| has been negotiated on both pads can set the class variable |
| passthrough_on_same_caps to have this behaviour automatically. |
| </p></li> |
| </ul> |
| </div> |
| <p> |
| </p> |
| </li> |
| <li class="listitem"> |
| <p> |
| </p> |
| <div class="itemizedlist"> |
| <p class="title"><b>always_in_place</b></p> |
| <ul class="itemizedlist" type="circle"> |
| <li class="listitem"><p> |
| Determines whether a non-writable buffer will be copied before passing |
| to the transform_ip function. |
| </p></li> |
| <li class="listitem"><p> |
| Implied TRUE if no transform function is implemented. |
| </p></li> |
| <li class="listitem"><p> |
| Implied FALSE if ONLY transform function is implemented. |
| </p></li> |
| </ul> |
| </div> |
| <p> |
| </p> |
| </li> |
| </ul></div> |
| <p> |
| </p> |
| </div> |
| <p> |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.details"></a><h2>Details</h2> |
| <div class="refsect2"> |
| <a name="GstBaseTransform-struct"></a><h3>struct GstBaseTransform</h3> |
| <pre class="programlisting">struct GstBaseTransform;</pre> |
| <p> |
| The opaque <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> data structure. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstBaseTransformClass"></a><h3>struct GstBaseTransformClass</h3> |
| <pre class="programlisting">struct GstBaseTransformClass { |
| GstElementClass parent_class; |
| |
| gboolean passthrough_on_same_caps; |
| gboolean transform_ip_on_passthrough; |
| |
| /* virtual methods for subclasses */ |
| GstCaps* (*transform_caps) (GstBaseTransform *trans, |
| GstPadDirection direction, |
| GstCaps *caps, GstCaps *filter); |
| GstCaps* (*fixate_caps) (GstBaseTransform *trans, |
| GstPadDirection direction, GstCaps *caps, |
| GstCaps *othercaps); |
| gboolean (*accept_caps) (GstBaseTransform *trans, GstPadDirection direction, |
| GstCaps *caps); |
| gboolean (*set_caps) (GstBaseTransform *trans, GstCaps *incaps, |
| GstCaps *outcaps); |
| gboolean (*query) (GstBaseTransform *trans, GstPadDirection direction, |
| GstQuery *query); |
| |
| /* decide allocation query for output buffers */ |
| gboolean (*decide_allocation) (GstBaseTransform *trans, GstQuery *query); |
| gboolean (*filter_meta) (GstBaseTransform *trans, GstQuery *query, |
| GType api, const GstStructure *params); |
| |
| /* propose allocation query parameters for input buffers */ |
| gboolean (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query, |
| GstQuery *query); |
| |
| /* transform size */ |
| gboolean (*transform_size) (GstBaseTransform *trans, |
| GstPadDirection direction, |
| GstCaps *caps, gsize size, |
| GstCaps *othercaps, gsize *othersize); |
| |
| gboolean (*get_unit_size) (GstBaseTransform *trans, GstCaps *caps, |
| gsize *size); |
| |
| /* states */ |
| gboolean (*start) (GstBaseTransform *trans); |
| gboolean (*stop) (GstBaseTransform *trans); |
| |
| /* sink and src pad event handlers */ |
| gboolean (*sink_event) (GstBaseTransform *trans, GstEvent *event); |
| gboolean (*src_event) (GstBaseTransform *trans, GstEvent *event); |
| |
| GstFlowReturn (*prepare_output_buffer) (GstBaseTransform * trans, |
| GstBuffer *input, GstBuffer **outbuf); |
| |
| /* metadata */ |
| gboolean (*copy_metadata) (GstBaseTransform *trans, GstBuffer *input, |
| GstBuffer *outbuf); |
| gboolean (*transform_meta) (GstBaseTransform *trans, GstBuffer *outbuf, |
| GstMeta *meta, GstBuffer *inbuf); |
| |
| void (*before_transform) (GstBaseTransform *trans, GstBuffer *buffer); |
| |
| /* transform */ |
| GstFlowReturn (*transform) (GstBaseTransform *trans, GstBuffer *inbuf, |
| GstBuffer *outbuf); |
| GstFlowReturn (*transform_ip) (GstBaseTransform *trans, GstBuffer *buf); |
| }; |
| </pre> |
| <p> |
| Subclasses can override any of the available virtual methods or not, as |
| needed. At minimum either <em class="parameter"><code>transform</code></em> or <em class="parameter"><code>transform_ip</code></em> need to be overridden. |
| If the element can overwrite the input data with the results (data is of the |
| same type and quantity) it should provide <em class="parameter"><code>transform_ip</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <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="GstBaseTransformClass.parent-class"></a>parent_class</code></em>;</span></p></td> |
| <td>Element parent class</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.passthrough-on-same-caps"></a>passthrough_on_same_caps</code></em>;</span></p></td> |
| <td>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, passthrough mode will be |
| automatically enabled if the caps are the same. |
| Set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> by default.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.transform-ip-on-passthrough"></a>transform_ip_on_passthrough</code></em>;</span></p></td> |
| <td>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, <em class="parameter"><code>transform_ip</code></em> will be called in |
| passthrough mode. The passed buffer might not be |
| writable. When <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, neither <em class="parameter"><code>transform</code></em> nor |
| <em class="parameter"><code>transform_ip</code></em> will be called in passthrough mode. |
| Set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> by default.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-caps"></a>transform_caps</code></em> ()</span></p></td> |
| <td>Optional. Given the pad in this direction and the given |
| caps, what caps are allowed on the other pad in this |
| element ?</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.fixate-caps"></a>fixate_caps</code></em> ()</span></p></td> |
| <td>Optional. Given the pad in this direction and the given |
| caps, fixate the caps on the other pad. The function takes |
| ownership of <em class="parameter"><code>othercaps</code></em> and returns a fixated version of |
| <em class="parameter"><code>othercaps</code></em>. <em class="parameter"><code>othercaps</code></em> is not guaranteed to be writable.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.accept-caps"></a>accept_caps</code></em> ()</span></p></td> |
| <td>Optional. |
| Subclasses can override this method to check if <em class="parameter"><code>caps</code></em> can be |
| handled by the element. The default implementation might not be |
| the most optimal way to check this in all cases.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.set-caps"></a>set_caps</code></em> ()</span></p></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="GstBaseTransformClass.query"></a>query</code></em> ()</span></p></td> |
| <td>Optional. |
| Handle a requested query. Subclasses that implement this |
| should must chain up to the parent if they didn't handle the |
| query</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.decide-allocation"></a>decide_allocation</code></em> ()</span></p></td> |
| <td>Setup the allocation parameters for allocating output |
| buffers. The passed in query contains the result of the |
| downstream allocation query. This function is only called |
| when not operating in passthrough mode. The default |
| implementation will remove all memory dependent metadata. |
| If there is ia <em class="parameter"><code>filter_meta</code></em> method implementation, it will |
| be called for all metadata API in the downstream query, |
| otherwise the metadata API is removed.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.filter-meta"></a>filter_meta</code></em> ()</span></p></td> |
| <td>Return TRUE if the metadata API should be proposed in the |
| upstream allocation query. The default implementation is NULL |
| and will cause all metadata to be removed.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.propose-allocation"></a>propose_allocation</code></em> ()</span></p></td> |
| <td>Propose buffer allocation parameters for upstream elements. |
| This function must be implemented if the element reads or |
| writes the buffer content. The query that was passed to |
| the decide_allocation is passed in this method (or NULL |
| when the element is in passthrough mode). The default |
| implementation will pass the query downstream when in |
| passthrough mode and will copy all the filtered metadata |
| API in non-passthrough mode.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-size"></a>transform_size</code></em> ()</span></p></td> |
| <td>Optional. Given the size of a buffer in the given direction |
| with the given caps, calculate the size in bytes of a buffer |
| on the other pad with the given other caps. |
| The default implementation uses get_unit_size and keeps |
| the number of units the same.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.get-unit-size"></a>get_unit_size</code></em> ()</span></p></td> |
| <td>Required if the transform is not in-place. |
| get the size in bytes of one unit for the given caps.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.start"></a>start</code></em> ()</span></p></td> |
| <td>Optional. |
| Called when the element starts processing. |
| Allows opening external resources.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.stop"></a>stop</code></em> ()</span></p></td> |
| <td>Optional. |
| Called when the element stops processing. |
| Allows closing external resources.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.sink-event"></a>sink_event</code></em> ()</span></p></td> |
| <td>Optional. |
| Event handler on the sink pad. The default implementation |
| handles the event and forwards it downstream.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.src-event"></a>src_event</code></em> ()</span></p></td> |
| <td>Optional. |
| Event handler on the source pad. The default implementation |
| handles the event and forwards it upstream.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.prepare-output-buffer"></a>prepare_output_buffer</code></em> ()</span></p></td> |
| <td>Optional. |
| Subclasses can override this to do their own |
| allocation of output buffers. Elements that only do |
| analysis can return a subbuffer or even just |
| return a reference to the input buffer (if in |
| passthrough mode). The default implementation will |
| use the negotiated allocator or bufferpool and |
| transform_size to allocate an output buffer or it |
| will return the input buffer in passthrough mode.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.copy-metadata"></a>copy_metadata</code></em> ()</span></p></td> |
| <td>Optional. |
| Copy the metadata from the input buffer to the output buffer. |
| The default implementation will copy the flags, timestamps and |
| offsets of the buffer.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-meta"></a>transform_meta</code></em> ()</span></p></td> |
| <td>Optional. Transform the metadata on the input buffer to the |
| output buffer. By default this method is NULL and no |
| metadata is copied. subclasses can implement this method and |
| return TRUE if the metadata is to be copied.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.before-transform"></a>before_transform</code></em> ()</span></p></td> |
| <td>Optional. |
| This method is called right before the base class will |
| start processing. Dynamic properties or other delayed |
| configuration could be performed in this method.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform"></a>transform</code></em> ()</span></p></td> |
| <td>Required if the element does not operate in-place. |
| Transforms one incoming buffer to one outgoing buffer. |
| The function is allowed to change size/timestamp/duration |
| of the outgoing buffer.</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-ip"></a>transform_ip</code></em> ()</span></p></td> |
| <td>Required if the element operates in-place. |
| Transform the incoming buffer in-place.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-is-passthrough"></a><h3>gst_base_transform_is_passthrough ()</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_transform_is_passthrough (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre> |
| <p> |
| See if <em class="parameter"><code>trans</code></em> is configured as a passthrough transform. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> to query</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>TRUE is the transform is configured in passthrough mode. |
| MT safe.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-set-passthrough"></a><h3>gst_base_transform_set_passthrough ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_set_passthrough (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> passthrough</code></em>);</pre> |
| <p> |
| Set passthrough mode for this filter by default. This is mostly |
| useful for filters that do not care about negotiation. |
| </p> |
| <p> |
| Always TRUE for filters which don't implement either a transform |
| or transform_ip method. |
| </p> |
| <p> |
| MT safe. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> to set</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>passthrough</code></em> :</span></p></td> |
| <td>boolean indicating passthrough mode.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-is-in-place"></a><h3>gst_base_transform_is_in_place ()</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_transform_is_in_place (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre> |
| <p> |
| See if <em class="parameter"><code>trans</code></em> is configured as a in_place transform. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> to query</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>TRUE is the transform is configured in in_place mode. |
| MT safe.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-set-in-place"></a><h3>gst_base_transform_set_in_place ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_set_in_place (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> in_place</code></em>);</pre> |
| <p> |
| Determines whether a non-writable buffer will be copied before passing |
| to the transform_ip function. |
| </p> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem">Always TRUE if no transform function is implemented.</li> |
| <li class="listitem">Always FALSE if ONLY transform function is implemented.</li> |
| </ul></div> |
| <p> |
| </p> |
| <p> |
| MT safe. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> to modify</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>in_place</code></em> :</span></p></td> |
| <td>Boolean value indicating that we would like to operate |
| on in_place buffers.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-is-qos-enabled"></a><h3>gst_base_transform_is_qos_enabled ()</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_transform_is_qos_enabled (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre> |
| <p> |
| Queries if the transform will handle QoS. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>TRUE if QoS is enabled. |
| MT safe.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-set-qos-enabled"></a><h3>gst_base_transform_set_qos_enabled ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_set_qos_enabled (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> enabled</code></em>);</pre> |
| <p> |
| Enable or disable QoS handling in the transform. |
| </p> |
| <p> |
| MT safe. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td> |
| <td>new state</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-update-qos"></a><h3>gst_base_transform_update_qos ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_update_qos (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>, |
| <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>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre> |
| <p> |
| Set the QoS parameters in the transform. This function is called internally |
| when a QOS event is received but subclasses can provide custom information |
| when needed. |
| </p> |
| <p> |
| MT safe. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>proportion</code></em> :</span></p></td> |
| <td>the proportion</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>diff</code></em> :</span></p></td> |
| <td>the diff against the clock</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td> |
| <td>the timestamp of the buffer generating the QoS expressed in |
| running_time.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-set-gap-aware"></a><h3>gst_base_transform_set_gap_aware ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_set_gap_aware (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</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> gap_aware</code></em>);</pre> |
| <p> |
| If <em class="parameter"><code>gap_aware</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (the default), output buffers will have the |
| <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"><code class="literal">GST_BUFFER_FLAG_GAP</code></a> flag unset. |
| </p> |
| <p> |
| If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the element must handle output buffers with this flag set |
| correctly, i.e. it can assume that the buffer contains neutral data but must |
| unset the flag if the output is no neutral data. |
| </p> |
| <p> |
| MT safe. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>gap_aware</code></em> :</span></p></td> |
| <td>New state</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-get-allocator"></a><h3>gst_base_transform_get_allocator ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_base_transform_get_allocator (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstAllocator.html"><span class="type">GstAllocator</span></a> **allocator</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-1.0/GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre> |
| <p> |
| Lets <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em> |
| used by the base class and its <em class="parameter"><code>params</code></em>. |
| </p> |
| <p> |
| Unref the <em class="parameter"><code>allocator</code></em> after use it. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td> |
| <td>the <a href="../gstreamer-1.0/GstAllocator.html"><span class="type">GstAllocator</span></a> |
| used. <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>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td> |
| <td>the |
| <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>. <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>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-base-transform-get-buffer-pool"></a><h3>gst_base_transform_get_buffer_pool ()</h3> |
| <pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> * gst_base_transform_get_buffer_pool (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td> |
| <td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the instance of the <a href="../gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPool"><span class="type">GstBufferPool</span></a> used |
| by <em class="parameter"><code>trans</code></em>; free it after use it. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-BASE-TRANSFORM-SINK-NAME:CAPS"></a><h3>GST_BASE_TRANSFORM_SINK_NAME</h3> |
| <pre class="programlisting">#define GST_BASE_TRANSFORM_SINK_NAME "sink" |
| </pre> |
| <p> |
| The name of the templates for the sink pad. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-BASE-TRANSFORM-SRC-NAME:CAPS"></a><h3>GST_BASE_TRANSFORM_SRC_NAME</h3> |
| <pre class="programlisting">#define GST_BASE_TRANSFORM_SRC_NAME "src" |
| </pre> |
| <p> |
| The name of the templates for the source pad. |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-BASE-TRANSFORM-SINK-PAD:CAPS"></a><h3>GST_BASE_TRANSFORM_SINK_PAD()</h3> |
| <pre class="programlisting">#define GST_BASE_TRANSFORM_SINK_PAD(obj) (GST_BASE_TRANSFORM_CAST (obj)->sinkpad) |
| </pre> |
| <p> |
| 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"> |
| <tbody><tr> |
| <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td> |
| <td>base transform instance</td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-BASE-TRANSFORM-SRC-PAD:CAPS"></a><h3>GST_BASE_TRANSFORM_SRC_PAD()</h3> |
| <pre class="programlisting">#define GST_BASE_TRANSFORM_SRC_PAD(obj) (GST_BASE_TRANSFORM_CAST (obj)->srcpad) |
| </pre> |
| <p> |
| 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"> |
| <tbody><tr> |
| <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td> |
| <td>base transform instance</td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS"></a><h3>GST_BASE_TRANSFORM_FLOW_DROPPED</h3> |
| <pre class="programlisting">#define GST_BASE_TRANSFORM_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS |
| </pre> |
| <p> |
| A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from transform and transform_ip to |
| indicate that no output buffer was generated. |
| </p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.property-details"></a><h2>Property Details</h2> |
| <div class="refsect2"> |
| <a name="GstBaseTransform--qos"></a><h3>The <code class="literal">"qos"</code> property</h3> |
| <pre class="programlisting"> "qos" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> |
| <p>Handle Quality-of-Service events.</p> |
| <p>Default value: FALSE</p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="GstBaseTransform.see-also"></a><h2>See Also</h2> |
| <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a>, <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr> |
| Generated by GTK-Doc V1.18</div> |
| </body> |
| </html> |