Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > media > main-release > by-pkgid > f250c16c2b84c9364a2f35a71121aaa2 > files > 179

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="navpath"><a class="el" href="a00234.html">dirac</a>::<a class="el" href="a00109.html">PictureBuffer</a>
  </div>
<div class="contents">
<h1>dirac::PictureBuffer Class Reference</h1><!-- doxytag: class="dirac::PictureBuffer" -->Holds pictures both for reference and to overcome reordering delay.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="a00213_source.html">picture_buffer.h</a>&gt;</code>
<p>

<p>
<a href="a00329.html">List of all members.</a><h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="a00109.html#c27f1480054a9c9e50dc21f7404cff3b">PictureBuffer</a> ()
<dl class="el"><dd class="mdescRight">Default Constructor.  <a href="#c27f1480054a9c9e50dc21f7404cff3b"></a><br></dl><li><a class="el" href="a00109.html#527a27920c92905c69beba6d2a8c1bf5">PictureBuffer</a> (<a class="el" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf, const int xlen, const int ylen, const unsigned int luma_depth, const unsigned int chroma_depth, bool using_ac)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#527a27920c92905c69beba6d2a8c1bf5"></a><br></dl><li><a class="el" href="a00109.html#1d7e955c7a5df16b0fabf0f0371728d0">PictureBuffer</a> (<a class="el" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf, const int numL1, const int L1sep, const int xlen, const int ylen, const unsigned int luma_depth, const unsigned int chroma_depth, bool interlace, bool using_ac)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#1d7e955c7a5df16b0fabf0f0371728d0"></a><br></dl><li><a class="el" href="a00109.html#dcce23dbecdc233b9d1508d580a5cdf0">PictureBuffer</a> (const <a class="el" href="a00109.html">PictureBuffer</a> &amp;cpy)
<dl class="el"><dd class="mdescRight">Copy constructor.  <a href="#dcce23dbecdc233b9d1508d580a5cdf0"></a><br></dl><li><a class="el" href="a00109.html">PictureBuffer</a> &amp; <a class="el" href="a00109.html#62409580eb883c6581fb7a6e11108e86">operator=</a> (const <a class="el" href="a00109.html">PictureBuffer</a> &amp;rhs)
<dl class="el"><dd class="mdescRight">Operator=.  <a href="#62409580eb883c6581fb7a6e11108e86"></a><br></dl><li><a class="el" href="a00109.html#321546600f10838d67e283689894bed5">~PictureBuffer</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#321546600f10838d67e283689894bed5"></a><br></dl><li><a class="el" href="a00108.html">Picture</a> &amp; <a class="el" href="a00109.html#22a0cf81f924cbd16a301d1dcbc1c7a5">GetPicture</a> (const unsigned int pnum)
<dl class="el"><dd class="mdescRight">Get picture with a given picture number (NOT with a given position in the buffer).  <a href="#22a0cf81f924cbd16a301d1dcbc1c7a5"></a><br></dl><li>const <a class="el" href="a00108.html">Picture</a> &amp; <a class="el" href="a00109.html#41aa775ca029aefdf53fc210f8a858eb">GetPicture</a> (const unsigned int pnum) const 
<dl class="el"><dd class="mdescRight">Get picture with a given picture number (NOT with a given position in the buffer).  <a href="#41aa775ca029aefdf53fc210f8a858eb"></a><br></dl><li><a class="el" href="a00108.html">Picture</a> &amp; <a class="el" href="a00109.html#9fe076fa8c5716d2664c9606e2be8049">GetPicture</a> (const unsigned int pnum, bool &amp;is_present)
<dl class="el"><dd class="mdescRight">Get picture with a given picture number, setting a flag to true if it's there.  <a href="#9fe076fa8c5716d2664c9606e2be8049"></a><br></dl><li>const <a class="el" href="a00108.html">Picture</a> &amp; <a class="el" href="a00109.html#b42681b142be162002c7c63ad7857760">GetPicture</a> (const unsigned int pnum, bool &amp;is_present) const 
<dl class="el"><dd class="mdescRight">Get picture with a given picture number, setting a flag to true if it's there.  <a href="#b42681b142be162002c7c63ad7857760"></a><br></dl><li>bool <a class="el" href="a00109.html#ebd8f9682b37793f4078d90336451fdc">IsPictureAvail</a> (const unsigned int pnum) const 
<dl class="el"><dd class="mdescRight">Return true if picture with the particular picture number is available else return false.  <a href="#ebd8f9682b37793f4078d90336451fdc"></a><br></dl><li>std::vector&lt; int &gt; <a class="el" href="a00109.html#6463234e4f17612d92e2e57d1e553d4a">Members</a> () const 
<dl class="el"><dd class="mdescRight">Returns a list of member pictures.  <a href="#6463234e4f17612d92e2e57d1e553d4a"></a><br></dl><li>void <a class="el" href="a00109.html#04c05f92aca0d71e4b4ac5c785721ce0">PushPicture</a> (const <a class="el" href="a00113.html">PictureParams</a> &amp;pp)
<dl class="el"><dd class="mdescRight">Put a new picture into the top of the buffer.  <a href="#04c05f92aca0d71e4b4ac5c785721ce0"></a><br></dl><li>void <a class="el" href="a00109.html#ff9771ac310a2d9fb7d178300e136895">CopyPicture</a> (const <a class="el" href="a00108.html">Picture</a> &amp;picture)
<li>void <a class="el" href="a00109.html#7d62e5c97ea71d22b529622b0e974c87">SetRetiredPictureNum</a> (const int show_pnum, const int current_coded_pnum)
<dl class="el"><dd class="mdescRight">Sets the reference picture number that will be cleaned.  <a href="#7d62e5c97ea71d22b529622b0e974c87"></a><br></dl><li>void <a class="el" href="a00109.html#df5e5214d22bda716bd1bafe3dc03275">Remove</a> (int pnum)
<dl class="el"><dd class="mdescRight">Delete picture.  <a href="#df5e5214d22bda716bd1bafe3dc03275"></a><br></dl></ul>
<h2>Private Member Functions</h2>
<ul>
<li>void <a class="el" href="a00109.html#f443e53760289ad6f8840859db42fd6a">ClearSlot</a> (const unsigned int pos)
<dl class="el"><dd class="mdescRight">Clear internal data slot number pos.  <a href="#f443e53760289ad6f8840859db42fd6a"></a><br></dl></ul>
<h2>Private Attributes</h2>
<ul>
<li>std::vector&lt; <a class="el" href="a00108.html">Picture</a> * &gt; <a class="el" href="a00109.html#38a3d6a690384c8cb02fc74fc97041ff">m_pic_data</a>
<dl class="el"><dd class="mdescRight">the buffer storing all the values  <a href="#38a3d6a690384c8cb02fc74fc97041ff"></a><br></dl><li>std::map&lt; unsigned int, <br class="typebreak">
unsigned int &gt; <a class="el" href="a00109.html#cbaa5c3806b67ecfc0e418db28e84a96">m_pnum_map</a>
<dl class="el"><dd class="mdescRight">the map from picture numbers to position in the buffer  <a href="#cbaa5c3806b67ecfc0e418db28e84a96"></a><br></dl></ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The buffer holds pictures in a stack to overcome both reordering due to bi-directional prediction and use as references for subsequence motion estimation. Pictures, and components of pictures, can be accessed by their picture numbers. GOP parameters can be included in the constructors so that pictures can be given types (I picture, L1 picture or L2 picture) on being pushed onto the stack; alternatively, these parameters can be overridden. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="c27f1480054a9c9e50dc21f7404cff3b"></a><!-- doxytag: member="dirac::PictureBuffer::PictureBuffer" ref="c27f1480054a9c9e50dc21f7404cff3b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::PictureBuffer::PictureBuffer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="527a27920c92905c69beba6d2a8c1bf5"></a><!-- doxytag: member="dirac::PictureBuffer::PictureBuffer" ref="527a27920c92905c69beba6d2a8c1bf5" args="(ChromaFormat cf, const int xlen, const int ylen, const unsigned int luma_depth, const unsigned int chroma_depth, bool using_ac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::PictureBuffer::PictureBuffer           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&nbsp;</td>
          <td class="paramname"> <em>cf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>xlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>ylen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>luma_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>chroma_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>using_ac</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a <a class="el" href="a00109.html" title="Holds pictures both for reference and to overcome reordering delay.">PictureBuffer</a> using the chroma format. Suitable for compressing when there are no L2 pictures, or when the temporal prediction structure is to be determined on the fly.<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>cf</em>&nbsp;</td><td>the Chroma format of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xlen</em>&nbsp;</td><td>the luma width of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ylen</em>&nbsp;</td><td>the luma height of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>luma_depth</em>&nbsp;</td><td>the video depth of the luma comp in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chroma_depth</em>&nbsp;</td><td>the video depth of the chroma comp in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>using_ac</em>&nbsp;</td><td>True if using Arithmetic coding to code coefficient data </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1d7e955c7a5df16b0fabf0f0371728d0"></a><!-- doxytag: member="dirac::PictureBuffer::PictureBuffer" ref="1d7e955c7a5df16b0fabf0f0371728d0" args="(ChromaFormat cf, const int numL1, const int L1sep, const int xlen, const int ylen, const unsigned int luma_depth, const unsigned int chroma_depth, bool interlace, bool using_ac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::PictureBuffer::PictureBuffer           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&nbsp;</td>
          <td class="paramname"> <em>cf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>numL1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>L1sep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>xlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>ylen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>luma_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>chroma_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>interlace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>using_ac</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a <a class="el" href="a00109.html" title="Holds pictures both for reference and to overcome reordering delay.">PictureBuffer</a> using the chroma format, the number of L1 pictures between I pictures and the separation in pictures between L1 pictures. Suitable for compressing when there is a full GOP structure or when the temporal prediction structure is to be determined on the fly.<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>cf</em>&nbsp;</td><td>the Chroma format of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>numL1</em>&nbsp;</td><td>the number of Layer 1 pictures before the next I picture. 0 means that there is only one I picture. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>L1sep</em>&nbsp;</td><td>the number of Layer 2 pictures between Layer 1 pictures </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xlen</em>&nbsp;</td><td>the luma width of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ylen</em>&nbsp;</td><td>the luma height of pictures in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>luma_depth</em>&nbsp;</td><td>the video depth of the luma comp in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chroma_depth</em>&nbsp;</td><td>the video depth of the chroma comp in the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>interlace</em>&nbsp;</td><td>Set true if material is being coded in interlaced mode </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>using_ac</em>&nbsp;</td><td>True if using Arithmetic coding to code coefficient data </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="dcce23dbecdc233b9d1508d580a5cdf0"></a><!-- doxytag: member="dirac::PictureBuffer::PictureBuffer" ref="dcce23dbecdc233b9d1508d580a5cdf0" args="(const PictureBuffer &amp;cpy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::PictureBuffer::PictureBuffer           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00109.html">PictureBuffer</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>cpy</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. Removes the current contents of the pictureture buffer and copies in the contents of the initialising buffer. 
</div>
</div><p>
<a class="anchor" name="321546600f10838d67e283689894bed5"></a><!-- doxytag: member="dirac::PictureBuffer::~PictureBuffer" ref="321546600f10838d67e283689894bed5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::PictureBuffer::~PictureBuffer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="f443e53760289ad6f8840859db42fd6a"></a><!-- doxytag: member="dirac::PictureBuffer::ClearSlot" ref="f443e53760289ad6f8840859db42fd6a" args="(const unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::PictureBuffer::ClearSlot           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clear internal data slot number pos 
</div>
</div><p>
<a class="anchor" name="ff9771ac310a2d9fb7d178300e136895"></a><!-- doxytag: member="dirac::PictureBuffer::CopyPicture" ref="ff9771ac310a2d9fb7d178300e136895" args="(const Picture &amp;picture)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::PictureBuffer::CopyPicture           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00108.html">Picture</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>picture</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Put a copy of a new picture into the buffer. 
</div>
</div><p>
<a class="anchor" name="b42681b142be162002c7c63ad7857760"></a><!-- doxytag: member="dirac::PictureBuffer::GetPicture" ref="b42681b142be162002c7c63ad7857760" args="(const unsigned int pnum, bool &amp;is_present) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00108.html">Picture</a>&amp; dirac::PictureBuffer::GetPicture           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&nbsp;</td>
          <td class="paramname"> <em>is_present</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="9fe076fa8c5716d2664c9606e2be8049"></a><!-- doxytag: member="dirac::PictureBuffer::GetPicture" ref="9fe076fa8c5716d2664c9606e2be8049" args="(const unsigned int pnum, bool &amp;is_present)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00108.html">Picture</a>&amp; dirac::PictureBuffer::GetPicture           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&nbsp;</td>
          <td class="paramname"> <em>is_present</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="41aa775ca029aefdf53fc210f8a858eb"></a><!-- doxytag: member="dirac::PictureBuffer::GetPicture" ref="41aa775ca029aefdf53fc210f8a858eb" args="(const unsigned int pnum) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00108.html">Picture</a>&amp; dirac::PictureBuffer::GetPicture           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="22a0cf81f924cbd16a301d1dcbc1c7a5"></a><!-- doxytag: member="dirac::PictureBuffer::GetPicture" ref="22a0cf81f924cbd16a301d1dcbc1c7a5" args="(const unsigned int pnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00108.html">Picture</a>&amp; dirac::PictureBuffer::GetPicture           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="ebd8f9682b37793f4078d90336451fdc"></a><!-- doxytag: member="dirac::PictureBuffer::IsPictureAvail" ref="ebd8f9682b37793f4078d90336451fdc" args="(const unsigned int pnum) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool dirac::PictureBuffer::IsPictureAvail           </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="6463234e4f17612d92e2e57d1e553d4a"></a><!-- doxytag: member="dirac::PictureBuffer::Members" ref="6463234e4f17612d92e2e57d1e553d4a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; dirac::PictureBuffer::Members           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="62409580eb883c6581fb7a6e11108e86"></a><!-- doxytag: member="dirac::PictureBuffer::operator=" ref="62409580eb883c6581fb7a6e11108e86" args="(const PictureBuffer &amp;rhs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00109.html">PictureBuffer</a>&amp; dirac::PictureBuffer::operator=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00109.html">PictureBuffer</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Operator=. Assigns all elements of the rhs to the lhs. 
</div>
</div><p>
<a class="anchor" name="04c05f92aca0d71e4b4ac5c785721ce0"></a><!-- doxytag: member="dirac::PictureBuffer::PushPicture" ref="04c05f92aca0d71e4b4ac5c785721ce0" args="(const PictureParams &amp;pp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::PictureBuffer::PushPicture           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00113.html">PictureParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Put a new picture into the top of the buffer. <a class="el" href="a00108.html" title="A class for encapsulating all the data relating to a picture.">Picture</a> parameters associated with the picture will be as given by the picture parameter object. 
</div>
</div><p>
<a class="anchor" name="df5e5214d22bda716bd1bafe3dc03275"></a><!-- doxytag: member="dirac::PictureBuffer::Remove" ref="df5e5214d22bda716bd1bafe3dc03275" args="(int pnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::PictureBuffer::Remove           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete picture. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pnum</em>&nbsp;</td><td>picture number in display order to be deleted from picture buffer </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="7d62e5c97ea71d22b529622b0e974c87"></a><!-- doxytag: member="dirac::PictureBuffer::SetRetiredPictureNum" ref="7d62e5c97ea71d22b529622b0e974c87" args="(const int show_pnum, const int current_coded_pnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::PictureBuffer::SetRetiredPictureNum           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>show_pnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>current_coded_pnum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicate which picture which has been output and which is no longer required for reference. Expiry times are set in each picture's picture parameters. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>show_pnum</em>&nbsp;</td><td>picture number in display order that can be output </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>current_coded_pnum</em>&nbsp;</td><td>picture number in display order of picture currently being coded </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="38a3d6a690384c8cb02fc74fc97041ff"></a><!-- doxytag: member="dirac::PictureBuffer::m_pic_data" ref="38a3d6a690384c8cb02fc74fc97041ff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="a00108.html">Picture</a>*&gt; <a class="el" href="a00109.html#38a3d6a690384c8cb02fc74fc97041ff">dirac::PictureBuffer::m_pic_data</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cbaa5c3806b67ecfc0e418db28e84a96"></a><!-- doxytag: member="dirac::PictureBuffer::m_pnum_map" ref="cbaa5c3806b67ecfc0e418db28e84a96" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;unsigned int,unsigned int&gt; <a class="el" href="a00109.html#cbaa5c3806b67ecfc0e418db28e84a96">dirac::PictureBuffer::m_pnum_map</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00213_source.html">picture_buffer.h</a></ul>
</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>