Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ffmpeg-doc / usr / share / doc / ffmpeg-doc / api / hash_8h.html
Size: Mime:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FFmpeg: libavutil/hash.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">FFmpeg
   &#160;<span id="projectnumber">2.7.1</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">libavutil/hash.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
</div>
<p><a href="hash_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#aff5173f8837eb3afbd20b52528833d72">AV_HASH_MAX_SIZE</a>&#160;&#160;&#160;64</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value that av_hash_get_size will currently return.  <a href="#aff5173f8837eb3afbd20b52528833d72"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#ad1e018687f3a0e9baf3fb6d3af0dd10b">av_hash_alloc</a> (struct AVHashContext **ctx, const char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a hash context for the algorithm specified by name.  <a href="#ad1e018687f3a0e9baf3fb6d3af0dd10b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a62537bbcf4cae67bbb33f3fa4f4329bf">av_hash_names</a> (int i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the names of available hash algorithms.  <a href="#a62537bbcf4cae67bbb33f3fa4f4329bf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a5952d21d5503ac307fbaa5d05a3d93ca">av_hash_get_name</a> (const struct AVHashContext *ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the algorithm corresponding to the given hash context.  <a href="#a5952d21d5503ac307fbaa5d05a3d93ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a8bf8f94e3ebf73f838d017f83352d880">av_hash_get_size</a> (const struct AVHashContext *ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the resulting hash value in bytes.  <a href="#a8bf8f94e3ebf73f838d017f83352d880"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a84ef872a731eb5c2637ddcd0f0976bca">av_hash_init</a> (struct AVHashContext *ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize or reset a hash context.  <a href="#a84ef872a731eb5c2637ddcd0f0976bca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#ac6a467ff60cb5080b56e818e7b8adb4a">av_hash_update</a> (struct AVHashContext *ctx, const uint8_t *src, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a hash context with additional data.  <a href="#ac6a467ff60cb5080b56e818e7b8adb4a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#aeff9a69f576f8f94e33a0b43a08baa70">av_hash_final</a> (struct AVHashContext *ctx, uint8_t *dst)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a hash context and compute the actual hash value.  <a href="#aeff9a69f576f8f94e33a0b43a08baa70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a65e1a59bf9c2076eda5884e89249af12">av_hash_final_bin</a> (struct AVHashContext *ctx, uint8_t *dst, int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a hash context and compute the actual hash value.  <a href="#a65e1a59bf9c2076eda5884e89249af12"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a8316ebcbe11caebc88b4c4afc0eef16c">av_hash_final_hex</a> (struct AVHashContext *ctx, uint8_t *dst, int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a hash context and compute the actual hash value as a hex string.  <a href="#a8316ebcbe11caebc88b4c4afc0eef16c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a2300a29e15fd439bcac2f9bc35b730ca">av_hash_final_b64</a> (struct AVHashContext *ctx, uint8_t *dst, int size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a hash context and compute the actual hash value as a base64 string.  <a href="#a2300a29e15fd439bcac2f9bc35b730ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a1e8bac529966e9af25f3608d3a1515ab">av_hash_freep</a> (struct AVHashContext **ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free hash context.  <a href="#a1e8bac529966e9af25f3608d3a1515ab"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aff5173f8837eb3afbd20b52528833d72"></a><!-- doxytag: member="hash.h::AV_HASH_MAX_SIZE" ref="aff5173f8837eb3afbd20b52528833d72" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="hash_8h.html#aff5173f8837eb3afbd20b52528833d72">AV_HASH_MAX_SIZE</a>&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Maximum value that av_hash_get_size will currently return. </p>
<p>You can use this if you absolutely want or need to use static allocation and are fine with not supporting hashes newly added to libavutil without recompilation. Note that you still need to check against av_hash_get_size, adding new hashes with larger sizes will not be considered an ABI change and should not cause your code to overflow a buffer. </p>

