Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > c918544921e88c4bd8b7047de18a345b > files > 3

gstreamer0.10-plugins-bad-doc-0.10.14-5mdv2010.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstBaseMetadata</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GStreamer Bad Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch03.html" title="gst-plugins-bad Classes">
<link rel="prev" href="ch03.html" title="gst-plugins-bad Classes">
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="ch01.html" title="gst-plugins-bad Elements">
<link rel="chapter" href="ch02.html" title="gst-plugins-bad Plugins">
<link rel="chapter" href="ch03.html" title="gst-plugins-bad Classes">
</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="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch03.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 Bad Plugins 0.10 Plugins Reference Manual</th>
<td> </td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#GstBaseMetadata.synopsis" class="shortcut">Top</a>
                 | 
                <a href="#GstBaseMetadata.description" class="shortcut">Description</a>
                 | 
                <a href="#GstBaseMetadata.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry" title="GstBaseMetadata">
<a name="GstBaseMetadata"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstBaseMetadata.top_of_page"></a>GstBaseMetadata</span></h2>
<p>GstBaseMetadata — Base class for metadata handling elements</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="GstBaseMetadata.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
                    <a class="link" href="GstBaseMetadata.html#GstBaseMetadata-struct" title="GstBaseMetadata">GstBaseMetadata</a>;
#define             <a class="link" href="GstBaseMetadata.html#GST-BASE-METADATA-SINK-PAD--CAPS" title="GST_BASE_METADATA_SINK_PAD()">GST_BASE_METADATA_SINK_PAD</a>          (obj)
#define             <a class="link" href="GstBaseMetadata.html#GST-BASE-METADATA-SRC-PAD--CAPS" title="GST_BASE_METADATA_SRC_PAD()">GST_BASE_METADATA_SRC_PAD</a>           (obj)
MetaOptions         <a class="link" href="GstBaseMetadata.html#gst-base-metadata-get-option-flag" title="gst_base_metadata_get_option_flag ()">gst_base_metadata_get_option_flag</a>   (const <a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base);
void                <a class="link" href="GstBaseMetadata.html#gst-base-metadata-set-option-flag" title="gst_base_metadata_set_option_flag ()">gst_base_metadata_set_option_flag</a>   (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         const MetaOptions options);
void                <a class="link" href="GstBaseMetadata.html#gst-base-metadata-unset-option-flag" title="gst_base_metadata_unset_option_flag ()">gst_base_metadata_unset_option_flag</a> (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         const MetaOptions options);
void                <a class="link" href="GstBaseMetadata.html#gst-base-metadata-update-inject-segment-with-new-data" title="gst_base_metadata_update_inject_segment_with_new_data ()">gst_base_metadata_update_inject_segment_with_new_data</a>
                                                        (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"
>guint8</a> **data,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"
>guint32</a> *size,
                                                         MetadataChunkType type);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="GstBaseMetadata.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a
href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>
   +----<a
href="/usr/share/gtk-doc/html/gstreamer-0.10/GstObject.html"
>GstObject</a>
         +----<a
href="/usr/share/gtk-doc/html/gstreamer-0.10/GstElement.html"
>GstElement</a>
               +----GstBaseMetadata
                     +----<a class="link" href="gst-plugins-bad-plugins-metadatademux.html#GstMetadataDemux">GstMetadataDemux</a>
                     +----<a class="link" href="gst-plugins-bad-plugins-metadatamux.html#GstMetadataMux">GstMetadataMux</a>
</pre>
</div>
<div class="refsect1" title="Description">
<a name="GstBaseMetadata.description"></a><h2>Description</h2>
<p>
This is a generice base class for metadata handling elements. The following
types of elements are supported:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>parsers (only parse data)</p></li>
<li class="listitem"><p>demuxers (parse data and remove metadata chunks)</p></li>
<li class="listitem"><p>muxers</p></li>
<li class="listitem"><p>any other kind of element that wants to handle chunks in
    file formats based on chunks</p></li>
