Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-release > by-pkgid > 1af184c486f5d5f476d50602700ee0a0 > files > 34

lib64zvbi-devel-0.2.33-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ZVBI Library: Error correction functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Error correction functions<br>
<small>
[<a class="el" href="group__Raw.html">Raw VBI</a>]</small>
</h1>Helper functions to decode sliced VBI data.  
<a href="#_details">More...</a>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gac266ab17d0044d1adbcf7f113329290">vbi_par</a> (uint8_t *p, unsigned int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gfa73f04f095b154f3237f7d4e98f18b7">vbi_unpar</a> (uint8_t *p, unsigned int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g997d16edd4deed54dfca6943f5b7b885">vbi_ham24p</a> (uint8_t *p, unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g5d764f42094e48760cf3e754776ac3fd">vbi_unham24p</a> (const uint8_t *p)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gb59fd75a6908d9b03166c9be36d2f4ce">vbi_rev8</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g0b14a7e987786a8746987b7dcb0c955f">vbi_rev16</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gf0a2792d50100576982c44cd64fa7fd4">vbi_rev16p</a> (const uint8_t *p)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gf85ae2c13320d8dd664863ebff8165ff">vbi_par8</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g49d1cf6af476a4fa10c0312f373ac1a0">vbi_unpar8</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g34d1be5fbcad2db35b7003f8d5e2b905">vbi_ham8</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#g91fcc67515be04557c53c3e076159507">vbi_unham8</a> (unsigned int c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gb62090ec932d135dea3dde39e4e4cc55">vbi_unham16p</a> (const uint8_t *p)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Helper functions to decode sliced VBI data. <hr><h2>Function Documentation</h2>
<a class="anchor" name="gac266ab17d0044d1adbcf7f113329290"></a><!-- doxytag: member="hamm.c::vbi_par" ref="gac266ab17d0044d1adbcf7f113329290" args="(uint8_t *p, unsigned int n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_par           </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>Array of unsigned bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Size of array.</td></tr>
  </table>
</dl>
Of each byte of the array, changes the most significant bit to make the number of set bits odd.<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfa73f04f095b154f3237f7d4e98f18b7"></a><!-- doxytag: member="hamm.c::vbi_unpar" ref="gfa73f04f095b154f3237f7d4e98f18b7" args="(uint8_t *p, unsigned int n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vbi_unpar           </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>Array of unsigned bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Size of array.</td></tr>
  </table>
</dl>
Tests the parity and clears the most significant bit of each byte of the array.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A negative value if any byte of the array had even parity (sum of bits modulo 2 is 0).</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g997d16edd4deed54dfca6943f5b7b885"></a><!-- doxytag: member="hamm.c::vbi_ham24p" ref="g997d16edd4deed54dfca6943f5b7b885" args="(uint8_t *p, unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_ham24p           </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>A Hamming 24/18 protected 24 bit word will be stored here, last significant byte first, lsb first transmitted. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>Integer between 0 ... 1 &lt;&lt; 18 - 1.</td></tr>
  </table>
</dl>
Encodes an 18 bit word with Hamming 24/18 protection as specified in ETS 300 706, Section 8.3.<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.27 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5d764f42094e48760cf3e754776ac3fd"></a><!-- doxytag: member="hamm.c::vbi_unham24p" ref="g5d764f42094e48760cf3e754776ac3fd" args="(const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vbi_unham24p           </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>Pointer to a Hamming 24/18 protected 24 bit word, last significant byte first, lsb first transmitted.</td></tr>
  </table>
</dl>
Decodes a Hamming 24/18 protected byte triplet as specified in ETS 300 706, Section 8.3.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Triplet data bits D18 [msb] ... D1 [lsb] or a negative value if the triplet contained incorrectable errors.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb59fd75a6908d9b03166c9be36d2f4ce"></a><!-- doxytag: member="hamm.h::vbi_rev8" ref="gb59fd75a6908d9b03166c9be36d2f4ce" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_rev8           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Unsigned byte.</td></tr>
  </table>
</dl>
Reverses the bits of the argument.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Data bits 0 [msb] ... 7 [lsb].</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0b14a7e987786a8746987b7dcb0c955f"></a><!-- doxytag: member="hamm.h::vbi_rev16" ref="g0b14a7e987786a8746987b7dcb0c955f" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_rev16           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Unsigned 16 bit word.</td></tr>
  </table>
</dl>
Reverses (or "reflects") the bits of the argument.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Data bits 0 [msb] ... 15 [lsb].</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf0a2792d50100576982c44cd64fa7fd4"></a><!-- doxytag: member="hamm.h::vbi_rev16p" ref="gf0a2792d50100576982c44cd64fa7fd4" args="(const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_rev16p           </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>Pointer to a 16 bit word, last significant byte first.</td></tr>
  </table>
</dl>
Reverses (or "reflects") the bits of the argument.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Data bits 0 [msb] ... 15 [lsb].</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf85ae2c13320d8dd664863ebff8165ff"></a><!-- doxytag: member="hamm.h::vbi_par8" ref="gf85ae2c13320d8dd664863ebff8165ff" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_par8           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Unsigned byte.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Changes the most significant bit of the byte to make the number of set bits odd.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g49d1cf6af476a4fa10c0312f373ac1a0"></a><!-- doxytag: member="hamm.h::vbi_unpar8" ref="g49d1cf6af476a4fa10c0312f373ac1a0" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline int vbi_unpar8           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Unsigned byte.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>If the byte has odd parity (sum of bits modulo 2 is 1) the byte AND 127, otherwise a negative value.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g34d1be5fbcad2db35b7003f8d5e2b905"></a><!-- doxytag: member="hamm.h::vbi_ham8" ref="g34d1be5fbcad2db35b7003f8d5e2b905" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_ham8           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Integer between 0 ... 15.</td></tr>
  </table>
</dl>
Encodes a nibble with Hamming 8/4 protection as specified in EN 300 706, Section 8.2.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Hamming encoded unsigned byte, lsb first transmitted.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g91fcc67515be04557c53c3e076159507"></a><!-- doxytag: member="hamm.h::vbi_unham8" ref="g91fcc67515be04557c53c3e076159507" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline int vbi_unham8           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>c</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>c</em>&nbsp;</td><td>Hamming 8/4 protected byte, lsb first transmitted.</td></tr>
  </table>
</dl>
Decodes a Hamming 8/4 protected byte as specified in EN 300 706, Section 8.2.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Data bits (D4 [msb] ... D1 [lsb]) or a negative value if the byte contained incorrectable errors.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb62090ec932d135dea3dde39e4e4cc55"></a><!-- doxytag: member="hamm.h::vbi_unham16p" ref="gb62090ec932d135dea3dde39e4e4cc55" args="(const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline int vbi_unham16p           </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>p</em>&nbsp;</td><td>Pointer to a Hamming 8/4 protected 16 bit word, last significant byte first, lsb first transmitted.</td></tr>
  </table>
</dl>
Decodes a Hamming 8/4 protected byte pair as specified in EN 300 706, Section 8.2.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Data bits D4 [msb] ... D1 of first byte and D4 ... D1 [lsb] of second byte, or a negative value if any of the bytes contained incorrectable errors.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.12 </dd></dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 27 04:47:58 2009 for ZVBI Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>