<!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="a00016.html">ByteIO</a> </div> <div class="contents"> <h1>dirac::ByteIO Class Reference</h1><!-- doxytag: class="dirac::ByteIO" -->Class <a class="el" href="a00016.html" title="Class ByteIO - top-level class for reading/writing bytes to a stream.">ByteIO</a> - top-level class for reading/writing bytes to a stream. <p> <code>#include <<a class="el" href="a00168_source.html">byteio.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dirac::ByteIO:</div> <div class="dynsection"> <p><center><img src="a00016.png" usemap="#dirac::ByteIO_map" border="0" alt=""></center> <map name="dirac::ByteIO_map"> <area href="a00020.html" alt="dirac::CodingParamsByteIO" shape="rect" coords="183,56,356,80"> <area href="a00025.html" alt="dirac::ComponentByteIO" shape="rect" coords="183,112,356,136"> <area href="a00050.html" alt="dirac::DiracByteStream" shape="rect" coords="183,168,356,192"> <area href="a00094.html" alt="dirac::MvDataByteIO" shape="rect" coords="183,224,356,248"> <area href="a00095.html" alt="dirac::MvDataElementByteIO" shape="rect" coords="183,280,356,304"> <area href="a00104.html" alt="dirac::ParseParamsByteIO" shape="rect" coords="183,336,356,360"> <area href="a00105.html" alt="dirac::ParseUnitByteIO" shape="rect" coords="183,392,356,416"> <area href="a00132.html" alt="dirac::SourceParamsByteIO" shape="rect" coords="183,448,356,472"> <area href="a00141.html" alt="dirac::SubbandByteIO" shape="rect" coords="183,504,356,528"> <area href="a00144.html" alt="dirac::TransformByteIO" shape="rect" coords="183,560,356,584"> </map> </div> <p> <a href="a00260.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00016.html#ec6f9d7b1502f39e74eba50035402a62">ByteIO</a> (bool new_stream=true) <dl class="el"><dd class="mdescRight">Default constructor. <a href="#ec6f9d7b1502f39e74eba50035402a62"></a><br></dl><li><a class="el" href="a00016.html#82c9d37dcf38592397aac31878ad64f9">ByteIO</a> (const <a class="el" href="a00016.html">ByteIO</a> &stream_data) <dl class="el"><dd class="mdescRight">Constructor. <a href="#82c9d37dcf38592397aac31878ad64f9"></a><br></dl><li>virtual <a class="el" href="a00016.html#c509b1dbbd2d20dfb5ccd6ffd6b0db6f">~ByteIO</a> () <dl class="el"><dd class="mdescRight">Destructor. <a href="#c509b1dbbd2d20dfb5ccd6ffd6b0db6f"></a><br></dl><li>virtual void <a class="el" href="a00016.html#92ce0abd65cbfcc16928878477a5178b">CollateByteStats</a> (<a class="el" href="a00049.html">DiracByteStats</a> &dirac_byte_stats) <dl class="el"><dd class="mdescRight">Gathers byte-stream statistics. <a href="#92ce0abd65cbfcc16928878477a5178b"></a><br></dl><li>virtual const std::string <a class="el" href="a00016.html#c6dc5649b47b66bfc1688d93eeec5430">GetBytes</a> () <dl class="el"><dd class="mdescRight">Get bytes in Dirac-bytestream format. <a href="#c6dc5649b47b66bfc1688d93eeec5430"></a><br></dl><li>int <a class="el" href="a00016.html#9a4ddcb132317f766eb35b05b198be2f">GetReadBytePosition</a> () const <dl class="el"><dd class="mdescRight">Get position of read stream pointer. <a href="#9a4ddcb132317f766eb35b05b198be2f"></a><br></dl><li>virtual int <a class="el" href="a00016.html#4f8f25a0c300e4df73149d1e44437b11">GetSize</a> () const <dl class="el"><dd class="mdescRight">Gets size (in bytes). <a href="#4f8f25a0c300e4df73149d1e44437b11"></a><br></dl><li>void <a class="el" href="a00016.html#97bcf5e39020155180589d322a9abfb7">SetByteParams</a> (const <a class="el" href="a00016.html">ByteIO</a> &byte_io) <dl class="el"><dd class="mdescRight">Copies stream source/destination info. <a href="#97bcf5e39020155180589d322a9abfb7"></a><br></dl><li>void <a class="el" href="a00016.html#66c2bdd3f07e2509c529aef17f2785fd">ByteAlignOutput</a> () <dl class="el"><dd class="mdescRight">Sync input for byte-alignment. <a href="#66c2bdd3f07e2509c529aef17f2785fd"></a><br></dl><li>void <a class="el" href="a00016.html#540c5586d4e62cc16ad2e8caac836f15">WriteUint</a> (unsigned int value) <dl class="el"><dd class="mdescRight">Ouputs an unsigned integer in interleaved exp Golomb format. <a href="#540c5586d4e62cc16ad2e8caac836f15"></a><br></dl><li>void <a class="el" href="a00016.html#9e24c698603c7402ff35e7846e6351f4">SetBitsLeft</a> (int left_bits) <dl class="el"><dd class="mdescRight">Sets input size in bits. <a href="#9e24c698603c7402ff35e7846e6351f4"></a><br></dl><li>int <a class="el" href="a00016.html#d1bc447203b8868fe18e4b125a30686c">BitsLeft</a> (void) <dl class="el"><dd class="mdescRight">Sets input size in bits. <a href="#d1bc447203b8868fe18e4b125a30686c"></a><br></dl></ul> <h2>Protected Member Functions</h2> <ul> <li>bool <a class="el" href="a00016.html#d48276ed9a97dd5b1523770a7b179bb8">CanRead</a> () const <li>bool <a class="el" href="a00016.html#58a533748a9a6092403338ecebda52d7">GetBit</a> (unsigned char &c, int pos) const <li>void <a class="el" href="a00016.html#d6e3bb4656d8f0f7c0425089b7ff0b4e">SetBit</a> (unsigned char &c, int pos) const <li>void <a class="el" href="a00016.html#5076eab8b19c9165efba38a18787ea32">SetBits</a> (unsigned char &c, unsigned char bits) const <li>void <a class="el" href="a00016.html#466f9161786ae8850c2456dc7fca8265">ByteAlignInput</a> () <dl class="el"><dd class="mdescRight">Sync input for byte-alignment. <a href="#466f9161786ae8850c2456dc7fca8265"></a><br></dl><li>bool <a class="el" href="a00016.html#c7091d45d726fde33178fbcdd154a176">ReadBool</a> () <dl class="el"><dd class="mdescRight">Reads boolean value. <a href="#c7091d45d726fde33178fbcdd154a176"></a><br></dl><li>bool <a class="el" href="a00016.html#e3af442f684c2030f7742c655e4597a6">ReadBoolB</a> () <dl class="el"><dd class="mdescRight">Reads boolean value - bounded i/o. <a href="#e3af442f684c2030f7742c655e4597a6"></a><br></dl><li>int <a class="el" href="a00016.html#5145781bdbe6b8c8c36d9d639eccd84f">ReadBit</a> () <dl class="el"><dd class="mdescRight">Reads next bit. <a href="#5145781bdbe6b8c8c36d9d639eccd84f"></a><br></dl><li>int <a class="el" href="a00016.html#7846a39d6f9dafe4756277db914326c7">ReadBitB</a> () <dl class="el"><dd class="mdescRight">Reads next bit - bounded i/o. <a href="#7846a39d6f9dafe4756277db914326c7"></a><br></dl><li>unsigned int <a class="el" href="a00016.html#583c98d246f85246ceb938d6909f850c">ReadNBits</a> (int count) <dl class="el"><dd class="mdescRight">Reads next 'count' bits. <a href="#583c98d246f85246ceb938d6909f850c"></a><br></dl><li>void <a class="el" href="a00016.html#dc1a91d01c26030fe4a95d57612b0b6f">InputBytes</a> (char *data, int count) <dl class="el"><dd class="mdescRight">Reads from stream. <a href="#dc1a91d01c26030fe4a95d57612b0b6f"></a><br></dl><li>void <a class="el" href="a00016.html#389efbc28d12b8a2587868e4f9f1a9ce">FlushInputB</a> () <dl class="el"><dd class="mdescRight">Flushes the bounde input. <a href="#389efbc28d12b8a2587868e4f9f1a9ce"></a><br></dl><li>int <a class="el" href="a00016.html#9854294a504337c68de44de88bb2c269">ReadSint</a> () <dl class="el"><dd class="mdescRight">Reads a signed integer in interleaved exp-Golomb format return Signed integer read. <a href="#9854294a504337c68de44de88bb2c269"></a><br></dl><li>int <a class="el" href="a00016.html#9c9fcce79d165aa1e68fb1fa8bdbec5f">ReadSintB</a> () <dl class="el"><dd class="mdescRight">Reads a signed integer in interleaved exp-Golomb format from bounded input return Signed integer read. <a href="#9c9fcce79d165aa1e68fb1fa8bdbec5f"></a><br></dl><li>unsigned int <a class="el" href="a00016.html#ec1b938f3888a508116c85189d09b1d5">ReadUint</a> () <dl class="el"><dd class="mdescRight">Reads an unsigned integer in interleaved exp Golomb format. <a href="#ec1b938f3888a508116c85189d09b1d5"></a><br></dl><li>unsigned int <a class="el" href="a00016.html#3c1e9ccdd249ea155d8ab8814df6656e">ReadUintB</a> () <dl class="el"><dd class="mdescRight">Reads an unsigned integer in interleaved exp Golomb format from bounded input. <a href="#3c1e9ccdd249ea155d8ab8814df6656e"></a><br></dl><li>unsigned int <a class="el" href="a00016.html#7af5190d77084133723ed478aba8501b">ReadUintLit</a> (const int byte_size) <dl class="el"><dd class="mdescRight">Reads a fixed length unsigned integer from the stream in big endian. <a href="#7af5190d77084133723ed478aba8501b"></a><br></dl><li>unsigned char <a class="el" href="a00016.html#989126d52ec21cba34f5953cd50902d8">InputUnByte</a> () <dl class="el"><dd class="mdescRight">Reads a byte from the stream. <a href="#989126d52ec21cba34f5953cd50902d8"></a><br></dl><li>std::string <a class="el" href="a00016.html#271c375df6d3301d72bd6b8a47db7f0e">InputUnString</a> (const int count) <dl class="el"><dd class="mdescRight">Reads a series of bytes from a stream. <a href="#271c375df6d3301d72bd6b8a47db7f0e"></a><br></dl><li>void <a class="el" href="a00016.html#0ac5a730dab2ed232eff97b49055151e">WriteBit</a> (const bool &bit) <dl class="el"><dd class="mdescRight">Outputs a bit. <a href="#0ac5a730dab2ed232eff97b49055151e"></a><br></dl><li>int <a class="el" href="a00016.html#d28f4baa6032ec38d82bc54951c07356">WriteNBits</a> (unsigned int val) <dl class="el"><dd class="mdescRight">Outputs an unsigned integer. <a href="#d28f4baa6032ec38d82bc54951c07356"></a><br></dl><li>void <a class="el" href="a00016.html#da60dfc1a41793eba73b2ba26b72a991">WriteNBits</a> (unsigned int val, int count) <dl class="el"><dd class="mdescRight">Outputs an n bit integer. <a href="#da60dfc1a41793eba73b2ba26b72a991"></a><br></dl><li>void <a class="el" href="a00016.html#ecb00e80507d2d013d33fb2a0cf466aa">OutputBytes</a> (const std::string &bytes) <dl class="el"><dd class="mdescRight">Outputs a series of bytes. <a href="#ecb00e80507d2d013d33fb2a0cf466aa"></a><br></dl><li>void <a class="el" href="a00016.html#33993235fd567050240030e248f20939">OutputCurrentByte</a> () <dl class="el"><dd class="mdescRight">Outputs current byte contents. <a href="#33993235fd567050240030e248f20939"></a><br></dl><li>void <a class="el" href="a00016.html#4c438a84b3bb41584e3108248668ad19">WriteSint</a> (int val) <dl class="el"><dd class="mdescRight">Outputs an integer in Golomb signed integer format. <a href="#4c438a84b3bb41584e3108248668ad19"></a><br></dl><li>void <a class="el" href="a00016.html#5ab33e6a82d617f64d23289c7ed47491">WriteUintLit</a> (const unsigned int &value, const int &length) <dl class="el"><dd class="mdescRight">Output unsigned int value in big endian format. <a href="#5ab33e6a82d617f64d23289c7ed47491"></a><br></dl><li>void <a class="el" href="a00016.html#155c4c97a602d7d7646bfaae08164625">RemoveRedundantBytes</a> (const int count) <dl class="el"><dd class="mdescRight">Removes portion of byte-stream no longer required. <a href="#155c4c97a602d7d7646bfaae08164625"></a><br></dl><li>void <a class="el" href="a00016.html#86e7df2ca2543ae879d5f35bc4915e73">SeekGet</a> (const int offset, std::ios_base::seekdir dir) </ul> <h2>Protected Attributes</h2> <ul> <li>std::stringstream * <a class="el" href="a00016.html#b172abdf991b8cab7d2b20de666385d0">mp_stream</a> <dl class="el"><dd class="mdescRight">Input/output steam. <a href="#b172abdf991b8cab7d2b20de666385d0"></a><br></dl></ul> <h2>Private Attributes</h2> <ul> <li>unsigned char <a class="el" href="a00016.html#3df0a16d8af48ed48fc3ebd15d2b81de">m_current_byte</a> <dl class="el"><dd class="mdescRight">Char used for temporary storage of op data bits. <a href="#3df0a16d8af48ed48fc3ebd15d2b81de"></a><br></dl><li>int <a class="el" href="a00016.html#18c019ab837877b04029da7771d6e95e">m_current_pos</a> <dl class="el"><dd class="mdescRight">Used to set individual bit within the current header byte. <a href="#18c019ab837877b04029da7771d6e95e"></a><br></dl><li>int <a class="el" href="a00016.html#97d628c7c0231104f6fa384119523935">m_num_bytes</a> <dl class="el"><dd class="mdescRight">Number of bytes processed. <a href="#97d628c7c0231104f6fa384119523935"></a><br></dl><li>bool <a class="el" href="a00016.html#3c386246cb890c919548f4afc3fb2198">m_new_stream</a> <dl class="el"><dd class="mdescRight">stream alloc flag <a href="#3c386246cb890c919548f4afc3fb2198"></a><br></dl><li>int <a class="el" href="a00016.html#107471494a3589b4c9744b052cfdc7eb">m_bits_left</a> <dl class="el"><dd class="mdescRight">num bits left to read <a href="#107471494a3589b4c9744b052cfdc7eb"></a><br></dl></ul> <h2>Friends</h2> <ul> <li>class <a class="el" href="a00016.html#324130cc8ade9aec0cf733ee3b310fc5">ArithCodecBase</a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00001.html" title="Abstract binary arithmetic coding class.">ArithCodec</a> can see internals for getting/setting bits. <a href="#324130cc8ade9aec0cf733ee3b310fc5"></a><br></dl><li>class <a class="el" href="a00016.html#de6691bce9ce5bb6b270ae86901ef976">ArithCodecToVLCAdapter</a> <dl class="el"><dd class="mdescRight">VLC entropy coder can see internals for getting/setting bits. <a href="#de6691bce9ce5bb6b270ae86901ef976"></a><br></dl></ul> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="ec6f9d7b1502f39e74eba50035402a62"></a><!-- doxytag: member="dirac::ByteIO::ByteIO" ref="ec6f9d7b1502f39e74eba50035402a62" args="(bool new_stream=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::ByteIO::ByteIO </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>new_stream</em> = <code>true</code> </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>new_stream</em> </td><td><b>Has Creates & owns data buffer </b> </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="82c9d37dcf38592397aac31878ad64f9"></a><!-- doxytag: member="dirac::ByteIO::ByteIO" ref="82c9d37dcf38592397aac31878ad64f9" args="(const ByteIO &stream_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::ByteIO::ByteIO </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00016.html">ByteIO</a> & </td> <td class="paramname"> <em>stream_data</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>stream_data</em> </td><td>Copies data buffer details </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="c509b1dbbd2d20dfb5ccd6ffd6b0db6f"></a><!-- doxytag: member="dirac::ByteIO::~ByteIO" ref="c509b1dbbd2d20dfb5ccd6ffd6b0db6f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual dirac::ByteIO::~ByteIO </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="d1bc447203b8868fe18e4b125a30686c"></a><!-- doxytag: member="dirac::ByteIO::BitsLeft" ref="d1bc447203b8868fe18e4b125a30686c" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::BitsLeft </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Read is limited by this <p>References <a class="el" href="a00168_source.html#l00387">m_bits_left</a>.</p> </div> </div><p> <a class="anchor" name="466f9161786ae8850c2456dc7fca8265"></a><!-- doxytag: member="dirac::ByteIO::ByteAlignInput" ref="466f9161786ae8850c2456dc7fca8265" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::ByteAlignInput </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="66c2bdd3f07e2509c529aef17f2785fd"></a><!-- doxytag: member="dirac::ByteIO::ByteAlignOutput" ref="66c2bdd3f07e2509c529aef17f2785fd" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::ByteAlignOutput </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="d48276ed9a97dd5b1523770a7b179bb8"></a><!-- doxytag: member="dirac::ByteIO::CanRead" ref="d48276ed9a97dd5b1523770a7b179bb8" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool dirac::ByteIO::CanRead </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="92ce0abd65cbfcc16928878477a5178b"></a><!-- doxytag: member="dirac::ByteIO::CollateByteStats" ref="92ce0abd65cbfcc16928878477a5178b" args="(DiracByteStats &dirac_byte_stats)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void dirac::ByteIO::CollateByteStats </td> <td>(</td> <td class="paramtype"><a class="el" href="a00049.html">DiracByteStats</a> & </td> <td class="paramname"> <em>dirac_byte_stats</em> </td> <td> ) </td> <td><code> [inline, virtual]</code></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>dirac_byte_stats</em> </td><td>Collates byte information </td></tr> </table> </dl> <p>Reimplemented in <a class="el" href="a00025.html#795f2d4e7ba724125bd9cb7a5080a8bc">dirac::ComponentByteIO</a>, <a class="el" href="a00066.html#a388d70725103010ee8122817ad4da79">dirac::EndOfSequenceByteIO</a>, <a class="el" href="a00094.html#9ce321919700b9e282547040f5e41a02">dirac::MvDataByteIO</a>, <a class="el" href="a00105.html#1f36aeff86b15bbab398c666ea8cc930">dirac::ParseUnitByteIO</a>, <a class="el" href="a00110.html#6f02a5c3e1258dec9c0bbddb0e25261d">dirac::PictureByteIO</a>, and <a class="el" href="a00144.html#78d2b5a1913e50f1676d666a84ff83e8">dirac::TransformByteIO</a>.</p> <p>References <a class="el" href="a00049.html#becdc0a6af66b7f8d726a8aa414f3517">dirac::DiracByteStats::Clear()</a>.</p> </div> </div><p> <a class="anchor" name="389efbc28d12b8a2587868e4f9f1a9ce"></a><!-- doxytag: member="dirac::ByteIO::FlushInputB" ref="389efbc28d12b8a2587868e4f9f1a9ce" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::FlushInputB </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="58a533748a9a6092403338ecebda52d7"></a><!-- doxytag: member="dirac::ByteIO::GetBit" ref="58a533748a9a6092403338ecebda52d7" args="(unsigned char &c, int pos) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool dirac::ByteIO::GetBit </td> <td>(</td> <td class="paramtype">unsigned char & </td> <td class="paramname"> <em>c</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> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00066">BIT_IN_CHAR</a>.</p> </div> </div><p> <a class="anchor" name="c6dc5649b47b66bfc1688d93eeec5430"></a><!-- doxytag: member="dirac::ByteIO::GetBytes" ref="c6dc5649b47b66bfc1688d93eeec5430" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const std::string dirac::ByteIO::GetBytes </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented in <a class="el" href="a00050.html#888f2967817a63db1ba2dd2f0ce2ae7c">dirac::DiracByteStream</a>, <a class="el" href="a00094.html#7d4813f773ac1f20da8a239853d27a5e">dirac::MvDataByteIO</a>, <a class="el" href="a00095.html#0cc8d155c1d64f0bd4b865a89f075a94">dirac::MvDataElementByteIO</a>, <a class="el" href="a00105.html#24f54a63d7dd8d65d849664d43c3a88d">dirac::ParseUnitByteIO</a>, <a class="el" href="a00110.html#37f755dbe495de8bdb338cdad3ff5da2">dirac::PictureByteIO</a>, <a class="el" href="a00141.html#84d6e61fdf5b9a3561456222074b5151">dirac::SubbandByteIO</a>, and <a class="el" href="a00144.html#476bc03eb7978e52f42615fdafd212d8">dirac::TransformByteIO</a>.</p> </div> </div><p> <a class="anchor" name="9a4ddcb132317f766eb35b05b198be2f"></a><!-- doxytag: member="dirac::ByteIO::GetReadBytePosition" ref="9a4ddcb132317f766eb35b05b198be2f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::GetReadBytePosition </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="4f8f25a0c300e4df73149d1e44437b11"></a><!-- doxytag: member="dirac::ByteIO::GetSize" ref="4f8f25a0c300e4df73149d1e44437b11" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int dirac::ByteIO::GetSize </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented in <a class="el" href="a00130.html#919c26eca2d6ff869dd906afa4e23250">dirac::SequenceHeaderByteIO</a>, <a class="el" href="a00094.html#ed4decdd15ae01c6c5d5d01800431bbc">dirac::MvDataByteIO</a>, <a class="el" href="a00095.html#fa1da57a0151009b7415b62ed2abae9d">dirac::MvDataElementByteIO</a>, <a class="el" href="a00105.html#95a696f9ad57770fe393c2667c44b3c8">dirac::ParseUnitByteIO</a>, <a class="el" href="a00110.html#2ab254941d52a0d84decc031cfe05b67">dirac::PictureByteIO</a>, and <a class="el" href="a00144.html#e3949ad00e9b7c21d528d9b9372ddfd4">dirac::TransformByteIO</a>.</p> </div> </div><p> <a class="anchor" name="dc1a91d01c26030fe4a95d57612b0b6f"></a><!-- doxytag: member="dirac::ByteIO::InputBytes" ref="dc1a91d01c26030fe4a95d57612b0b6f" args="(char *data, int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::InputBytes </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>data</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><code> [inline, protected]</code></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>data</em> </td><td>Start of char buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>Number of bytes to read </td></tr> </table> </dl> <p>References <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="989126d52ec21cba34f5953cd50902d8"></a><!-- doxytag: member="dirac::ByteIO::InputUnByte" ref="989126d52ec21cba34f5953cd50902d8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char dirac::ByteIO::InputUnByte </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00377">m_num_bytes</a>, and <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> <p>Referenced by <a class="el" href="a00168_source.html#l00257">InputUnString()</a>.</p> </div> </div><p> <a class="anchor" name="271c375df6d3301d72bd6b8a47db7f0e"></a><!-- doxytag: member="dirac::ByteIO::InputUnString" ref="271c375df6d3301d72bd6b8a47db7f0e" args="(const int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string dirac::ByteIO::InputUnString </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>count</em> </td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00252">InputUnByte()</a>.</p> </div> </div><p> <a class="anchor" name="ecb00e80507d2d013d33fb2a0cf466aa"></a><!-- doxytag: member="dirac::ByteIO::OutputBytes" ref="ecb00e80507d2d013d33fb2a0cf466aa" args="(const std::string &bytes)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::OutputBytes </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>bytes</em> </td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00377">m_num_bytes</a>, and <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="33993235fd567050240030e248f20939"></a><!-- doxytag: member="dirac::ByteIO::OutputCurrentByte" ref="33993235fd567050240030e248f20939" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::OutputCurrentByte </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00367">m_current_byte</a>, <a class="el" href="a00168_source.html#l00372">m_current_pos</a>, <a class="el" href="a00168_source.html#l00377">m_num_bytes</a>, and <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="5145781bdbe6b8c8c36d9d639eccd84f"></a><!-- doxytag: member="dirac::ByteIO::ReadBit" ref="5145781bdbe6b8c8c36d9d639eccd84f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::ReadBit </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="7846a39d6f9dafe4756277db914326c7"></a><!-- doxytag: member="dirac::ByteIO::ReadBitB" ref="7846a39d6f9dafe4756277db914326c7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::ReadBitB </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c7091d45d726fde33178fbcdd154a176"></a><!-- doxytag: member="dirac::ByteIO::ReadBool" ref="c7091d45d726fde33178fbcdd154a176" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool dirac::ByteIO::ReadBool </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="e3af442f684c2030f7742c655e4597a6"></a><!-- doxytag: member="dirac::ByteIO::ReadBoolB" ref="e3af442f684c2030f7742c655e4597a6" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool dirac::ByteIO::ReadBoolB </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00165_source.html#l00077">dirac::ArithCodecToVLCAdapter::DecodeSymbol()</a>.</p> </div> </div><p> <a class="anchor" name="583c98d246f85246ceb938d6909f850c"></a><!-- doxytag: member="dirac::ByteIO::ReadNBits" ref="583c98d246f85246ceb938d6909f850c" args="(int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int dirac::ByteIO::ReadNBits </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>count</em> </td> <td> ) </td> <td><code> [protected]</code></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>count</em> </td><td>number of bits to be read </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>unsigned interger read </dd></dl> </div> </div><p> <a class="anchor" name="9854294a504337c68de44de88bb2c269"></a><!-- doxytag: member="dirac::ByteIO::ReadSint" ref="9854294a504337c68de44de88bb2c269" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::ReadSint </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9c9fcce79d165aa1e68fb1fa8bdbec5f"></a><!-- doxytag: member="dirac::ByteIO::ReadSintB" ref="9c9fcce79d165aa1e68fb1fa8bdbec5f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::ReadSintB </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="ec1b938f3888a508116c85189d09b1d5"></a><!-- doxytag: member="dirac::ByteIO::ReadUint" ref="ec1b938f3888a508116c85189d09b1d5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int dirac::ByteIO::ReadUint </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Unsigned Integer read </dd></dl> </div> </div><p> <a class="anchor" name="3c1e9ccdd249ea155d8ab8814df6656e"></a><!-- doxytag: member="dirac::ByteIO::ReadUintB" ref="3c1e9ccdd249ea155d8ab8814df6656e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int dirac::ByteIO::ReadUintB </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Unsigned Integer read </dd></dl> </div> </div><p> <a class="anchor" name="7af5190d77084133723ed478aba8501b"></a><!-- doxytag: member="dirac::ByteIO::ReadUintLit" ref="7af5190d77084133723ed478aba8501b" args="(const int byte_size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int dirac::ByteIO::ReadUintLit </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>byte_size</em> </td> <td> ) </td> <td><code> [inline, protected]</code></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>byte_size</em> </td><td>Number of bytes in fixed length integer </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Unsigned Integer read </dd></dl> <p>References <a class="el" href="a00168_source.html#l00377">m_num_bytes</a>, and <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="155c4c97a602d7d7646bfaae08164625"></a><!-- doxytag: member="dirac::ByteIO::RemoveRedundantBytes" ref="155c4c97a602d7d7646bfaae08164625" args="(const int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::RemoveRedundantBytes </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>count</em> </td> <td> ) </td> <td><code> [protected]</code></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>count</em> </td><td>Number of bytes to be removed from beginning of stream </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="86e7df2ca2543ae879d5f35bc4915e73"></a><!-- doxytag: member="dirac::ByteIO::SeekGet" ref="86e7df2ca2543ae879d5f35bc4915e73" args="(const int offset, std::ios_base::seekdir dir)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::SeekGet </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::ios_base::seekdir </td> <td class="paramname"> <em>dir</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <a class="anchor" name="d6e3bb4656d8f0f7c0425089b7ff0b4e"></a><!-- doxytag: member="dirac::ByteIO::SetBit" ref="d6e3bb4656d8f0f7c0425089b7ff0b4e" args="(unsigned char &c, int pos) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::SetBit </td> <td>(</td> <td class="paramtype">unsigned char & </td> <td class="paramname"> <em>c</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> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>References <a class="el" href="a00168_source.html#l00066">BIT_IN_CHAR</a>.</p> </div> </div><p> <a class="anchor" name="5076eab8b19c9165efba38a18787ea32"></a><!-- doxytag: member="dirac::ByteIO::SetBits" ref="5076eab8b19c9165efba38a18787ea32" args="(unsigned char &c, unsigned char bits) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::SetBits </td> <td>(</td> <td class="paramtype">unsigned char & </td> <td class="paramname"> <em>c</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>bits</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9e24c698603c7402ff35e7846e6351f4"></a><!-- doxytag: member="dirac::ByteIO::SetBitsLeft" ref="9e24c698603c7402ff35e7846e6351f4" args="(int left_bits)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::SetBitsLeft </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>left_bits</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Read is limited by this <p>References <a class="el" href="a00168_source.html#l00387">m_bits_left</a>.</p> </div> </div><p> <a class="anchor" name="97bcf5e39020155180589d322a9abfb7"></a><!-- doxytag: member="dirac::ByteIO::SetByteParams" ref="97bcf5e39020155180589d322a9abfb7" args="(const ByteIO &byte_io)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::SetByteParams </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00016.html">ByteIO</a> & </td> <td class="paramname"> <em>byte_io</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>byte_io</em> </td><td>Byte source/destination </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="0ac5a730dab2ed232eff97b49055151e"></a><!-- doxytag: member="dirac::ByteIO::WriteBit" ref="0ac5a730dab2ed232eff97b49055151e" args="(const bool &bit)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::WriteBit </td> <td>(</td> <td class="paramtype">const bool & </td> <td class="paramname"> <em>bit</em> </td> <td> ) </td> <td><code> [protected]</code></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>bit</em> </td><td>1/0 Output </td></tr> </table> </dl> <p>Referenced by <a class="el" href="a00165_source.html#l00071">dirac::ArithCodecToVLCAdapter::EncodeSymbol()</a>, and <a class="el" href="a00161_source.html#l00280">dirac::ArithCodecBase::EncodeSymbol()</a>.</p> </div> </div><p> <a class="anchor" name="da60dfc1a41793eba73b2ba26b72a991"></a><!-- doxytag: member="dirac::ByteIO::WriteNBits" ref="da60dfc1a41793eba73b2ba26b72a991" args="(unsigned int val, int count)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::WriteNBits </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>val</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><code> [protected]</code></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>val</em> </td><td>Unsigned Integer to be output </td></tr> <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>number of bits to be written </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="d28f4baa6032ec38d82bc54951c07356"></a><!-- doxytag: member="dirac::ByteIO::WriteNBits" ref="d28f4baa6032ec38d82bc54951c07356" args="(unsigned int val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int dirac::ByteIO::WriteNBits </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>val</em> </td> <td> ) </td> <td><code> [protected]</code></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>val</em> </td><td>Integer to be output </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>number of bits written </dd></dl> </div> </div><p> <a class="anchor" name="4c438a84b3bb41584e3108248668ad19"></a><!-- doxytag: member="dirac::ByteIO::WriteSint" ref="4c438a84b3bb41584e3108248668ad19" args="(int val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::WriteSint </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>val</em> </td> <td> ) </td> <td><code> [protected]</code></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>val</em> </td><td>Integer to be output </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="540c5586d4e62cc16ad2e8caac836f15"></a><!-- doxytag: member="dirac::ByteIO::WriteUint" ref="540c5586d4e62cc16ad2e8caac836f15" args="(unsigned int value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::WriteUint </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>value</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>value</em> </td><td>Integer to be output </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="5ab33e6a82d617f64d23289c7ed47491"></a><!-- doxytag: member="dirac::ByteIO::WriteUintLit" ref="5ab33e6a82d617f64d23289c7ed47491" args="(const unsigned int &value, const int &length)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dirac::ByteIO::WriteUintLit </td> <td>(</td> <td class="paramtype">const unsigned int & </td> <td class="paramname"> <em>value</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int & </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></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>value</em> </td><td>Integer to be output </td></tr> <tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>number of bytes in val to output </td></tr> </table> </dl> <p>References <a class="el" href="a00168_source.html#l00377">m_num_bytes</a>, and <a class="el" href="a00168_source.html#l00349">mp_stream</a>.</p> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="324130cc8ade9aec0cf733ee3b310fc5"></a><!-- doxytag: member="dirac::ByteIO::ArithCodecBase" ref="324130cc8ade9aec0cf733ee3b310fc5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="a00002.html">ArithCodecBase</a><code> [friend]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="de6691bce9ce5bb6b270ae86901ef976"></a><!-- doxytag: member="dirac::ByteIO::ArithCodecToVLCAdapter" ref="de6691bce9ce5bb6b270ae86901ef976" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="a00003.html">ArithCodecToVLCAdapter</a><code> [friend]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="107471494a3589b4c9744b052cfdc7eb"></a><!-- doxytag: member="dirac::ByteIO::m_bits_left" ref="107471494a3589b4c9744b052cfdc7eb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00016.html#107471494a3589b4c9744b052cfdc7eb">dirac::ByteIO::m_bits_left</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00168_source.html#l00142">BitsLeft()</a>, and <a class="el" href="a00168_source.html#l00137">SetBitsLeft()</a>.</p> </div> </div><p> <a class="anchor" name="3df0a16d8af48ed48fc3ebd15d2b81de"></a><!-- doxytag: member="dirac::ByteIO::m_current_byte" ref="3df0a16d8af48ed48fc3ebd15d2b81de" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char <a class="el" href="a00016.html#3df0a16d8af48ed48fc3ebd15d2b81de">dirac::ByteIO::m_current_byte</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00168_source.html#l00301">OutputCurrentByte()</a>.</p> </div> </div><p> <a class="anchor" name="18c019ab837877b04029da7771d6e95e"></a><!-- doxytag: member="dirac::ByteIO::m_current_pos" ref="18c019ab837877b04029da7771d6e95e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00016.html#18c019ab837877b04029da7771d6e95e">dirac::ByteIO::m_current_pos</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00168_source.html#l00301">OutputCurrentByte()</a>.</p> </div> </div><p> <a class="anchor" name="3c386246cb890c919548f4afc3fb2198"></a><!-- doxytag: member="dirac::ByteIO::m_new_stream" ref="3c386246cb890c919548f4afc3fb2198" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00016.html#3c386246cb890c919548f4afc3fb2198">dirac::ByteIO::m_new_stream</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="97d628c7c0231104f6fa384119523935"></a><!-- doxytag: member="dirac::ByteIO::m_num_bytes" ref="97d628c7c0231104f6fa384119523935" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00016.html#97d628c7c0231104f6fa384119523935">dirac::ByteIO::m_num_bytes</a><code> [private]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00168_source.html#l00252">InputUnByte()</a>, <a class="el" href="a00168_source.html#l00290">OutputBytes()</a>, <a class="el" href="a00168_source.html#l00301">OutputCurrentByte()</a>, <a class="el" href="a00168_source.html#l00238">ReadUintLit()</a>, and <a class="el" href="a00168_source.html#l00325">WriteUintLit()</a>.</p> </div> </div><p> <a class="anchor" name="b172abdf991b8cab7d2b20de666385d0"></a><!-- doxytag: member="dirac::ByteIO::mp_stream" ref="b172abdf991b8cab7d2b20de666385d0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::stringstream* <a class="el" href="a00016.html#b172abdf991b8cab7d2b20de666385d0">dirac::ByteIO::mp_stream</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Referenced by <a class="el" href="a00168_source.html#l00146">CanRead()</a>, <a class="el" href="a00168_source.html#l00108">GetReadBytePosition()</a>, <a class="el" href="a00168_source.html#l00192">InputBytes()</a>, <a class="el" href="a00168_source.html#l00252">InputUnByte()</a>, <a class="el" href="a00168_source.html#l00290">OutputBytes()</a>, <a class="el" href="a00168_source.html#l00301">OutputCurrentByte()</a>, <a class="el" href="a00168_source.html#l00238">ReadUintLit()</a>, <a class="el" href="a00168_source.html#l00341">SeekGet()</a>, and <a class="el" href="a00168_source.html#l00325">WriteUintLit()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00168_source.html">byteio.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>