<!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="a00050.html">DiracByteStream</a> </div> <div class="contents"> <h1>dirac::DiracByteStream Class Reference</h1><!-- doxytag: class="dirac::DiracByteStream" --><!-- doxytag: inherits="dirac::ByteIO" -->Represents a series of bytes in the Dirac bytestream specfication format. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="a00180_source.html">dirac_byte_stream.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dirac::DiracByteStream:</div> <div class="dynsection"> <p><center><img src="a00050.png" usemap="#dirac::DiracByteStream_map" border="0" alt=""></center> <map name="dirac::DiracByteStream_map"> <area href="a00016.html" alt="dirac::ByteIO" shape="rect" coords="0,0,142,24"> </map> </div> <p> <a href="a00264.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00050.html#aa62837bbe7a2d3a425a49cf243a95a3">DiracByteStream</a> () <dl class="el"><dd class="mdescRight">Constructor. <a href="#aa62837bbe7a2d3a425a49cf243a95a3"></a><br></dl><li><a class="el" href="a00050.html#9229b3897fa9a6b32b7cbb26252bf89d">~DiracByteStream</a> () <dl class="el"><dd class="mdescRight">Destructor. <a href="#9229b3897fa9a6b32b7cbb26252bf89d"></a><br></dl><li>void <a class="el" href="a00050.html#886ecda8d1eb1c1e52023bf813b296e8">AddBytes</a> (char *start, int count) <dl class="el"><dd class="mdescRight">Adds Dirac-formatted bytes to internal-byte-stream for processing. <a href="#886ecda8d1eb1c1e52023bf813b296e8"></a><br></dl><li><a class="el" href="a00049.html">DiracByteStats</a> <a class="el" href="a00050.html#344c3942117d3eb82b3537dd0b3aeb59">GetLastUnitStats</a> () <dl class="el"><dd class="mdescRight">Gets the statistics of the most recent parse-unit to be processed. <a href="#344c3942117d3eb82b3537dd0b3aeb59"></a><br></dl><li><a class="el" href="a00105.html">ParseUnitByteIO</a> * <a class="el" href="a00050.html#3c4403fae9c52fd1f1085af2886dc87b">GetNextParseUnit</a> () <dl class="el"><dd class="mdescRight">Gets the next parse-unit in the current byte-stream. <a href="#3c4403fae9c52fd1f1085af2886dc87b"></a><br></dl><li><a class="el" href="a00049.html">DiracByteStats</a> <a class="el" href="a00050.html#2bb41c9af3925c92283d7b9461b1f133">GetSequenceStats</a> () const <dl class="el"><dd class="mdescRight">Gets stats for current sequence. <a href="#2bb41c9af3925c92283d7b9461b1f133"></a><br></dl><li>void <a class="el" href="a00050.html#a6f761de5d04f3845a988d9ef916af64">AddSequenceHeader</a> (<a class="el" href="a00130.html">SequenceHeaderByteIO</a> *p_seqheader_byteio) <dl class="el"><dd class="mdescRight">Adds a random access point to the current Dirac byte stream. <a href="#a6f761de5d04f3845a988d9ef916af64"></a><br></dl><li>void <a class="el" href="a00050.html#c231bc660f415496631184d9c2bd32b5">AddPicture</a> (<a class="el" href="a00110.html">PictureByteIO</a> *p_frame_byteio) <dl class="el"><dd class="mdescRight">Adds a picture to the current Dirac byte stream. <a href="#c231bc660f415496631184d9c2bd32b5"></a><br></dl><li>void <a class="el" href="a00050.html#df3a7778cabf59f308c627a4c8414412">Clear</a> () <dl class="el"><dd class="mdescRight">Clear parse-units. <a href="#df3a7778cabf59f308c627a4c8414412"></a><br></dl><li><a class="el" href="a00049.html">DiracByteStats</a> <a class="el" href="a00050.html#55397bfb36f5469534737fc76ec0b208">EndSequence</a> () <dl class="el"><dd class="mdescRight">Insert end-of-sequence data. <a href="#55397bfb36f5469534737fc76ec0b208"></a><br></dl><li>const std::string <a class="el" href="a00050.html#888f2967817a63db1ba2dd2f0ce2ae7c">GetBytes</a> () <dl class="el"><dd class="mdescRight">Gets a pointer to all current output bytes. <a href="#888f2967817a63db1ba2dd2f0ce2ae7c"></a><br></dl><li>bool <a class="el" href="a00050.html#bfffa7f06d0a0643a0d0559f1fe44008">IsUnitAvailable</a> () const <dl class="el"><dd class="mdescRight">Any info pending? <a href="#bfffa7f06d0a0643a0d0559f1fe44008"></a><br></dl></ul> <h2>Private Types</h2> <ul> <li>typedef std::queue< std::pair<br class="typebreak"> < <a class="el" href="a00234.html#fa886465a1d19ed90cf29a1100040afc">ParseUnitType</a>, <br class="typebreak"> <a class="el" href="a00105.html">ParseUnitByteIO</a> * > > <a class="el" href="a00050.html#67bf15529dedc11e2701faaa5355d83f">ParseUnitList</a> <dl class="el"><dd class="mdescRight">Parse-units in Dirac stream. <a href="#67bf15529dedc11e2701faaa5355d83f"></a><br></dl></ul> <h2>Private Member Functions</h2> <ul> <li>void <a class="el" href="a00050.html#c29f481865e866b459175371ad016ae4">Reset</a> (<a class="el" href="a00105.html">ParseUnitByteIO</a> *p_curr_unit, int pos) </ul> <h2>Private Attributes</h2> <ul> <li><a class="el" href="a00050.html#67bf15529dedc11e2701faaa5355d83f">ParseUnitList</a> <a class="el" href="a00050.html#5e0e0c2f59124ab27ef5efe38e2cd764">m_parse_unit_list</a> <li><a class="el" href="a00105.html">ParseUnitByteIO</a> * <a class="el" href="a00050.html#f4d273af590708a285bb77769591c22f">mp_prev_parse_unit</a> <dl class="el"><dd class="mdescRight">Last unit to be processed Required for specifying the previous parse-unit. <a href="#f4d273af590708a285bb77769591c22f"></a><br></dl><li><a class="el" href="a00049.html">DiracByteStats</a> <a class="el" href="a00050.html#b821c79768622050595465d8c87dc584">m_sequence_stats</a> <dl class="el"><dd class="mdescRight">Stats for current sequence. <a href="#b821c79768622050595465d8c87dc584"></a><br></dl></ul> <hr><a name="_details"></a><h2>Detailed Description</h2> These bytes are grouped into more managable parse units by this class. <hr><h2>Member Typedef Documentation</h2> <a class="anchor" name="67bf15529dedc11e2701faaa5355d83f"></a><!-- doxytag: member="dirac::DiracByteStream::ParseUnitList" ref="67bf15529dedc11e2701faaa5355d83f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::queue< std::pair <<a class="el" href="a00234.html#fa886465a1d19ed90cf29a1100040afc">ParseUnitType</a>, <a class="el" href="a00105.html">ParseUnitByteIO</a>*> > <a class="el" href="a00050.html#67bf15529dedc11e2701faaa5355d83f">dirac::DiracByteStream::ParseUnitList</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="aa62837bbe7a2d3a425a49cf243a95a3"></a><!-- doxytag: member="dirac::DiracByteStream::DiracByteStream" ref="aa62837bbe7a2d3a425a49cf243a95a3" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::DiracByteStream::DiracByteStream </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9229b3897fa9a6b32b7cbb26252bf89d"></a><!-- doxytag: member="dirac::DiracByteStream::~DiracByteStream" ref="9229b3897fa9a6b32b7cbb26252bf89d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::DiracByteStream::~DiracByteStream </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="886ecda8d1eb1c1e52023bf813b296e8"></a><!-- doxytag: member="dirac::DiracByteStream::AddBytes" ref="886ecda8d1eb1c1e52023bf813b296e8" args="(char *start, int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::DiracByteStream::AddBytes </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>start</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>count</em></td><td> </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>start</em> </td><td>Start of char list </td></tr> <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>Number of chars </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="c231bc660f415496631184d9c2bd32b5"></a><!-- doxytag: member="dirac::DiracByteStream::AddPicture" ref="c231bc660f415496631184d9c2bd32b5" args="(PictureByteIO *p_frame_byteio)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::DiracByteStream::AddPicture </td> <td>(</td> <td class="paramtype"><a class="el" href="a00110.html">PictureByteIO</a> * </td> <td class="paramname"> <em>p_frame_byteio</em> </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_frame_byteio</em> </td><td><a class="el" href="a00108.html" title="A class for encapsulating all the data relating to a picture.">Picture</a> stream. This class is now responsible for deleting. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="a6f761de5d04f3845a988d9ef916af64"></a><!-- doxytag: member="dirac::DiracByteStream::AddSequenceHeader" ref="a6f761de5d04f3845a988d9ef916af64" args="(SequenceHeaderByteIO *p_seqheader_byteio)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::DiracByteStream::AddSequenceHeader </td> <td>(</td> <td class="paramtype"><a class="el" href="a00130.html">SequenceHeaderByteIO</a> * </td> <td class="paramname"> <em>p_seqheader_byteio</em> </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_seqheader_byteio</em> </td><td>Sequence header data. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="df3a7778cabf59f308c627a4c8414412"></a><!-- doxytag: member="dirac::DiracByteStream::Clear" ref="df3a7778cabf59f308c627a4c8414412" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::DiracByteStream::Clear </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="55397bfb36f5469534737fc76ec0b208"></a><!-- doxytag: member="dirac::DiracByteStream::EndSequence" ref="55397bfb36f5469534737fc76ec0b208" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00049.html">DiracByteStats</a> dirac::DiracByteStream::EndSequence </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Sequence stats </dd></dl> </div> </div><p> <a class="anchor" name="888f2967817a63db1ba2dd2f0ce2ae7c"></a><!-- doxytag: member="dirac::DiracByteStream::GetBytes" ref="888f2967817a63db1ba2dd2f0ce2ae7c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string dirac::DiracByteStream::GetBytes </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented from <a class="el" href="a00016.html#c6dc5649b47b66bfc1688d93eeec5430">dirac::ByteIO</a>.</p> </div> </div><p> <a class="anchor" name="344c3942117d3eb82b3537dd0b3aeb59"></a><!-- doxytag: member="dirac::DiracByteStream::GetLastUnitStats" ref="344c3942117d3eb82b3537dd0b3aeb59" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00049.html">DiracByteStats</a> dirac::DiracByteStream::GetLastUnitStats </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Byte-statistics </dd></dl> </div> </div><p> <a class="anchor" name="3c4403fae9c52fd1f1085af2886dc87b"></a><!-- doxytag: member="dirac::DiracByteStream::GetNextParseUnit" ref="3c4403fae9c52fd1f1085af2886dc87b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00105.html">ParseUnitByteIO</a>* dirac::DiracByteStream::GetNextParseUnit </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="2bb41c9af3925c92283d7b9461b1f133"></a><!-- doxytag: member="dirac::DiracByteStream::GetSequenceStats" ref="2bb41c9af3925c92283d7b9461b1f133" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00049.html">DiracByteStats</a> dirac::DiracByteStream::GetSequenceStats </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="bfffa7f06d0a0643a0d0559f1fe44008"></a><!-- doxytag: member="dirac::DiracByteStream::IsUnitAvailable" ref="bfffa7f06d0a0643a0d0559f1fe44008" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool dirac::DiracByteStream::IsUnitAvailable </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c29f481865e866b459175371ad016ae4"></a><!-- doxytag: member="dirac::DiracByteStream::Reset" ref="c29f481865e866b459175371ad016ae4" args="(ParseUnitByteIO *p_curr_unit, int pos)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::DiracByteStream::Reset </td> <td>(</td> <td class="paramtype"><a class="el" href="a00105.html">ParseUnitByteIO</a> * </td> <td class="paramname"> <em>p_curr_unit</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>pos</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="5e0e0c2f59124ab27ef5efe38e2cd764"></a><!-- doxytag: member="dirac::DiracByteStream::m_parse_unit_list" ref="5e0e0c2f59124ab27ef5efe38e2cd764" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00050.html#67bf15529dedc11e2701faaa5355d83f">ParseUnitList</a> <a class="el" href="a00050.html#5e0e0c2f59124ab27ef5efe38e2cd764">dirac::DiracByteStream::m_parse_unit_list</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="b821c79768622050595465d8c87dc584"></a><!-- doxytag: member="dirac::DiracByteStream::m_sequence_stats" ref="b821c79768622050595465d8c87dc584" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00049.html">DiracByteStats</a> <a class="el" href="a00050.html#b821c79768622050595465d8c87dc584">dirac::DiracByteStream::m_sequence_stats</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="f4d273af590708a285bb77769591c22f"></a><!-- doxytag: member="dirac::DiracByteStream::mp_prev_parse_unit" ref="f4d273af590708a285bb77769591c22f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00105.html">ParseUnitByteIO</a>* <a class="el" href="a00050.html#f4d273af590708a285bb77769591c22f">dirac::DiracByteStream::mp_prev_parse_unit</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="a00180_source.html">dirac_byte_stream.h</a></ul> </div> <hr> <p align="center"><small> © 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>