Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > by-pkgid > f250c16c2b84c9364a2f35a71121aaa2 > files > 303

lib64dirac-devel-1.0.2-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Dirac Video Codec</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<h1 align="center" color="#606080">
Dirac - A Video Codec
</h1>
<p align="center">
Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>.
</p>
<hr>
<!-- Generated by Doxygen 1.5.9 -->
<div class="contents">
<h1>dirac_parser.h File Reference</h1>C interface to Dirac decoder.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="a00186_source.html">libdirac_common/dirac_types.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="a00176_source.html">libdirac_decoder/decoder_types.h</a>&gt;</code><br>

<p>
<a href="a00185_source.html">Go to the source code of this file.</a><h2>Classes</h2>
<ul>
<li>struct <a class="el" href="a00033.html">dirac_decoder_t</a>
</ul>
<h2>Typedefs</h2>
<ul>
<li>typedef <a class="el" href="a00176.html#e93428308fdd9a41c5c4e3b313660d5d">DecoderState</a> <a class="el" href="a00185.html#c2fc9471e6337f2bd7e8bdfd8882bbe7">dirac_decoder_state_t</a>
</ul>
<h2>Functions</h2>
<ul>
<li>DllExport <a class="el" href="a00033.html">dirac_decoder_t</a> * <a class="el" href="a00185.html#85120ea7b4dc57262073894c2533623b">dirac_decoder_init</a> (int verbose)
<li>DllExport void <a class="el" href="a00185.html#739e3ecbf7498ca556b6d4e226ea164d">dirac_decoder_close</a> (<a class="el" href="a00033.html">dirac_decoder_t</a> *decoder)
<li>DllExport <a class="el" href="a00176.html#e93428308fdd9a41c5c4e3b313660d5d">dirac_decoder_state_t</a> <a class="el" href="a00185.html#6d88747e021604e0f0c892d028166926">dirac_parse</a> (<a class="el" href="a00033.html">dirac_decoder_t</a> *decoder)
<li>DllExport void <a class="el" href="a00185.html#b4994e4e56a4a133dbfec9d456a73865">dirac_buffer</a> (<a class="el" href="a00033.html">dirac_decoder_t</a> *decoder, unsigned char *start, unsigned char *end)
<li>DllExport void <a class="el" href="a00185.html#cdd9be9a6afa7195b218374366a7d136">dirac_set_buf</a> (<a class="el" href="a00033.html">dirac_decoder_t</a> *decoder, unsigned char *buf[3], void *id)
</ul>
<hr><h2>Detailed Description</h2>
A set of 'C' functions that define the public interface to the Dirac decoder. Refer to the the reference decoder source code, decoder/decmain.cpp for an example of how to use the "C" interface. The pseudocode below gives a brief description of the "C" interface usage.<p>
<div class="fragment"><pre class="fragment">
 #include &lt;libdirac_decoder/dirac_parser.h&gt;\n
 Initialise the decoder

 dirac_decoder_t *decoder_handle = dirac_decoder_init();
 do
 {
     dirac_decoder_state_t state = dirac_parse (decoder_handle);
     switch (state)
     {
     case STATE_BUFFER:
         read more data.
         Pass data to the decoder.
         dirac_buffer (decoder_handle, data_start, data_end)
         break;

     case STATE_SEQUENCE:
         handle start of sequence.
         The decoder returns the sequence parameters in the 
         seq_params member of the decoder handle.
         Allocate space for the frame data buffers and pass 
         this to the decoder.
         dirac_set_buf (decoder_handle, buf, NULL);
         break;

     case STATE_SEQUENCE_END:
         Deallocate frame data buffers
         break;

     case STATE_PICTURE_AVAIL:
         Handle picture data.
         The decoder sets the fbuf member in the decoder 
         handle to the frame decoded.
         break;

     case STATE_INVALID:
         Unrecoverable error. Stop all processing
         break;
     }
 } while (data available &amp;&amp; decoder state != STATE_INVALID
 
 Free the decoder resources
 dirac_decoder_close(decoder_handle)
 </pre></div> <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="c2fc9471e6337f2bd7e8bdfd8882bbe7"></a><!-- doxytag: member="dirac_parser.h::dirac_decoder_state_t" ref="c2fc9471e6337f2bd7e8bdfd8882bbe7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00176.html#e93428308fdd9a41c5c4e3b313660d5d">DecoderState</a> <a class="el" href="a00176.html#e93428308fdd9a41c5c4e3b313660d5d">dirac_decoder_state_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="b4994e4e56a4a133dbfec9d456a73865"></a><!-- doxytag: member="dirac_parser.h::dirac_buffer" ref="b4994e4e56a4a133dbfec9d456a73865" args="(dirac_decoder_t *decoder, unsigned char *start, unsigned char *end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DllExport void dirac_buffer           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00033.html">dirac_decoder_t</a> *&nbsp;</td>
          <td class="paramname"> <em>decoder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy data into internal buffer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>decoder</em>&nbsp;</td><td>Decoder object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>Start of data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>End of data </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="739e3ecbf7498ca556b6d4e226ea164d"></a><!-- doxytag: member="dirac_parser.h::dirac_decoder_close" ref="739e3ecbf7498ca556b6d4e226ea164d" args="(dirac_decoder_t *decoder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DllExport void dirac_decoder_close           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00033.html">dirac_decoder_t</a> *&nbsp;</td>
          <td class="paramname"> <em>decoder</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Release the decoder resources <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>decoder</em>&nbsp;</td><td>Decoder object </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="85120ea7b4dc57262073894c2533623b"></a><!-- doxytag: member="dirac_parser.h::dirac_decoder_init" ref="85120ea7b4dc57262073894c2533623b" args="(int verbose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DllExport <a class="el" href="a00033.html">dirac_decoder_t</a>* dirac_decoder_init           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>verbose</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decoder Init Initialise the decoder. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>verbose</em>&nbsp;</td><td>boolean flag to set verbose output </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>decoder handle </dd></dl>

</div>
</div><p>
<a class="anchor" name="6d88747e021604e0f0c892d028166926"></a><!-- doxytag: member="dirac_parser.h::dirac_parse" ref="6d88747e021604e0f0c892d028166926" args="(dirac_decoder_t *decoder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DllExport <a class="el" href="a00176.html#e93428308fdd9a41c5c4e3b313660d5d">dirac_decoder_state_t</a> dirac_parse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00033.html">dirac_decoder_t</a> *&nbsp;</td>
          <td class="paramname"> <em>decoder</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parses the data in the input buffer. This function returns the following values. <br>
 STATE_BUFFER: Not enough data in internal buffer to process <br>
 STATE_SEQUENCE: Start of sequence detected. The seq_params member in the decoder object is set to the details of the next sequence to be processed. <br>
 STATE_PICTURE_START: Start of picture detected. The frame_params member of the decoder object is set to the details of the next frame to be processed. <br>
 STATE_PICTURE_AVAIL: Decoded picture available. The frame_aprams member of the decoder object is set the the details of the decoded frame available. The fbuf member of the decoder object has the luma and chroma data of the decompressed frame. <br>
 STATE_SEQUENCE_END: End of sequence detected. <br>
 STATE_INVALID: Invalid stream. Stop further processing.<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>decoder</em>&nbsp;</td><td>Decoder object </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Decoder state </dd></dl>

</div>
</div><p>
<a class="anchor" name="cdd9be9a6afa7195b218374366a7d136"></a><!-- doxytag: member="dirac_parser.h::dirac_set_buf" ref="cdd9be9a6afa7195b218374366a7d136" args="(dirac_decoder_t *decoder, unsigned char *buf[3], void *id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DllExport void dirac_set_buf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00033.html">dirac_decoder_t</a> *&nbsp;</td>
          <td class="paramname"> <em>decoder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the output buffer into which the decoder copies the decoded data <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>decoder</em>&nbsp;</td><td>Decoder object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Array of char buffers to hold luma and chroma data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>User data </td></tr>
  </table>
</dl>

</div>
</div><p>
</div>
<hr>
<p align="center"><small>
&copy; 2004 British Broadcasting Corporation.
Dirac code licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla Public License (MPL) Version 1.1</a>.<br>
HTML documentation generated by Dimitri van Heesch's
excellent <a href="http://www.doxygen.org">Doxygen</a> tool.
</small></p>
</body>
</html>