Files
frei0r/frei0r-autoconf/doc/html/frei0r_8h.html
2007-10-30 22:56:25 +00:00

719 lines
38 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>frei0r: include/frei0r.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="dir_c6a51e201754b7c7dc5a21651891d7e2.html">include</a></div>
<h1>frei0r.h File Reference</h1>This file defines the frei0r api, version 1.1. <a href="#_details">More...</a>
<p>
<code>#include &lt;inttypes.h&gt;</code><br>
<p>
<a href="frei0r_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structf0r__plugin__info.html">f0r_plugin_info</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structf0r__param__color.html">f0r_param_color</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structf0r__param__position.html">f0r_param_position</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structf0r__param__info.html">f0r_param_info</a></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#fcd0fc5b95d850413af3bdfb1445ce21">FREI0R_MAJOR_VERSION</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#1e54a139a7cec212f6c1822793a4ef83">FREI0R_MINOR_VERSION</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PLUGIN__TYPE.html#g021dbc62936693bbe11851a3742b83cc">F0R_PLUGIN_TYPE_FILTER</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PLUGIN__TYPE.html#gd190458c6a082108471acf06622a7461">F0R_PLUGIN_TYPE_SOURCE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PLUGIN__TYPE.html#ge1896fc1cdaf7a505de359b3d07aba70">F0R_PLUGIN_TYPE_MIXER2</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PLUGIN__TYPE.html#g4a6629bc9fd08cf104749ad9d0922501">F0R_PLUGIN_TYPE_MIXER3</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__COLOR__MODEL.html#g4ff9ca3b84e5057b0b7aeee176d6d3a3">F0R_COLOR_MODEL_BGRA8888</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__COLOR__MODEL.html#g68d6ca25df33b7759dfb2c2f6b44a229">F0R_COLOR_MODEL_RGBA8888</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__COLOR__MODEL.html#g42c9b2342651a04a3045b980cf31cf97">F0R_COLOR_MODEL_PACKED32</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g54c75dadceec79650fd657a8169e9e65">F0R_PARAM_BOOL</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#gc82c5dc961327356885a4a0ea513e550">F0R_PARAM_DOUBLE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g78782f633dbf887c9496996f47b57091">F0R_PARAM_COLOR</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g86d6e746595a6358b90b0d73f9b76c59">F0R_PARAM_POSITION</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#gc686a9c6d5a1b3d7c0beb51d7f64f960">F0R_PARAM_STRING</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structf0r__plugin__info.html">f0r_plugin_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#7beb0755906a8a96b3af5285ae11036c">f0r_plugin_info_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g863edbb51211153c1a5bc89128b2eedb">f0r_param_bool</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g05eba906a358ba2e64a0bd55e8a287c9">f0r_param_double</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structf0r__param__color.html">f0r_param_color</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g535ba3bc18763f2e82840e2a095dd0a9">f0r_param_color_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structf0r__param__position.html">f0r_param_position</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#gaafb6c83aa00cfce5556e8d8cd14bdf7">f0r_param_position_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__PARAM__TYPE.html#g2d2b65ed6b99cbf459d24555f0d23997">f0r_param_string</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structf0r__param__info.html">f0r_param_info</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#73d753d06abe741965ef87e3553c399a">f0r_param_info_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#78b1e4451bf40bb8f80fdae871f2e750">f0r_init</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#0485f00015a2b09b8733df004f62db69">f0r_deinit</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#8d451ee1940d8bfeb33311db569321f4">f0r_get_plugin_info</a> (<a class="el" href="structf0r__plugin__info.html">f0r_plugin_info_t</a> *info)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#503bb60dcd8c29e8a715ab0e1a4033d6">f0r_get_param_info</a> (<a class="el" href="structf0r__param__info.html">f0r_param_info_t</a> *info, int param_index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#c7765bbd77add97b318c09e2aba0724b">f0r_construct</a> (unsigned int width, unsigned int height)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#31acce9390816a464c2d24458d9b76c6">f0r_destruct</a> (<a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> instance)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#b6942176959bf76d97719d844799997d">f0r_set_param_value</a> (<a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> instance, <a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a> param, int param_index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#7f0db6a26747279bf507413ebee2a599">f0r_get_param_value</a> (<a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> instance, <a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a> param, int param_index)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#7ddea8bcbfd15affc084f669c0140857">f0r_update</a> (<a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> instance, double time, const uint32_t *inframe, uint32_t *outframe)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="frei0r_8h.html#5c0f4d80066aeedc695732c6f929183d">f0r_update2</a> (<a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> instance, double time, const uint32_t *inframe1, const uint32_t *inframe2, const uint32_t *inframe3, uint32_t *outframe)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This file defines the frei0r api, version 1.1.
<p>
A conforming plugin must implement and export all functions declared in this header.<p>
A conforming application must accept only those plugins which use allowed values for the described fields. <hr><h2>Define Documentation</h2>
<a class="anchor" name="fcd0fc5b95d850413af3bdfb1445ce21"></a><!-- doxytag: member="frei0r.h::FREI0R_MAJOR_VERSION" ref="fcd0fc5b95d850413af3bdfb1445ce21" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">#define FREI0R_MAJOR_VERSION&nbsp;&nbsp;&nbsp;1 </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The frei0r API major version </td>
</tr>
</table>
<a class="anchor" name="1e54a139a7cec212f6c1822793a4ef83"></a><!-- doxytag: member="frei0r.h::FREI0R_MINOR_VERSION" ref="1e54a139a7cec212f6c1822793a4ef83" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">#define FREI0R_MINOR_VERSION&nbsp;&nbsp;&nbsp;1 </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The frei0r API minor version </td>
</tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="af4b514489e1a1399f23919d467fa7f2"></a><!-- doxytag: member="frei0r.h::f0r_instance_t" ref="af4b514489e1a1399f23919d467fa7f2" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">typedef void* <a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Transparent instance pointer of the frei0r effect. </td>
</tr>
</table>
<a class="anchor" name="73d753d06abe741965ef87e3553c399a"></a><!-- doxytag: member="frei0r.h::f0r_param_info_t" ref="73d753d06abe741965ef87e3553c399a" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">typedef struct <a class="el" href="structf0r__param__info.html">f0r_param_info</a> <a class="el" href="structf0r__param__info.html">f0r_param_info_t</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Similar to f0r_plugin_info_t, this structure is filled by the plugin for every parameter.<p>
All strings are unicode, 0-terminated, and the encoding is utf-8. </td>
</tr>
</table>
<a class="anchor" name="2b52f1c6691d7d8796d002df2454f5bb"></a><!-- doxytag: member="frei0r.h::f0r_param_t" ref="2b52f1c6691d7d8796d002df2454f5bb" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">typedef void* <a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Transparent parameter handle. </td>
</tr>
</table>
<a class="anchor" name="7beb0755906a8a96b3af5285ae11036c"></a><!-- doxytag: member="frei0r.h::f0r_plugin_info_t" ref="7beb0755906a8a96b3af5285ae11036c" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">typedef struct <a class="el" href="structf0r__plugin__info.html">f0r_plugin_info</a> <a class="el" href="structf0r__plugin__info.html">f0r_plugin_info_t</a> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The f0r_plugin_info_t structure is filled in by the plugin to tell the application about its name, type, number of parameters, and version.<p>
An application should ignore (i.e. not use) frei0r effects that have unknown values in the plugin_type or color_model field. It should also ignore effects with a too high frei0r_version.<p>
This is necessary to be able to extend the frei0r spec (e.g. by adding new color models or plugin types) in a way that does not result in crashes when loading effects that make use of these extensions into an older application.<p>
All strings are unicode, 0-terminated, and the encoding is utf-8. </td>
</tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="c7765bbd77add97b318c09e2aba0724b"></a><!-- doxytag: member="frei0r.h::f0r_construct" ref="c7765bbd77add97b318c09e2aba0724b" args="(unsigned int width, unsigned int height)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a> f0r_construct </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">unsigned int&nbsp;</td>
<td class="mdname" nowrap> <em>width</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>unsigned int&nbsp;</td>
<td class="mdname" nowrap> <em>height</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Constructor for effect instances. The plugin returns a pointer to its internal instance structure.<p>
The resolution has to be an integer multiple of 8, must be greater than 0 and be at most 2048 in both dimensions.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>The x-resolution of the processed video frames </td></tr>
<tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>The y-resolution of the processed video frames </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on failure or a pointer != 0 on success</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#31acce9390816a464c2d24458d9b76c6">f0r_destruct</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="0485f00015a2b09b8733df004f62db69"></a><!-- doxytag: member="frei0r.h::f0r_deinit" ref="0485f00015a2b09b8733df004f62db69" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_deinit </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
f0r_deinit is called once when the plugin is unloaded by the application. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#78b1e4451bf40bb8f80fdae871f2e750">f0r_init</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="31acce9390816a464c2d24458d9b76c6"></a><!-- doxytag: member="frei0r.h::f0r_destruct" ref="31acce9390816a464c2d24458d9b76c6" args="(f0r_instance_t instance)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_destruct </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>instance</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Destroys an effect instance.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>The pointer to the plugins internal instance structure.</td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#c7765bbd77add97b318c09e2aba0724b">f0r_construct</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="503bb60dcd8c29e8a715ab0e1a4033d6"></a><!-- doxytag: member="frei0r.h::f0r_get_param_info" ref="503bb60dcd8c29e8a715ab0e1a4033d6" args="(f0r_param_info_t *info, int param_index)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_get_param_info </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="structf0r__param__info.html">f0r_param_info_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>info</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>param_index</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
f0r_get_param_info is called by the application to query the type of each parameter.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>is allocated by the application and filled by the plugin </td></tr>
<tr><td valign="top"></td><td valign="top"><em>param_index</em>&nbsp;</td><td>the index of the parameter to be queried (from 0 to num_params-1) </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="7f0db6a26747279bf507413ebee2a599"></a><!-- doxytag: member="frei0r.h::f0r_get_param_value" ref="7f0db6a26747279bf507413ebee2a599" args="(f0r_instance_t instance, f0r_param_t param, int param_index)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_get_param_value </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>instance</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>param</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>param_index</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows the application to query the parameter values of an effect instance.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>the effect instance </td></tr>
<tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to the parameter value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>param_index</em>&nbsp;</td><td>index of the parameter</td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#b6942176959bf76d97719d844799997d">f0r_set_param_value</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="8d451ee1940d8bfeb33311db569321f4"></a><!-- doxytag: member="frei0r.h::f0r_get_plugin_info" ref="8d451ee1940d8bfeb33311db569321f4" args="(f0r_plugin_info_t *info)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_get_plugin_info </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="structf0r__plugin__info.html">f0r_plugin_info_t</a> *&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>info</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Is called once after init. The plugin has to fill in the values in info.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>Pointer to an info struct allocated by the application. </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="78b1e4451bf40bb8f80fdae871f2e750"></a><!-- doxytag: member="frei0r.h::f0r_init" ref="78b1e4451bf40bb8f80fdae871f2e750" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int f0r_init </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<a class="el" href="frei0r_8h.html#78b1e4451bf40bb8f80fdae871f2e750">f0r_init()</a> is called once when the plugin is loaded by the application. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#0485f00015a2b09b8733df004f62db69">f0r_deinit</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="b6942176959bf76d97719d844799997d"></a><!-- doxytag: member="frei0r.h::f0r_set_param_value" ref="b6942176959bf76d97719d844799997d" args="(f0r_instance_t instance, f0r_param_t param, int param_index)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_set_param_value </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>instance</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="frei0r_8h.html#2b52f1c6691d7d8796d002df2454f5bb">f0r_param_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>param</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>param_index</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This function allows the application to set the parameter values of an effect instance. Validity of the parameter pointer is handled by the application thus the data must be copied by the effect.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>the effect instance </td></tr>
<tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to the parameter value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>param_index</em>&nbsp;</td><td>index of the parameter</td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#7f0db6a26747279bf507413ebee2a599">f0r_get_param_value</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="7ddea8bcbfd15affc084f669c0140857"></a><!-- doxytag: member="frei0r.h::f0r_update" ref="7ddea8bcbfd15affc084f669c0140857" args="(f0r_instance_t instance, double time, const uint32_t *inframe, uint32_t *outframe)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_update </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>instance</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>double&nbsp;</td>
<td class="mdname" nowrap> <em>time</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>inframe</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>outframe</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
This is where the core effect processing happens. The application calls it after it has set the necessary parameter values. inframe and outframe must be aligned to an integer multiple of 16 bytes in memory.<p>
This funcition should not alter the parameters of the effect in any way (<a class="el" href="frei0r_8h.html#7f0db6a26747279bf507413ebee2a599">f0r_get_param_value</a> should return the same values after a call to <a class="el" href="frei0r_8h.html#7ddea8bcbfd15affc084f669c0140857">f0r_update</a> as before the call).<p>
The function is responsible to restore the fpu state (e.g. rounding mode) and mmx state if applicable before it returns to the caller.<p>
The host mustn't call <a class="el" href="frei0r_8h.html#7ddea8bcbfd15affc084f669c0140857">f0r_update</a> for effects of type <a class="el" href="group__PLUGIN__TYPE.html#ge1896fc1cdaf7a505de359b3d07aba70">F0R_PLUGIN_TYPE_MIXER2</a> and <a class="el" href="group__PLUGIN__TYPE.html#g4a6629bc9fd08cf104749ad9d0922501">F0R_PLUGIN_TYPE_MIXER3</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>the effect instance </td></tr>
<tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>the application time in seconds but with subsecond resolution (e.g. milli-second resolution). The resolution should be at least the inter-frame period of the application. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>inframe</em>&nbsp;</td><td>the incoming video frame (can be zero for sources) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>outframe</em>&nbsp;</td><td>the resulting video frame</td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#5c0f4d80066aeedc695732c6f929183d">f0r_update2</a> </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="5c0f4d80066aeedc695732c6f929183d"></a><!-- doxytag: member="frei0r.h::f0r_update2" ref="5c0f4d80066aeedc695732c6f929183d" args="(f0r_instance_t instance, double time, const uint32_t *inframe1, const uint32_t *inframe2, const uint32_t *inframe3, uint32_t *outframe)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void f0r_update2 </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="frei0r_8h.html#af4b514489e1a1399f23919d467fa7f2">f0r_instance_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>instance</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>double&nbsp;</td>
<td class="mdname" nowrap> <em>time</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>inframe1</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>inframe2</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>inframe3</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>uint32_t *&nbsp;</td>
<td class="mdname" nowrap> <em>outframe</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
For effects of type <a class="el" href="group__PLUGIN__TYPE.html#gd190458c6a082108471acf06622a7461">F0R_PLUGIN_TYPE_SOURCE</a> or <a class="el" href="group__PLUGIN__TYPE.html#g021dbc62936693bbe11851a3742b83cc">F0R_PLUGIN_TYPE_FILTER</a> this method is optional. The <a class="el" href="frei0r_8h.html#7ddea8bcbfd15affc084f669c0140857">f0r_update</a> method must still be exported for these two effect types. If both are provided the behavior of them must be the same.<p>
Effects of type <a class="el" href="group__PLUGIN__TYPE.html#ge1896fc1cdaf7a505de359b3d07aba70">F0R_PLUGIN_TYPE_MIXER2</a> or <a class="el" href="group__PLUGIN__TYPE.html#g4a6629bc9fd08cf104749ad9d0922501">F0R_PLUGIN_TYPE_MIXER3</a> must provide the new <a class="el" href="frei0r_8h.html#5c0f4d80066aeedc695732c6f929183d">f0r_update2</a> method.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>instance</em>&nbsp;</td><td>the effect instance </td></tr>
<tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>the application time in seconds but with subsecond resolution (e.g. milli-second resolution). The resolution should be at least the inter-frame period of the application. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>inframe1</em>&nbsp;</td><td>the first incoming video frame (can be zero for sources) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>inframe2</em>&nbsp;</td><td>the second incoming video frame (can be zero for sources and filters) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>inframe3</em>&nbsp;</td><td>the third incoming video frame (can be zero for sources, filters and mixer3) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>outframe</em>&nbsp;</td><td>the resulting video frame</td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="frei0r_8h.html#7ddea8bcbfd15affc084f669c0140857">f0r_update</a> </dd></dl>
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Nov 7 12:07:53 2007 for frei0r by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>