</ul></div>
<p>
</p>
<p>
</p>
<div class="refsect2">
<a name="id536643"></a><p>
This a abstract element that parses a stream and find chunks and offset
where new chunks could be injected into it.
Basically, the only thing need by implementors (parsers, (de)muxers) is to
set virtual methods that will be used to setup the caps and do some
'processing', which is called after the stream is completely parsed and
before the first buffer is sent to the next element. Usualy the 'processing'
function will send tags messages and event in case of parsers and demuxers,
and add chunks to be injected (using the helper function
<a class="link" href="GstBaseMetadata.html#gst-base-metadata-update-inject-segment-with-new-data" title="gst_base_metadata_update_inject_segment_with_new_data ()"><span class="type">gst_base_metadata_update_inject_segment_with_new_data</span></a> in case of muxers.
</p>
<p>
This can work in 'pull' and 'push' scheduling modes. In case of push mode,
the stream will be parsed during sink activation if <a
href="/usr/share/gtk-doc/html/gstreamer-0.10/GstPad.html#gst-pad-get-range"
><span class="type">gst_pad_get_range</span></a> is
available on upstream element. If get_range function is not available
upstream, then the data will be hold until the stream is completly parsed,
and then after that the fisrt buffer will be pushed downstream. The same
happens with pull mode, if the downstream element calls gst_pad_get_range
it will only gets data after the stream has been completely parsed.
</p>
<p>
Seek, and query duration will only be available after the stream has been
parsed. Query position will always be 0 (zero) before the stream is
completely parsed.
</p>
<p>
Currently there is implementation for JPEG and PNG (demux mode only)
stream types and EXIF, IPTC and XMP metadatas.
</p>
</div>
<p>
</p>
<p>
Last reviewed on 2008-01-21 (0.10.15)</p>
<p>
</p>
</div>
<div class="refsect1" title="Details">
<a name="GstBaseMetadata.details"></a><h2>Details</h2>
<div class="refsect2" title="GstBaseMetadata">
<a name="GstBaseMetadata-struct"></a><h3>GstBaseMetadata</h3>
<pre class="programlisting">typedef struct _GstBaseMetadata GstBaseMetadata;</pre>
<p>
The opaque <a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata"><span class="type">GstBaseMetadata</span></a> data structure.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="GST_BASE_METADATA_SINK_PAD()">
<a name="GST-BASE-METADATA-SINK-PAD--CAPS"></a><h3>GST_BASE_METADATA_SINK_PAD()</h3>
<pre class="programlisting">#define GST_BASE_METADATA_SINK_PAD(obj) (GST_BASE_METADATA_CAST (obj)-&gt;sinkpad)
</pre>
<p>
</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>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="GST_BASE_METADATA_SRC_PAD()">
<a name="GST-BASE-METADATA-SRC-PAD--CAPS"></a><h3>GST_BASE_METADATA_SRC_PAD()</h3>
<pre class="programlisting">#define GST_BASE_METADATA_SRC_PAD(obj) (GST_BASE_METADATA_CAST (obj)-&gt;srcpad)
</pre>
<p>
</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>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="gst_base_metadata_get_option_flag ()">
<a name="gst-base-metadata-get-option-flag"></a><h3>gst_base_metadata_get_option_flag ()</h3>
<pre class="programlisting">MetaOptions         gst_base_metadata_get_option_flag   (const <a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base);</pre>
<p>
Check how the this base class will behaviour. As a demuxer or muxer.
Hanlding EXIF, IPTC, XMP or not.
<em class="parameter"><code>see_also</code></em>: <a class="link" href="GstBaseMetadata.html#gst-base-metadata-set-option-flag" title="gst_base_metadata_set_option_flag ()"><span class="type">gst_base_metadata_set_option_flag</span></a>
<a class="link" href="GstBaseMetadata.html#gst-base-metadata-unset-option-flag" title="gst_base_metadata_unset_option_flag ()"><span class="type">gst_base_metadata_unset_option_flag</span></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>base</code></em> :</span></p></td>
<td> the base metadata instance
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The current mode of operation
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="gst_base_metadata_set_option_flag ()">
<a name="gst-base-metadata-set-option-flag"></a><h3>gst_base_metadata_set_option_flag ()</h3>
<pre class="programlisting">void                gst_base_metadata_set_option_flag   (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         const MetaOptions options);</pre>
<p>
Set how the this base class will behaviour. As a demuxer or muxer. Hanlding
EXIF, IPTC, XMP or not.
<em class="parameter"><code>see_also</code></em>: <a class="link" href="GstBaseMetadata.html#gst-base-metadata-unset-option-flag" title="gst_base_metadata_unset_option_flag ()"><span class="type">gst_base_metadata_unset_option_flag</span></a>
<a class="link" href="GstBaseMetadata.html#gst-base-metadata-get-option-flag" title="gst_base_metadata_get_option_flag ()"><span class="type">gst_base_metadata_get_option_flag</span></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>base</code></em> :</span></p></td>
<td> the base metadata instance
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
<td> mode of operation
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="gst_base_metadata_unset_option_flag ()">
<a name="gst-base-metadata-unset-option-flag"></a><h3>gst_base_metadata_unset_option_flag ()</h3>
<pre class="programlisting">void                gst_base_metadata_unset_option_flag (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         const MetaOptions options);</pre>
<p>
Set how the this base class will behaviour. As a demuxer or muxer. Hanlding
EXIF, IPTC, XMP or not.
<em class="parameter"><code>see_also</code></em>: <a class="link" href="GstBaseMetadata.html#gst-base-metadata-set-option-flag" title="gst_base_metadata_set_option_flag ()"><span class="type">gst_base_metadata_set_option_flag</span></a>
<a class="link" href="GstBaseMetadata.html#gst-base-metadata-get-option-flag" title="gst_base_metadata_get_option_flag ()"><span class="type">gst_base_metadata_get_option_flag</span></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>base</code></em> :</span></p></td>
<td> the base metadata instance
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
<td> mode of operation
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="gst_base_metadata_update_inject_segment_with_new_data ()">
<a name="gst-base-metadata-update-inject-segment-with-new-data"></a><h3>gst_base_metadata_update_inject_segment_with_new_data ()</h3>
<pre class="programlisting">void                gst_base_metadata_update_inject_segment_with_new_data
                                                        (<a class="link" href="GstBaseMetadata.html" title="GstBaseMetadata">GstBaseMetadata</a> *base,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"
>guint8</a> **data,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"
>guint32</a> *size,
                                                         MetadataChunkType type);</pre>
<p>
If the file type specification of the parsed stream allows a chunk of <em class="parameter"><code>type</code></em>,
set the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> of the segment to be injected. This the <em class="parameter"><code>data</code></em> has
been injected (metadata type supported by the stream <em class="parameter"><code>type</code></em>) then, the
the <em class="parameter"><code>data</code></em> ownership will be taken and <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> willl be set to 0;
Hanlding EXIF, IPTC, XMP or not.
<em class="parameter"><code>see_also</code></em>: <span class="type">gst_base_metadata_calculate_offsets</span></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>base</code></em> :</span></p></td>
<td> the base metadata instance
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td> new data to be injected
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
<td> the size in bytes of <em class="parameter"><code>data</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td> kind of metadata chunk it is (currently EXIF, IPTC or XMP)
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.11</div>
</body>
</html>