<p>Definition at line <a class="el" href="hash_8h_source.html#l00061">61</a> of file <a class="el" href="hash_8h_source.html">hash.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ad1e018687f3a0e9baf3fb6d3af0dd10b"></a><!-- doxytag: member="hash.h::av_hash_alloc" ref="ad1e018687f3a0e9baf3fb6d3af0dd10b" args="(struct AVHashContext **ctx, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="hash_8h.html#ad1e018687f3a0e9baf3fb6d3af0dd10b">av_hash_alloc</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext **&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate a hash context for the algorithm specified by name. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>&gt;= 0 for success, a negative error code for failure </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The context is not initialized, you must call <a class="el" href="hash_8h.html#a84ef872a731eb5c2637ddcd0f0976bca" title="Initialize or reset a hash context.">av_hash_init()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a62537bbcf4cae67bbb33f3fa4f4329bf"></a><!-- doxytag: member="hash.h::av_hash_names" ref="a62537bbcf4cae67bbb33f3fa4f4329bf" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="hash_8h.html#a62537bbcf4cae67bbb33f3fa4f4329bf">av_hash_names</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the names of available hash algorithms. </p>
<p>This function can be used to enumerate the algorithms.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>index of the hash algorithm, starting from 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to a static string or NULL if i is out of range </dd></dl>

</div>
</div>
<a class="anchor" id="a5952d21d5503ac307fbaa5d05a3d93ca"></a><!-- doxytag: member="hash.h::av_hash_get_name" ref="a5952d21d5503ac307fbaa5d05a3d93ca" args="(const struct AVHashContext *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="hash_8h.html#a5952d21d5503ac307fbaa5d05a3d93ca">av_hash_get_name</a> </td>
          <td>(</td>
          <td class="paramtype">const struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the name of the algorithm corresponding to the given hash context. </p>

</div>
</div>
<a class="anchor" id="a8bf8f94e3ebf73f838d017f83352d880"></a><!-- doxytag: member="hash.h::av_hash_get_size" ref="a8bf8f94e3ebf73f838d017f83352d880" args="(const struct AVHashContext *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="hash_8h.html#a8bf8f94e3ebf73f838d017f83352d880">av_hash_get_size</a> </td>
          <td>(</td>
          <td class="paramtype">const struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the resulting hash value in bytes. </p>
<p>The pointer passed to av_hash_final have space for at least this many bytes. </p>

</div>
</div>
<a class="anchor" id="a84ef872a731eb5c2637ddcd0f0976bca"></a><!-- doxytag: member="hash.h::av_hash_init" ref="a84ef872a731eb5c2637ddcd0f0976bca" args="(struct AVHashContext *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#a84ef872a731eb5c2637ddcd0f0976bca">av_hash_init</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize or reset a hash context. </p>

</div>
</div>
<a class="anchor" id="ac6a467ff60cb5080b56e818e7b8adb4a"></a><!-- doxytag: member="hash.h::av_hash_update" ref="ac6a467ff60cb5080b56e818e7b8adb4a" args="(struct AVHashContext *ctx, const uint8_t *src, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#ac6a467ff60cb5080b56e818e7b8adb4a">av_hash_update</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update a hash context with additional data. </p>

</div>
</div>
<a class="anchor" id="aeff9a69f576f8f94e33a0b43a08baa70"></a><!-- doxytag: member="hash.h::av_hash_final" ref="aeff9a69f576f8f94e33a0b43a08baa70" args="(struct AVHashContext *ctx, uint8_t *dst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#aeff9a69f576f8f94e33a0b43a08baa70">av_hash_final</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finalize a hash context and compute the actual hash value. </p>

</div>
</div>
<a class="anchor" id="a65e1a59bf9c2076eda5884e89249af12"></a><!-- doxytag: member="hash.h::av_hash_final_bin" ref="a65e1a59bf9c2076eda5884e89249af12" args="(struct AVHashContext *ctx, uint8_t *dst, int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#a65e1a59bf9c2076eda5884e89249af12">av_hash_final_bin</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finalize a hash context and compute the actual hash value. </p>
<p>If size is smaller than the hash size, the hash is truncated; if size is larger, the buffer is padded with 0. </p>

</div>
</div>
<a class="anchor" id="a8316ebcbe11caebc88b4c4afc0eef16c"></a><!-- doxytag: member="hash.h::av_hash_final_hex" ref="a8316ebcbe11caebc88b4c4afc0eef16c" args="(struct AVHashContext *ctx, uint8_t *dst, int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#a8316ebcbe11caebc88b4c4afc0eef16c">av_hash_final_hex</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finalize a hash context and compute the actual hash value as a hex string. </p>
<p>The string is always 0-terminated. If size is smaller than 2 * hash_size + 1, the hex string is truncated. </p>

</div>
</div>
<a class="anchor" id="a2300a29e15fd439bcac2f9bc35b730ca"></a><!-- doxytag: member="hash.h::av_hash_final_b64" ref="a2300a29e15fd439bcac2f9bc35b730ca" args="(struct AVHashContext *ctx, uint8_t *dst, int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#a2300a29e15fd439bcac2f9bc35b730ca">av_hash_final_b64</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finalize a hash context and compute the actual hash value as a base64 string. </p>
<p>The string is always 0-terminated. If size is smaller than <a class="el" href="group__lavu__base64.html#gaa79f39ca3f737b662ae6711d2cbecd20" title="Calculate the output size needed to base64-encode x bytes to a null-terminated string.">AV_BASE64_SIZE(hash_size)</a>, the base64 string is truncated. </p>

</div>
</div>
<a class="anchor" id="a1e8bac529966e9af25f3608d3a1515ab"></a><!-- doxytag: member="hash.h::av_hash_freep" ref="a1e8bac529966e9af25f3608d3a1515ab" args="(struct AVHashContext **ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="hash_8h.html#a1e8bac529966e9af25f3608d3a1515ab">av_hash_freep</a> </td>
          <td>(</td>
          <td class="paramtype">struct AVHashContext **&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free hash context. </p>

</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>