blob: 474298a1ea994e11731ffa869ad4aeb4de85afa5 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstElement: GStreamer 1.0 Core Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
<link rel="prev" href="GstDateTime.html" title="GstDateTime">
<link rel="next" href="GstElementFactory.html" title="GstElementFactory">
<meta name="generator" content="GTK-Doc V1.25 (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="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#GstElement.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#GstElement.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_derived_interfaces">  <span class="dim">|</span> 
<a href="#GstElement.derived-interfaces" class="shortcut">Known Derived Interfaces</a></span><span id="nav_signals">  <span class="dim">|</span> 
<a href="#GstElement.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GstDateTime.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GstElementFactory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstElement"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstElement.top_of_page"></a>GstElement</span></h2>
<p>GstElement — Abstract base class for all pipeline elements</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstElement.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE:CAPS" title="GST_STATE()">GST_STATE</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-GET-NEXT:CAPS" title="GST_STATE_GET_NEXT()">GST_STATE_GET_NEXT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-NEXT:CAPS" title="GST_STATE_NEXT()">GST_STATE_NEXT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-PENDING:CAPS" title="GST_STATE_PENDING()">GST_STATE_PENDING</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-RETURN:CAPS" title="GST_STATE_RETURN()">GST_STATE_RETURN</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-TARGET:CAPS" title="GST_STATE_TARGET()">GST_STATE_TARGET</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-TRANSITION:CAPS" title="GST_STATE_TRANSITION()">GST_STATE_TRANSITION</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-TRANSITION-CURRENT:CAPS" title="GST_STATE_TRANSITION_CURRENT()">GST_STATE_TRANSITION_CURRENT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-TRANSITION-NEXT:CAPS" title="GST_STATE_TRANSITION_NEXT()">GST_STATE_TRANSITION_NEXT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-GET-LOCK:CAPS" title="GST_STATE_GET_LOCK()">GST_STATE_GET_LOCK</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-STATE-GET-COND:CAPS" title="GST_STATE_GET_COND()">GST_STATE_GET_COND</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-NAME:CAPS" title="GST_ELEMENT_NAME()">GST_ELEMENT_NAME</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-PARENT:CAPS" title="GST_ELEMENT_PARENT()">GST_ELEMENT_PARENT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-BUS:CAPS" title="GST_ELEMENT_BUS()">GST_ELEMENT_BUS</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-CLOCK:CAPS" title="GST_ELEMENT_CLOCK()">GST_ELEMENT_CLOCK</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-PADS:CAPS" title="GST_ELEMENT_PADS()">GST_ELEMENT_PADS</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-START-TIME:CAPS" title="GST_ELEMENT_START_TIME()">GST_ELEMENT_START_TIME</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-ERROR:CAPS" title="GST_ELEMENT_ERROR()">GST_ELEMENT_ERROR</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-ERROR-WITH-DETAILS:CAPS" title="GST_ELEMENT_ERROR_WITH_DETAILS()">GST_ELEMENT_ERROR_WITH_DETAILS</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-FLOW-ERROR:CAPS" title="GST_ELEMENT_FLOW_ERROR()">GST_ELEMENT_FLOW_ERROR</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-WARNING:CAPS" title="GST_ELEMENT_WARNING()">GST_ELEMENT_WARNING</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-WARNING-WITH-DETAILS:CAPS" title="GST_ELEMENT_WARNING_WITH_DETAILS()">GST_ELEMENT_WARNING_WITH_DETAILS</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-INFO:CAPS" title="GST_ELEMENT_INFO()">GST_ELEMENT_INFO</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-INFO-WITH-DETAILS:CAPS" title="GST_ELEMENT_INFO_WITH_DETAILS()">GST_ELEMENT_INFO_WITH_DETAILS</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS" title="GST_ELEMENT_IS_LOCKED_STATE()">GST_ELEMENT_IS_LOCKED_STATE</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-add-pad-template" title="gst_element_class_add_pad_template ()">gst_element_class_add_pad_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-add-static-pad-template" title="gst_element_class_add_static_pad_template ()">gst_element_class_add_static_pad_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-get-pad-template" title="gst_element_class_get_pad_template ()">gst_element_class_get_pad_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-get-pad-template-list" title="gst_element_class_get_pad_template_list ()">gst_element_class_get_pad_template_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()">gst_element_class_set_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-set-static-metadata" title="gst_element_class_set_static_metadata ()">gst_element_class_set_static_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-add-metadata" title="gst_element_class_add_metadata ()">gst_element_class_add_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-add-static-metadata" title="gst_element_class_add_static_metadata ()">gst_element_class_add_static_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()">gst_element_add_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-create-all-pads" title="gst_element_create_all_pads ()">gst_element_create_all_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-compatible-pad" title="gst_element_get_compatible_pad ()">gst_element_get_compatible_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-compatible-pad-template" title="gst_element_get_compatible_pad_template ()">gst_element_get_compatible_pad_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()">gst_element_get_request_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()">gst_element_get_static_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()">gst_element_request_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-no-more-pads" title="gst_element_no_more_pads ()">gst_element_no_more_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()">gst_element_release_request_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-remove-pad" title="gst_element_remove_pad ()">gst_element_remove_pad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-iterate-pads" title="gst_element_iterate_pads ()">gst_element_iterate_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-iterate-sink-pads" title="gst_element_iterate_sink_pads ()">gst_element_iterate_sink_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-iterate-src-pads" title="gst_element_iterate_src_pads ()">gst_element_iterate_src_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()">gst_element_link</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-unlink" title="gst_element_unlink ()">gst_element_unlink</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link-many" title="gst_element_link_many ()">gst_element_link_many</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-unlink-many" title="gst_element_unlink_many ()">gst_element_unlink_many</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link-pads" title="gst_element_link_pads ()">gst_element_link_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link-pads-full" title="gst_element_link_pads_full ()">gst_element_link_pads_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-unlink-pads" title="gst_element_unlink_pads ()">gst_element_unlink_pads</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link-pads-filtered" title="gst_element_link_pads_filtered ()">gst_element_link_pads_filtered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-link-filtered" title="gst_element_link_filtered ()">gst_element_link_filtered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-class-get-metadata" title="gst_element_class_get_metadata ()">gst_element_class_get_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-base-time" title="gst_element_set_base_time ()">gst_element_set_base_time</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-base-time" title="gst_element_get_base_time ()">gst_element_get_base_time</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-start-time" title="gst_element_set_start_time ()">gst_element_set_start_time</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-start-time" title="gst_element_get_start_time ()">gst_element_get_start_time</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-bus" title="gst_element_set_bus ()">gst_element_set_bus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-bus" title="gst_element_get_bus ()">gst_element_get_bus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-context" title="gst_element_set_context ()">gst_element_set_context</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-context" title="gst_element_get_context ()">gst_element_get_context</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-context-unlocked" title="gst_element_get_context_unlocked ()">gst_element_get_context_unlocked</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-contexts" title="gst_element_get_contexts ()">gst_element_get_contexts</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="returnvalue">GstElementFactory</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-factory" title="gst_element_get_factory ()">gst_element_get_factory</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()">gst_element_set_name</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()">gst_element_get_name</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-parent" title="gst_element_set_parent()">gst_element_set_parent</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-parent" title="gst_element_get_parent()">gst_element_get_parent</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()">gst_element_set_clock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()">gst_element_get_clock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()">gst_element_provide_clock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()">gst_element_set_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()">gst_element_get_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-set-locked-state" title="gst_element_set_locked_state ()">gst_element_set_locked_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-is-locked-state" title="gst_element_is_locked_state ()">gst_element_is_locked_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-abort-state" title="gst_element_abort_state ()">gst_element_abort_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-continue-state" title="gst_element_continue_state ()">gst_element_continue_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-lost-state" title="gst_element_lost_state ()">gst_element_lost_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-state-get-name" title="gst_element_state_get_name ()">gst_element_state_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-state-change-return-get-name" title="gst_element_state_change_return_get_name ()">gst_element_state_change_return_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()">gst_element_sync_state_with_parent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-change-state" title="gst_element_change_state ()">gst_element_change_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-message-full" title="gst_element_message_full ()">gst_element_message_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-message-full-with-details" title="gst_element_message_full_with_details ()">gst_element_message_full_with_details</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-make-element-message-details" title="gst_make_element_message_details ()">gst_make_element_message_details</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()">gst_element_post_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()">gst_element_query</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-query-convert" title="gst_element_query_convert ()">gst_element_query_convert</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-query-position" title="gst_element_query_position ()">gst_element_query_position</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-query-duration" title="gst_element_query_duration ()">gst_element_query_duration</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()">gst_element_send_event</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-seek-simple" title="gst_element_seek_simple ()">gst_element_seek_simple</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()">gst_element_seek</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-add-property-notify-watch" title="gst_element_add_property_notify_watch ()">gst_element_add_property_notify_watch</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-add-property-deep-notify-watch" title="gst_element_add_property_deep_notify_watch ()">gst_element_add_property_deep_notify_watch</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-remove-property-notify-watch" title="gst_element_remove_property_notify_watch ()">gst_element_remove_property_notify_watch</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GstElement.html#GstElementCallAsyncFunc" title="GstElementCallAsyncFunc ()">*GstElementCallAsyncFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstElement.html#gst-element-call-async" title="gst_element_call_async ()">gst_element_call_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstElement.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signals_return">
<col width="300px" class="signals_name">
<col width="200px" class="signals_flags">
</colgroup>
<tbody>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GstElement.html#GstElement-no-more-pads" title="The “no-more-pads” signal">no-more-pads</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GstElement.html#GstElement-pad-added" title="The “pad-added” signal">pad-added</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GstElement.html#GstElement-pad-removed" title="The “pad-removed” signal">pad-removed</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstElement.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstElement.html#GstElement-struct" title="struct GstElement">GstElement</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass">GstElementClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstElement.html#GstElementFlags" title="enum GstElementFlags">GstElementFlags</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstElement.html#GstState" title="enum GstState">GstState</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange">GstStateChange</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn">GstStateChangeReturn</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-AUTHOR:CAPS" title="GST_ELEMENT_METADATA_AUTHOR">GST_ELEMENT_METADATA_AUTHOR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-DESCRIPTION:CAPS" title="GST_ELEMENT_METADATA_DESCRIPTION">GST_ELEMENT_METADATA_DESCRIPTION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-DOC-URI:CAPS" title="GST_ELEMENT_METADATA_DOC_URI">GST_ELEMENT_METADATA_DOC_URI</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-ICON-NAME:CAPS" title="GST_ELEMENT_METADATA_ICON_NAME">GST_ELEMENT_METADATA_ICON_NAME</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-KLASS:CAPS" title="GST_ELEMENT_METADATA_KLASS">GST_ELEMENT_METADATA_KLASS</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstElement.html#GST-ELEMENT-METADATA-LONGNAME:CAPS" title="GST_ELEMENT_METADATA_LONGNAME">GST_ELEMENT_METADATA_LONGNAME</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstElement.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
<span class="lineart">╰──</span> GstElement
<span class="lineart">╰──</span> <a class="link" href="GstBin.html" title="GstBin">GstBin</a>
</pre>
</div>
<div class="refsect1">
<a name="GstElement.derived-interfaces"></a><h2>Known Derived Interfaces</h2>
<p>
GstElement is required by
<a class="link" href="GstTagSetter.html" title="GstTagSetter">GstTagSetter</a>.</p>
</div>
<div class="refsect1">
<a name="GstElement.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/gst.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstElement.description"></a><h2>Description</h2>
<p>GstElement is the abstract base class needed to construct an element that
can be used in a GStreamer pipeline. Please refer to the plugin writers
guide for more information on creating <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> subclasses.</p>
<p>The name of a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> can be get with <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()"><code class="function">gst_element_get_name()</code></a> and set with
<a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()"><code class="function">gst_element_set_name()</code></a>. For speed, <a class="link" href="GstElement.html#GST-ELEMENT-NAME:CAPS" title="GST_ELEMENT_NAME()"><code class="function">GST_ELEMENT_NAME()</code></a> can be used in the
core when using the appropriate locking. Do not use this in plug-ins or
applications in order to retain ABI compatibility.</p>
<p>Elements can have pads (of the type <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>). These pads link to pads on
other elements. <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> flow between these linked pads.
A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> has a <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> structures for all their input (or sink)
and output (or source) pads.
Core and plug-in writers can add and remove pads with <a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()"><code class="function">gst_element_add_pad()</code></a>
and <a class="link" href="GstElement.html#gst-element-remove-pad" title="gst_element_remove_pad ()"><code class="function">gst_element_remove_pad()</code></a>.</p>
<p>An existing pad of an element can be retrieved by name with
<a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()"><code class="function">gst_element_get_static_pad()</code></a>. A new dynamic pad can be created using
<a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()"><code class="function">gst_element_request_pad()</code></a> with a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>.
An iterator of all pads can be retrieved with <a class="link" href="GstElement.html#gst-element-iterate-pads" title="gst_element_iterate_pads ()"><code class="function">gst_element_iterate_pads()</code></a>.</p>
<p>Elements can be linked through their pads.
If the link is straightforward, use the <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>
convenience function to link two elements, or <a class="link" href="GstElement.html#gst-element-link-many" title="gst_element_link_many ()"><code class="function">gst_element_link_many()</code></a>
for more elements in a row.
Use <a class="link" href="GstElement.html#gst-element-link-filtered" title="gst_element_link_filtered ()"><code class="function">gst_element_link_filtered()</code></a> to link two elements constrained by
a specified set of <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a>.
For finer control, use <a class="link" href="GstElement.html#gst-element-link-pads" title="gst_element_link_pads ()"><code class="function">gst_element_link_pads()</code></a> and
<a class="link" href="GstElement.html#gst-element-link-pads-filtered" title="gst_element_link_pads_filtered ()"><code class="function">gst_element_link_pads_filtered()</code></a> to specify the pads to link on
each element by name.</p>
<p>Each element has a state (see <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>). You can get and set the state
of an element with <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a> and <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>.
Setting a state triggers a <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>. To get a string representation
of a <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>, use <a class="link" href="GstElement.html#gst-element-state-get-name" title="gst_element_state_get_name ()"><code class="function">gst_element_state_get_name()</code></a>.</p>
<p>You can get and set a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> on an element using <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>
and <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
Some elements can provide a clock for the pipeline if
the <a class="link" href="GstElement.html#GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS"><span class="type">GST_ELEMENT_FLAG_PROVIDE_CLOCK</span></a> flag is set. With the
<a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()"><code class="function">gst_element_provide_clock()</code></a> method one can retrieve the clock provided by
such an element.
Not all elements require a clock to operate correctly. If the
<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS"><code class="function">GST_ELEMENT_FLAG_REQUIRE_CLOCK()</code></a> flag is set, a clock should be set on the
element with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.</p>
<p>Note that clock selection and distribution is normally handled by the
toplevel <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> so the clock functions are only to be used in very
specific situations.</p>
</div>
<div class="refsect1">
<a name="GstElement.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GST-STATE:CAPS"></a><h3>GST_STATE()</h3>
<pre class="programlisting">#define GST_STATE(elem) (GST_ELEMENT_CAST(elem)-&gt;current_state)
</pre>
<p>This macro returns the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.</p>
<div class="refsect3">
<a name="GST-STATE.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return state for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-GET-NEXT:CAPS"></a><h3>GST_STATE_GET_NEXT()</h3>
<pre class="programlisting">#define GST_STATE_GET_NEXT(cur,pending) ((GstState)((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))))
</pre>
<p>Given a current state <em class="parameter"><code>cur</code></em>
and a target state <em class="parameter"><code>pending</code></em>
, calculate the next (intermediate)
<a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.</p>
<div class="refsect3">
<a name="GST-STATE-GET-NEXT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>cur</p></td>
<td class="parameter_description"><p>A starting <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pending</p></td>
<td class="parameter_description"><p>A target <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-NEXT:CAPS"></a><h3>GST_STATE_NEXT()</h3>
<pre class="programlisting">#define GST_STATE_NEXT(elem) (GST_ELEMENT_CAST(elem)-&gt;next_state)
</pre>
<p>This macro returns the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.</p>
<div class="refsect3">
<a name="GST-STATE-NEXT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the next state for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-PENDING:CAPS"></a><h3>GST_STATE_PENDING()</h3>
<pre class="programlisting">#define GST_STATE_PENDING(elem) (GST_ELEMENT_CAST(elem)-&gt;pending_state)
</pre>
<p>This macro returns the currently pending <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.</p>
<div class="refsect3">
<a name="GST-STATE-PENDING.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the pending state for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-RETURN:CAPS"></a><h3>GST_STATE_RETURN()</h3>
<pre class="programlisting">#define GST_STATE_RETURN(elem) (GST_ELEMENT_CAST(elem)-&gt;last_return)
</pre>
<p>This macro returns the last <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> value.</p>
<div class="refsect3">
<a name="GST-STATE-RETURN.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the last state result for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-TARGET:CAPS"></a><h3>GST_STATE_TARGET()</h3>
<pre class="programlisting">#define GST_STATE_TARGET(elem) (GST_ELEMENT_CAST(elem)-&gt;target_state)
</pre>
<p>This macro returns the target <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.</p>
<div class="refsect3">
<a name="GST-STATE-TARGET.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the target state for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-TRANSITION:CAPS"></a><h3>GST_STATE_TRANSITION()</h3>
<pre class="programlisting">#define GST_STATE_TRANSITION(cur,next) ((GstStateChange)(((cur)&lt;&lt;3)|(next)))
</pre>
<p>Given a current state <em class="parameter"><code>cur</code></em>
and a next state <em class="parameter"><code>next</code></em>
, calculate the associated
<a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition.</p>
<div class="refsect3">
<a name="GST-STATE-TRANSITION.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>cur</p></td>
<td class="parameter_description"><p>A current state</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>next</p></td>
<td class="parameter_description"><p>A next state</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-TRANSITION-CURRENT:CAPS"></a><h3>GST_STATE_TRANSITION_CURRENT()</h3>
<pre class="programlisting">#define GST_STATE_TRANSITION_CURRENT(trans) ((GstState)((trans)&gt;&gt;3))
</pre>
<p>Given a state transition <em class="parameter"><code>trans</code></em>
, extract the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.</p>
<div class="refsect3">
<a name="GST-STATE-TRANSITION-CURRENT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>trans</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-TRANSITION-NEXT:CAPS"></a><h3>GST_STATE_TRANSITION_NEXT()</h3>
<pre class="programlisting">#define GST_STATE_TRANSITION_NEXT(trans) ((GstState)((trans)&amp;0x7))
</pre>
<p>Given a state transition <em class="parameter"><code>trans</code></em>
, extract the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.</p>
<div class="refsect3">
<a name="GST-STATE-TRANSITION-NEXT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>trans</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-GET-LOCK:CAPS"></a><h3>GST_STATE_GET_LOCK()</h3>
<pre class="programlisting">#define GST_STATE_GET_LOCK(elem) (&amp;(GST_ELEMENT_CAST(elem)-&gt;state_lock))
</pre>
<p>Get a reference to the state lock of <em class="parameter"><code>elem</code></em>
.
This lock is used by the core. It is taken while getting or setting
the state, during state changes, and while finalizing.</p>
<div class="refsect3">
<a name="GST-STATE-GET-LOCK.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-STATE-GET-COND:CAPS"></a><h3>GST_STATE_GET_COND()</h3>
<pre class="programlisting">#define GST_STATE_GET_COND(elem) (&amp;GST_ELEMENT_CAST(elem)-&gt;state_cond)
</pre>
<p>Get the conditional used to signal the completion of a state change.</p>
<div class="refsect3">
<a name="GST-STATE-GET-COND.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-NAME:CAPS"></a><h3>GST_ELEMENT_NAME()</h3>
<pre class="programlisting">#define GST_ELEMENT_NAME(elem) (GST_OBJECT_NAME(elem))
</pre>
<p>Gets the name of this element. This is not thread-safe by default
(i.e. you will have to make sure the object lock is taken yourself).
If in doubt use <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()"><code class="function">gst_element_get_name()</code></a> instead.</p>
<div class="refsect3">
<a name="GST-ELEMENT-NAME.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-PARENT:CAPS"></a><h3>GST_ELEMENT_PARENT()</h3>
<pre class="programlisting">#define GST_ELEMENT_PARENT(elem) (GST_ELEMENT_CAST(GST_OBJECT_PARENT(elem)))
</pre>
<p>Get the parent object of this element. This is not thread-safe by default
(i.e. you will have to make sure the object lock is taken yourself).
If in doubt use <a class="link" href="GstObject.html#gst-object-get-parent" title="gst_object_get_parent ()"><code class="function">gst_object_get_parent()</code></a> instead.</p>
<div class="refsect3">
<a name="GST-ELEMENT-PARENT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-BUS:CAPS"></a><h3>GST_ELEMENT_BUS()</h3>
<pre class="programlisting">#define GST_ELEMENT_BUS(elem) (GST_ELEMENT_CAST(elem)-&gt;bus)
</pre>
<p>Get the message bus of this element. This is not thread-safe by default
(i.e. you will have to make sure the object lock is taken yourself).
If in doubt use <a class="link" href="GstElement.html#gst-element-get-bus" title="gst_element_get_bus ()"><code class="function">gst_element_get_bus()</code></a> instead.</p>
<div class="refsect3">
<a name="GST-ELEMENT-BUS.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-CLOCK:CAPS"></a><h3>GST_ELEMENT_CLOCK()</h3>
<pre class="programlisting">#define GST_ELEMENT_CLOCK(elem) (GST_ELEMENT_CAST(elem)-&gt;clock)
</pre>
<p>Get the clock of this element.This is not thread-safe by default
(i.e. you will have to make sure it is safe yourself).
If in doubt use <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a> instead.</p>
<div class="refsect3">
<a name="GST-ELEMENT-CLOCK.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-PADS:CAPS"></a><h3>GST_ELEMENT_PADS()</h3>
<pre class="programlisting">#define GST_ELEMENT_PADS(elem) (GST_ELEMENT_CAST(elem)-&gt;pads)
</pre>
<p>Get the pads of this elements.</p>
<div class="refsect3">
<a name="GST-ELEMENT-PADS.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-START-TIME:CAPS"></a><h3>GST_ELEMENT_START_TIME()</h3>
<pre class="programlisting">#define GST_ELEMENT_START_TIME(elem) (GST_ELEMENT_CAST(elem)-&gt;start_time)
</pre>
<p>This macro returns the start_time of the <em class="parameter"><code>elem</code></em>
. The start_time is the
running_time of the pipeline when the element went to PAUSED.</p>
<div class="refsect3">
<a name="GST-ELEMENT-START-TIME.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the start time for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-ERROR:CAPS"></a><h3>GST_ELEMENT_ERROR()</h3>
<pre class="programlisting">#define GST_ELEMENT_ERROR(el,domain,code,text,debug)</pre>
<p>Utility function that elements can use in case they encountered a fatal
data processing error. The pipeline will post an error message and the
application will be requested to stop further media processing.</p>
<div class="refsect3">
<a name="GST-ELEMENT-ERROR.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the error</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-ERROR-WITH-DETAILS:CAPS"></a><h3>GST_ELEMENT_ERROR_WITH_DETAILS()</h3>
<pre class="programlisting">#define GST_ELEMENT_ERROR_WITH_DETAILS(el,domain,code,text,debug,args)</pre>
<p>Utility function that elements can use in case they encountered a fatal
data processing error. The pipeline will post an error message and the
application will be requested to stop further media processing.</p>
<div class="refsect3">
<a name="GST-ELEMENT-ERROR-WITH-DETAILS.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the error</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)
<em class="parameter"><code>args</code></em>
optional name, type, value triplets, which will be stored
in the associated GstStructure. NULL terminator required.
Must be enclosed within parentheses.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-FLOW-ERROR:CAPS"></a><h3>GST_ELEMENT_FLOW_ERROR()</h3>
<pre class="programlisting">#define GST_ELEMENT_FLOW_ERROR(el,flow_return)</pre>
<p>Utility function that elements can use in case they encountered a fatal
data processing error due to wrong flow processing.</p>
<div class="refsect3">
<a name="GST-ELEMENT-FLOW-ERROR.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the error</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flow_return</p></td>
<td class="parameter_description"><p>the GstFlowReturn leading to that ERROR message</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-WARNING:CAPS"></a><h3>GST_ELEMENT_WARNING()</h3>
<pre class="programlisting">#define GST_ELEMENT_WARNING(el, domain, code, text, debug)</pre>
<p>Utility function that elements can use in case they encountered a non-fatal
data processing problem. The pipeline will post a warning message and the
application will be informed.</p>
<div class="refsect3">
<a name="GST-ELEMENT-WARNING.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the warning</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-WARNING-WITH-DETAILS:CAPS"></a><h3>GST_ELEMENT_WARNING_WITH_DETAILS()</h3>
<pre class="programlisting">#define GST_ELEMENT_WARNING_WITH_DETAILS(el, domain, code, text, debug, args)</pre>
<p>Utility function that elements can use in case they encountered a non-fatal
data processing problem. The pipeline will post a warning message and the
application will be informed.</p>
<div class="refsect3">
<a name="GST-ELEMENT-WARNING-WITH-DETAILS.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the warning</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)
<em class="parameter"><code>args</code></em>
optional name, type, value triplets, which will be stored
in the associated GstStructure. NULL terminator required.
Must be enclosed within parentheses.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-INFO:CAPS"></a><h3>GST_ELEMENT_INFO()</h3>
<pre class="programlisting">#define GST_ELEMENT_INFO(el, domain, code, text, debug)</pre>
<p>Utility function that elements can use in case they want to inform
the application of something noteworthy that is not an error.
The pipeline will post a info message and the
application will be informed.</p>
<div class="refsect3">
<a name="GST-ELEMENT-INFO.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the information</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-INFO-WITH-DETAILS:CAPS"></a><h3>GST_ELEMENT_INFO_WITH_DETAILS()</h3>
<pre class="programlisting">#define GST_ELEMENT_INFO_WITH_DETAILS(el, domain, code, text, debug, args)</pre>
<p>Utility function that elements can use in case they want to inform
the application of something noteworthy that is not an error.
The pipeline will post a info message and the
application will be informed.
Optional name, type, value triplets may be supplied, and will be stored
in the associated GstStructure. NULL terminator required.</p>
<div class="refsect3">
<a name="GST-ELEMENT-INFO-WITH-DETAILS.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>el</p></td>
<td class="parameter_description"><p>the element that generates the information</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>domain</p></td>
<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>code</p></td>
<td class="parameter_description"><p>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the message to display (format string and args enclosed in
parentheses)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>debug</p></td>
<td class="parameter_description"><p>debugging information for the message (format string and args
enclosed in parentheses)
<em class="parameter"><code>args</code></em>
optional name, type, value triplets, which will be stored
in the associated GstStructure. NULL terminator required.
Must be enclosed within parentheses.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-ELEMENT-IS-LOCKED-STATE:CAPS"></a><h3>GST_ELEMENT_IS_LOCKED_STATE()</h3>
<pre class="programlisting">#define GST_ELEMENT_IS_LOCKED_STATE(elem) (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_FLAG_LOCKED_STATE))
</pre>
<p>Check if the element is in the locked state and therefore will ignore state
changes from its parent object.</p>
<div class="refsect3">
<a name="GST-ELEMENT-IS-LOCKED-STATE.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>elem</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-add-pad-template"></a><h3>gst_element_class_add_pad_template ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_add_pad_template (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>);</pre>
<p>Adds a padtemplate to an element class. This is mainly used in the _class_init
functions of classes. If a pad template with the same name as an already
existing one is added the old one is replaced by the new one.</p>
<div class="refsect3">
<a name="gst-element-class-add-pad-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>the <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to add the pad template to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>templ</p></td>
<td class="parameter_description"><p> a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to add to the element class. </p></td>
<td class="parameter_annotations"><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>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-add-static-pad-template"></a><h3>gst_element_class_add_static_pad_template ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_add_static_pad_template
(<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code><a class="link" href="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *static_templ</code></em>);</pre>
<p>Adds a pad template to an element class based on the static pad template
<em class="parameter"><code>templ</code></em>
. This is mainly used in the _class_init functions of element
implementations. If a pad template with the same name already exists,
the old one is replaced by the new one.</p>
<div class="refsect3">
<a name="gst-element-class-add-static-pad-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>the <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to add the pad template to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>static_templ</p></td>
<td class="parameter_description"><p><a class="link" href="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> to add as pad template to the element class.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.8</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-get-pad-template"></a><h3>gst_element_class_get_pad_template ()</h3>
<pre class="programlisting"><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *
gst_element_class_get_pad_template (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>Retrieves a padtemplate from <em class="parameter"><code>element_class</code></em>
with the given name.</p>
<div class="note">If you use this function in the <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> of an object class
that has subclasses, make sure to pass the g_class parameter of the
<a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
<div class="refsect3">
<a name="gst-element-class-get-pad-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to get the pad template of.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to get.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-class-get-pad-template.returns"></a><h4>Returns</h4>
<p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> with the
given name, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none was found. No unreferencing is
necessary. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-get-pad-template-list"></a><h3>gst_element_class_get_pad_template_list ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
gst_element_class_get_pad_template_list
(<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>);</pre>
<p>Retrieves a list of the pad templates associated with <em class="parameter"><code>element_class</code></em>
. The
list must not be modified by the calling code.</p>
<div class="note">If you use this function in the <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> of an object class
that has subclasses, make sure to pass the g_class parameter of the
<a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
<div class="refsect3">
<a name="gst-element-class-get-pad-template-list.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>element_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to get pad templates of.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-class-get-pad-template-list.returns"></a><h4>Returns</h4>
<p> the <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
pad templates. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.PadTemplate]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-set-metadata"></a><h3>gst_element_class_set_metadata ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_set_metadata (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
<p>Sets the detailed information for a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a>.</p>
<div class="note">This function is for use in _class_init functions only.</div>
<div class="refsect3">
<a name="gst-element-class-set-metadata.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>class to set metadata for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>longname</p></td>
<td class="parameter_description"><p>The long English name of the element. E.g. "File Sink"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>classification</p></td>
<td class="parameter_description"><p>String describing the type of element, as an unordered list
separated with slashes ('/'). See draft-klass.txt of the design docs
for more details and common types. E.g: "Sink/File"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>description</p></td>
<td class="parameter_description"><p>Sentence describing the purpose of the element.
E.g: "Write stream to a file"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>author</p></td>
<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-set-static-metadata"></a><h3>gst_element_class_set_static_metadata ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_set_static_metadata (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
<p>Sets the detailed information for a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a>.</p>
<div class="note">This function is for use in _class_init functions only.</div>
<p>Same as <a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()"><code class="function">gst_element_class_set_metadata()</code></a>, but <em class="parameter"><code>longname</code></em>
, <em class="parameter"><code>classification</code></em>
,
<em class="parameter"><code>description</code></em>
, and <em class="parameter"><code>author</code></em>
must be static strings or inlined strings, as
they will not be copied. (GStreamer plugins will be made resident once
loaded, so this function can be used even from dynamically loaded plugins.)</p>
<div class="refsect3">
<a name="gst-element-class-set-static-metadata.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>class to set metadata for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>longname</p></td>
<td class="parameter_description"><p>The long English name of the element. E.g. "File Sink"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>classification</p></td>
<td class="parameter_description"><p>String describing the type of element, as an unordered list
separated with slashes ('/'). See draft-klass.txt of the design docs
for more details and common types. E.g: "Sink/File"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>description</p></td>
<td class="parameter_description"><p>Sentence describing the purpose of the element.
E.g: "Write stream to a file"</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>author</p></td>
<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-add-metadata"></a><h3>gst_element_class_add_metadata ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_add_metadata (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
<p>Set <em class="parameter"><code>key</code></em>
with <em class="parameter"><code>value</code></em>
as metadata in <em class="parameter"><code>klass</code></em>
.</p>
<div class="refsect3">
<a name="gst-element-class-add-metadata.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>class to set metadata for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the key to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the value to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-class-add-static-metadata"></a><h3>gst_element_class_add_static_metadata ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_class_add_static_metadata (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
<p>Set <em class="parameter"><code>key</code></em>
with <em class="parameter"><code>value</code></em>
as metadata in <em class="parameter"><code>klass</code></em>
.</p>
<p>Same as <a class="link" href="GstElement.html#gst-element-class-add-metadata" title="gst_element_class_add_metadata ()"><code class="function">gst_element_class_add_metadata()</code></a>, but <em class="parameter"><code>value</code></em>
must be a static string
or an inlined string, as it will not be copied. (GStreamer plugins will
be made resident once loaded, so this function can be used even from
dynamically loaded plugins.)</p>
<div class="refsect3">
<a name="gst-element-class-add-static-metadata.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>class to set metadata for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the key to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the value to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-add-pad"></a><h3>gst_element_add_pad ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_element_add_pad (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
<p>Adds a pad (link point) to <em class="parameter"><code>element</code></em>
. <em class="parameter"><code>pad</code></em>
's parent will be set to <em class="parameter"><code>element</code></em>
;
see <a class="link" href="GstObject.html#gst-object-set-parent" title="gst_object_set_parent ()"><code class="function">gst_object_set_parent()</code></a> for refcounting information.</p>
<p>Pads are not automatically activated so elements should perform the needed
steps to activate the pad in case this pad is added in the PAUSED or PLAYING
state. See <a class="link" href="GstPad.html#gst-pad-set-active" title="gst_pad_set_active ()"><code class="function">gst_pad_set_active()</code></a> for more information about activating pads.</p>
<p>The pad and the element should be unlocked when calling this function.</p>
<p>This function will emit the <a class="link" href="GstElement.html#GstElement-pad-added" title="The “pad-added” signal"><span class="type">“pad-added”</span></a> signal on the element.</p>
<div class="refsect3">
<a name="gst-element-add-pad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to add the pad to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pad</p></td>
<td class="parameter_description"><p> the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to add to the element. </p></td>
<td class="parameter_annotations"><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>
<div class="refsect3">
<a name="gst-element-add-pad.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could be added. This function can fail when
a pad with the same name already existed or the pad already had another
parent.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-create-all-pads"></a><h3>gst_element_create_all_pads ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_element_create_all_pads (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
<p>Creates a pad for each pad template that is always available.
This function is only useful during object initialization of
subclasses of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</p>
<div class="refsect3">
<a name="gst-element-create-all-pads.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p> a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to create pads for. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-get-compatible-pad"></a><h3>gst_element_get_compatible_pad ()</h3>
<pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
gst_element_get_compatible_pad (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
<em class="parameter"><code><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>Looks for an unlinked pad to which the given pad can link. It is not
guaranteed that linking the pads will work, though it should work in most
cases.</p>
<p>This function will first attempt to find a compatible unlinked ALWAYS pad,
and if none can be found, it will request a compatible REQUEST pad by looking
at the templates of <em class="parameter"><code>element</code></em>
.</p>
<div class="refsect3">
<a name="gst-element-get-compatible-pad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p> a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in which the pad should be found. </p></td>
<td class="parameter_annotations"><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 class="parameter_name"><p>pad</p></td>
<td class="parameter_description"><p> the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to find a compatible one for. </p></td>
<td class="parameter_annotations"><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 class="parameter_name"><p>caps</p></td>
<td class="parameter_description"><p> the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> to use as a filter. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-get-compatible-pad.returns"></a><h4>Returns</h4>
<p> the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to which a link
can be made, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if one cannot be found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
after usage. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-get-compatible-pad-template"></a><h3>gst_element_get_compatible_pad_template ()</h3>
<pre class="programlisting"><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *
gst_element_get_compatible_pad_template
(<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *compattempl</code></em>);</pre>
<p>Retrieves a pad template from <em class="parameter"><code>element</code></em>
that is compatible with <em class="parameter"><code>compattempl</code></em>
.
Pads from compatible templates can be linked together.</p>
<div class="refsect3">
<a name="gst-element-get-compatible-pad-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p> a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get a compatible pad template for. </p></td>
<td class="parameter_annotations"><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 class="parameter_name"><p>compattempl</p></td>
<td class="parameter_description"><p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to find a compatible
template for. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-get-compatible-pad-template.returns"></a><h4>Returns</h4>
<p> a compatible <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>,
or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none was found. No unreferencing is necessary. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-get-request-pad"></a><h3>gst_element_get_request_pad ()</h3>
<pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
gst_element_get_request_pad (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>Retrieves a pad from the element by name (e.g. "src_%d"). This version only
retrieves request pads. The pad should be released with
<a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.</p>
<p>This method is slower than manually getting the pad template and calling
<a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()"><code class="function">gst_element_request_pad()</code></a> if the pads should have a specific name (e.g.
<em class="parameter"><code>name</code></em>
is "src_1" instead of "src_%u").</p>
<div class="refsect3">
<a name="gst-element-get-request-pad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a request pad of.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the request <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to retrieve.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-get-request-pad.returns"></a><h4>Returns</h4>
<p> requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found,
otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Release after usage. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-get-static-pad"></a><h3>gst_element_get_static_pad ()</h3>
<pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
gst_element_get_static_pad (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>Retrieves a pad from <em class="parameter"><code>element</code></em>
by name. This version only retrieves
already-existing (i.e. 'static') pads.</p>
<div class="refsect3">
<a name="gst-element-get-static-pad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a static pad of.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the static <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to retrieve.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-element-get-static-pad.returns"></a><h4>Returns</h4>
<p> the requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if
found, otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. unref after usage.</p>
<p>MT safe. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-element-request-pad"></a><h3>gst_element_request_pad ()</h3>
<pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
gst_element_request_pad (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>Retrieves a request pad from the element according to the provided template.
Pad templates can be looked up using
<a class="link" href="GstElementFactory.html#gst-element-factory-get-static-pad-templates" title="gst_element_factory_get_static_pad_templates ()"><code class="function">gst_element_factory_get_static_pad_templates()</code></a>.</p>
<p>The pad should be released with <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.</p>
<p><span class="annotation">[<acronym title="This is the invoker for a virtual method."><span class="acronym">virtual</span></acronym> request_new_pad]</span></p>
<div class="refsect3">
<a name="gst-element-request-pad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>element</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a request pad of.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>templ</p></td>
<td