<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libpgf: Decoder.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectlogo"><img alt="Logo" src="PGF.PNG"/></td> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libpgf  <span id="projectnumber">6.12.24</span> </div> <div id="projectbrief">PGF - Progressive Graphics File</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('Decoder_8h_source.html','');}); </script> <div id="doc-content"> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="headertitle"> <div class="title">Decoder.h</div> </div> </div><!--header--> <div class="contents"> <a href="Decoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * The Progressive Graphics File; http://www.libpgf.org</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * </span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * $Date: 2006-06-04 22:05:59 +0200 (So, 04 Jun 2006) $</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * $Revision: 229 $</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * </span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * This file Copyright (C) 2006 xeraina GmbH, Switzerland</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * </span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This program is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * as published by the Free Software Foundation; either version 2.1</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * </span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * </span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> */</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef PGF_DECODER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define PGF_DECODER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="PGFstream_8h.html">PGFstream.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="BitStream_8h.html">BitStream.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="Subband_8h.html">Subband.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="WaveletTransform_8h.html">WaveletTransform.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Constants</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="Decoder_8h.html#a309eafbca7ed5953ef9102861479f4ed"> 39</a></span> <span class="preprocessor">#define BufferLen (BufferSize/WordWidth) </span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="Decoder_8h.html#a05a74e73e6c734fcad194efbca053ed5"> 40</a></span> <span class="preprocessor">#define CodeBufferLen BufferSize </span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span><a class="code" href="classCDecoder.html">CDecoder</a> {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html"> 51</a></span>  <span class="keyword">class </span><a class="code" href="classCDecoder_1_1CMacroBlock.html">CMacroBlock</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a023a230fc23472478e5429cef5ec4be4"> 56</a></span>  <a class="code" href="classCDecoder_1_1CMacroBlock.html#a023a230fc23472478e5429cef5ec4be4">CMacroBlock</a>(<a class="code" href="classCDecoder.html">CDecoder</a> *decoder)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  : <a class="code" href="classCDecoder_1_1CMacroBlock.html#a19247bd5e6073252c45abf9d33b44ee0">m_header</a>(0) <span class="comment">// makes sure that IsCompletelyRead() returns true for an empty macro block</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  , <a class="code" href="classCDecoder_1_1CMacroBlock.html#a38f42e9e2d5ac8387db0122aecac79be">m_valuePos</a>(0)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  , <a class="code" href="classCDecoder_1_1CMacroBlock.html#a4a4b0f49967a8fc938295fdcc5093e66">m_decoder</a>(decoder)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  ASSERT(<a class="code" href="classCDecoder_1_1CMacroBlock.html#a4a4b0f49967a8fc938295fdcc5093e66">m_decoder</a>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a0425cb162ca41e04f6ae0886a62b3cc9"> 67</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a0425cb162ca41e04f6ae0886a62b3cc9">IsCompletelyRead</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a38f42e9e2d5ac8387db0122aecac79be">m_valuePos</a> >= <a class="code" href="classCDecoder_1_1CMacroBlock.html#a19247bd5e6073252c45abf9d33b44ee0">m_header</a>.<a class="code" href="unionROIBlockHeader.html#a15ceb2e488c3767cc1ab774323c02ded">rbh</a>.<a class="code" href="structROIBlockHeader_1_1RBH.html#af0c3de8c247b06116a9d84d2f9515762">bufferSize</a>; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a72899e368b29833bd485c4858b5ad7ef">BitplaneDecode</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a19247bd5e6073252c45abf9d33b44ee0"> 75</a></span>  <a class="code" href="unionROIBlockHeader.html">ROIBlockHeader</a> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a19247bd5e6073252c45abf9d33b44ee0">m_header</a>; </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a7722de1000647fb5a894db2e2f348bdd"> 76</a></span>  <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a7722de1000647fb5a894db2e2f348bdd">m_value</a>[<a class="code" href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a>]; </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#ace0702d7f8281972b1db091248c3c80b"> 77</a></span>  UINT32 <a class="code" href="classCDecoder_1_1CMacroBlock.html#ace0702d7f8281972b1db091248c3c80b">m_codeBuffer</a>[<a class="code" href="Decoder_8h.html#a05a74e73e6c734fcad194efbca053ed5">CodeBufferLen</a>]; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a38f42e9e2d5ac8387db0122aecac79be"> 78</a></span>  UINT32 <a class="code" href="classCDecoder_1_1CMacroBlock.html#a38f42e9e2d5ac8387db0122aecac79be">m_valuePos</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  UINT32 <a class="code" href="classCDecoder_1_1CMacroBlock.html#a580e46028e0104de8d6afab733c8b679">ComposeBitplane</a>(UINT32 bufferSize, <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a> planeMask, UINT32* sigBits, UINT32* refBits, UINT32* signBits);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  UINT32 <a class="code" href="classCDecoder_1_1CMacroBlock.html#aa6e8f0dedcdeb9e592de7dde07b5025e">ComposeBitplaneRLD</a>(UINT32 bufferSize, <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a> planeMask, UINT32 sigPos, UINT32* refBits);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  UINT32 <a class="code" href="classCDecoder_1_1CMacroBlock.html#aa6e8f0dedcdeb9e592de7dde07b5025e">ComposeBitplaneRLD</a>(UINT32 bufferSize, <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a> planeMask, UINT32* sigBits, UINT32* refBits, UINT32 signPos);</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a4bf1b6bc026f95ef4d93fbdfaf69f724"> 84</a></span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a4bf1b6bc026f95ef4d93fbdfaf69f724">SetBitAtPos</a>(UINT32 pos, <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a> planeMask) { (m_value[pos] >= 0) ? m_value[pos] |= planeMask : m_value[pos] -= planeMask; }</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a7fd4539d524903d148ceb4de940d3194"> 85</a></span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#a7fd4539d524903d148ceb4de940d3194">SetSign</a>(UINT32 pos, <span class="keywordtype">bool</span> sign) { m_value[pos] = -m_value[pos]*sign + m_value[pos]*(!sign); }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#a4a4b0f49967a8fc938295fdcc5093e66"> 87</a></span>  <a class="code" href="classCDecoder.html">CDecoder</a> *<a class="code" href="classCDecoder_1_1CMacroBlock.html#a4a4b0f49967a8fc938295fdcc5093e66">m_decoder</a>; <span class="comment">// outer class</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classCDecoder_1_1CMacroBlock.html#af6931769654b397d6c3becae44e868b0"> 88</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classCDecoder_1_1CMacroBlock.html#af6931769654b397d6c3becae44e868b0">m_sigFlagVector</a>[<a class="code" href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a>+1]; <span class="comment">// see paper from Malvar, Fast Progressive Wavelet Coder</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classCDecoder.html#ae67e34004d59ec42d6de1a1a900e087c">CDecoder</a>(<a class="code" href="classCPGFStream.html">CPGFStream</a>* stream, <a class="code" href="structPGFPreHeader.html">PGFPreHeader</a>& preHeader, <a class="code" href="structPGFHeader.html">PGFHeader</a>& header, </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="structPGFPostHeader.html">PGFPostHeader</a>& postHeader, UINT32*& levelLength, UINT64& userDataPos, </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">bool</span> useOMP, <span class="keywordtype">bool</span> skipUserData) THROW_; <span class="comment">// throws IOException</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classCDecoder.html#acb3e9a62be775af9a88da18730cd6f0e">~CDecoder</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#ac0c8ded7ee0dc098035ba8dc22d487c8">Partition</a>(<a class="code" href="classCSubband.html">CSubband</a>* band, <span class="keywordtype">int</span> quantParam, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> startPos, <span class="keywordtype">int</span> pitch) THROW_;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#a54e3f2a5def2a4809b07d6446cb5537b">DecodeInterleaved</a>(<a class="code" href="classCWaveletTransform.html">CWaveletTransform</a>* wtChannel, <span class="keywordtype">int</span> level, <span class="keywordtype">int</span> quantParam) THROW_;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classCDecoder.html#a4e9c1ffe92430bf2420b8da76f145fcf"> 136</a></span>  UINT32 <a class="code" href="classCDecoder.html#a4e9c1ffe92430bf2420b8da76f145fcf">GetEncodedHeaderLength</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCDecoder.html#aa59513d248af5c39dee8ae193876552b">m_encodedHeaderLength</a>; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classCDecoder.html#a40e14a82aed038dfdb11ea0ab7a7ae27"> 140</a></span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#a40e14a82aed038dfdb11ea0ab7a7ae27">SetStreamPosToStart</a>() THROW_ { ASSERT(<a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>); <a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>-><a class="code" href="classCPGFStream.html#a69be67d4b04cd056c4f74d8147349a16">SetPos</a>(FSFromStart, <a class="code" href="classCDecoder.html#a56f84d5e2dc9f94737e9ff76a017eab7">m_startPos</a>); }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classCDecoder.html#a0fce75560814039770a29821b2dfdac8"> 144</a></span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#a0fce75560814039770a29821b2dfdac8">SetStreamPosToData</a>() THROW_ { ASSERT(<a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>); <a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>-><a class="code" href="classCPGFStream.html#a69be67d4b04cd056c4f74d8147349a16">SetPos</a>(FSFromStart, <a class="code" href="classCDecoder.html#a56f84d5e2dc9f94737e9ff76a017eab7">m_startPos</a> + <a class="code" href="classCDecoder.html#aa59513d248af5c39dee8ae193876552b">m_encodedHeaderLength</a>); }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#ac52d7036b81fa3021eb3bd57f6b1035c">Skip</a>(UINT64 offset) THROW_;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#af6167895910faf395203cd102ec1d3af">DequantizeValue</a>(<a class="code" href="classCSubband.html">CSubband</a>* band, UINT32 bandPos, <span class="keywordtype">int</span> quantParam) THROW_;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  UINT32 <a class="code" href="classCDecoder.html#a9ed3c476f5617dfe4269e4a36bbbbac5">ReadEncodedData</a>(UINT8* target, UINT32 len) <span class="keyword">const</span> THROW_;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#a738da91617ba87745459191279da4315">DecodeBuffer</a>() THROW_;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classCDecoder.html#a49deab3805a603f9332e2a1b6a58d800"> 174</a></span>  <a class="code" href="classCPGFStream.html">CPGFStream</a>* <a class="code" href="classCDecoder.html#a49deab3805a603f9332e2a1b6a58d800">GetStream</a>() { <span class="keywordflow">return</span> <a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classCDecoder.html#acb01a15ed5bbd602deeca17f2c3522cf"> 178</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classCDecoder.html#acb01a15ed5bbd602deeca17f2c3522cf">MacroBlocksAvailable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCDecoder.html#a542f95c68cc1661b3629a3cf026f45c4">m_macroBlocksAvailable</a> > 1; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor">#ifdef __PGFROISUPPORT__</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">void</span> DecodeTileBuffer() THROW_;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordtype">void</span> SkipTileBuffer() THROW_;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">void</span> SetROI() { m_roi = <span class="keyword">true</span>; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor">#ifdef TRACE</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordtype">void</span> DumpBuffer();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">void</span> <a class="code" href="classCDecoder.html#a63cfb5880877780be5e9e10a33dcedf0">ReadMacroBlock</a>(<a class="code" href="classCDecoder_1_1CMacroBlock.html">CMacroBlock</a>* block) THROW_; </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5"> 203</a></span>  <a class="code" href="classCPGFStream.html">CPGFStream</a> *<a class="code" href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">m_stream</a>; </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classCDecoder.html#a56f84d5e2dc9f94737e9ff76a017eab7"> 204</a></span>  UINT64 <a class="code" href="classCDecoder.html#a56f84d5e2dc9f94737e9ff76a017eab7">m_startPos</a>; </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classCDecoder.html#a6562d817189d48cfed14b5e8b921e180"> 205</a></span>  UINT64 <a class="code" href="classCDecoder.html#a6562d817189d48cfed14b5e8b921e180">m_streamSizeEstimation</a>; </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classCDecoder.html#aa59513d248af5c39dee8ae193876552b"> 206</a></span>  UINT32 <a class="code" href="classCDecoder.html#aa59513d248af5c39dee8ae193876552b">m_encodedHeaderLength</a>; </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classCDecoder.html#a7acf80ff3cb6193afed753a44a8d08fa"> 208</a></span>  <a class="code" href="classCDecoder_1_1CMacroBlock.html">CMacroBlock</a> **<a class="code" href="classCDecoder.html#a7acf80ff3cb6193afed753a44a8d08fa">m_macroBlocks</a>; </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classCDecoder.html#a2e3c3a814d7bc3766e35302367f8d9ae"> 209</a></span>  <span class="keywordtype">int</span> <a class="code" href="classCDecoder.html#a2e3c3a814d7bc3766e35302367f8d9ae">m_currentBlockIndex</a>; </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classCDecoder.html#a215b9e3cd0bc08c1c67674f28247e63c"> 210</a></span>  <span class="keywordtype">int</span> <a class="code" href="classCDecoder.html#a215b9e3cd0bc08c1c67674f28247e63c">m_macroBlockLen</a>; </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classCDecoder.html#a542f95c68cc1661b3629a3cf026f45c4"> 211</a></span>  <span class="keywordtype">int</span> <a class="code" href="classCDecoder.html#a542f95c68cc1661b3629a3cf026f45c4">m_macroBlocksAvailable</a>; </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classCDecoder.html#aa21a930e7af6496ee5e6662659d62ecb"> 212</a></span>  <a class="code" href="classCDecoder_1_1CMacroBlock.html">CMacroBlock</a> *<a class="code" href="classCDecoder.html#aa21a930e7af6496ee5e6662659d62ecb">m_currentBlock</a>; </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#ifdef __PGFROISUPPORT__</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">bool</span> m_roi; </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> };</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor">#endif //PGF_DECODER_H</span></div><div class="ttc" id="unionROIBlockHeader_html_a15ceb2e488c3767cc1ab774323c02ded"><div class="ttname"><a href="unionROIBlockHeader.html#a15ceb2e488c3767cc1ab774323c02ded">ROIBlockHeader::rbh</a></div><div class="ttdeci">struct ROIBlockHeader::RBH rbh</div><div class="ttdoc">ROI block header. </div></div> <div class="ttc" id="structROIBlockHeader_1_1RBH_html_af0c3de8c247b06116a9d84d2f9515762"><div class="ttname"><a href="structROIBlockHeader_1_1RBH.html#af0c3de8c247b06116a9d84d2f9515762">ROIBlockHeader::RBH::bufferSize</a></div><div class="ttdeci">UINT16 bufferSize</div><div class="ttdoc">number of uncoded UINT32 values in a block </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00167">PGFtypes.h:167</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a580e46028e0104de8d6afab733c8b679"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a580e46028e0104de8d6afab733c8b679">CDecoder::CMacroBlock::ComposeBitplane</a></div><div class="ttdeci">UINT32 ComposeBitplane(UINT32 bufferSize, DataT planeMask, UINT32 *sigBits, UINT32 *refBits, UINT32 *signBits)</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00734">Decoder.cpp:734</a></div></div> <div class="ttc" id="classCDecoder_html_a7acf80ff3cb6193afed753a44a8d08fa"><div class="ttname"><a href="classCDecoder.html#a7acf80ff3cb6193afed753a44a8d08fa">CDecoder::m_macroBlocks</a></div><div class="ttdeci">CMacroBlock ** m_macroBlocks</div><div class="ttdoc">array of macroblocks </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00208">Decoder.h:208</a></div></div> <div class="ttc" id="classCPGFStream_html"><div class="ttname"><a href="classCPGFStream.html">CPGFStream</a></div><div class="ttdoc">Abstract stream base class. </div><div class="ttdef"><b>Definition:</b> <a href="PGFstream_8h_source.html#l00039">PGFstream.h:39</a></div></div> <div class="ttc" id="classCDecoder_html_a54e3f2a5def2a4809b07d6446cb5537b"><div class="ttname"><a href="classCDecoder.html#a54e3f2a5def2a4809b07d6446cb5537b">CDecoder::DecodeInterleaved</a></div><div class="ttdeci">void DecodeInterleaved(CWaveletTransform *wtChannel, int level, int quantParam) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00319">Decoder.cpp:319</a></div></div> <div class="ttc" id="classCDecoder_html_a9ed3c476f5617dfe4269e4a36bbbbac5"><div class="ttname"><a href="classCDecoder.html#a9ed3c476f5617dfe4269e4a36bbbbac5">CDecoder::ReadEncodedData</a></div><div class="ttdeci">UINT32 ReadEncodedData(UINT8 *target, UINT32 len) const THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00232">Decoder.cpp:232</a></div></div> <div class="ttc" id="PGFtypes_8h_html_acb1ee3f52ccfad782dcaa0abd79e5d05"><div class="ttname"><a href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a></div><div class="ttdeci">INT32 DataT</div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00219">PGFtypes.h:219</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a4bf1b6bc026f95ef4d93fbdfaf69f724"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a4bf1b6bc026f95ef4d93fbdfaf69f724">CDecoder::CMacroBlock::SetBitAtPos</a></div><div class="ttdeci">void SetBitAtPos(UINT32 pos, DataT planeMask)</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00084">Decoder.h:84</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a38f42e9e2d5ac8387db0122aecac79be"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a38f42e9e2d5ac8387db0122aecac79be">CDecoder::CMacroBlock::m_valuePos</a></div><div class="ttdeci">UINT32 m_valuePos</div><div class="ttdoc">current position in m_value </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00078">Decoder.h:78</a></div></div> <div class="ttc" id="classCDecoder_html_a63cfb5880877780be5e9e10a33dcedf0"><div class="ttname"><a href="classCDecoder.html#a63cfb5880877780be5e9e10a33dcedf0">CDecoder::ReadMacroBlock</a></div><div class="ttdeci">void ReadMacroBlock(CMacroBlock *block) THROW_</div><div class="ttdoc">throws IOException </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00520">Decoder.cpp:520</a></div></div> <div class="ttc" id="PGFtypes_8h_html_aa362edf6db9662acf6ef958a6db19c35"><div class="ttname"><a href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a></div><div class="ttdeci">#define BufferSize</div><div class="ttdoc">must be a multiple of WordWidth </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00077">PGFtypes.h:77</a></div></div> <div class="ttc" id="BitStream_8h_html"><div class="ttname"><a href="BitStream_8h.html">BitStream.h</a></div></div> <div class="ttc" id="classCDecoder_html_ac0c8ded7ee0dc098035ba8dc22d487c8"><div class="ttname"><a href="classCDecoder.html#ac0c8ded7ee0dc098035ba8dc22d487c8">CDecoder::Partition</a></div><div class="ttdeci">void Partition(CSubband *band, int quantParam, int width, int height, int startPos, int pitch) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00252">Decoder.cpp:252</a></div></div> <div class="ttc" id="classCDecoder_html_a49deab3805a603f9332e2a1b6a58d800"><div class="ttname"><a href="classCDecoder.html#a49deab3805a603f9332e2a1b6a58d800">CDecoder::GetStream</a></div><div class="ttdeci">CPGFStream * GetStream()</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00174">Decoder.h:174</a></div></div> <div class="ttc" id="classCDecoder_html_acb3e9a62be775af9a88da18730cd6f0e"><div class="ttname"><a href="classCDecoder.html#acb3e9a62be775af9a88da18730cd6f0e">CDecoder::~CDecoder</a></div><div class="ttdeci">~CDecoder()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00217">Decoder.cpp:217</a></div></div> <div class="ttc" id="classCPGFStream_html_a69be67d4b04cd056c4f74d8147349a16"><div class="ttname"><a href="classCPGFStream.html#a69be67d4b04cd056c4f74d8147349a16">CPGFStream::SetPos</a></div><div class="ttdeci">virtual void SetPos(short posMode, INT64 posOff)=0</div></div> <div class="ttc" id="classCDecoder_html_a4e9c1ffe92430bf2420b8da76f145fcf"><div class="ttname"><a href="classCDecoder.html#a4e9c1ffe92430bf2420b8da76f145fcf">CDecoder::GetEncodedHeaderLength</a></div><div class="ttdeci">UINT32 GetEncodedHeaderLength() const</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00136">Decoder.h:136</a></div></div> <div class="ttc" id="structPGFPreHeader_html"><div class="ttname"><a href="structPGFPreHeader.html">PGFPreHeader</a></div><div class="ttdoc">PGF pre-header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00114">PGFtypes.h:114</a></div></div> <div class="ttc" id="Subband_8h_html"><div class="ttname"><a href="Subband_8h.html">Subband.h</a></div><div class="ttdoc">PGF wavelet subband class. </div></div> <div class="ttc" id="classCDecoder_html_aa59513d248af5c39dee8ae193876552b"><div class="ttname"><a href="classCDecoder.html#aa59513d248af5c39dee8ae193876552b">CDecoder::m_encodedHeaderLength</a></div><div class="ttdeci">UINT32 m_encodedHeaderLength</div><div class="ttdoc">stream offset from startPos to the beginning of the data part (highest level) </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00206">Decoder.h:206</a></div></div> <div class="ttc" id="classCSubband_html"><div class="ttname"><a href="classCSubband.html">CSubband</a></div><div class="ttdoc">Wavelet channel class. </div><div class="ttdef"><b>Definition:</b> <a href="Subband_8h_source.html#l00042">Subband.h:42</a></div></div> <div class="ttc" id="classCDecoder_html_a0fce75560814039770a29821b2dfdac8"><div class="ttname"><a href="classCDecoder.html#a0fce75560814039770a29821b2dfdac8">CDecoder::SetStreamPosToData</a></div><div class="ttdeci">void SetStreamPosToData() THROW_</div><div class="ttdoc">Reset stream position to beginning of data block. </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00144">Decoder.h:144</a></div></div> <div class="ttc" id="classCDecoder_html_a215b9e3cd0bc08c1c67674f28247e63c"><div class="ttname"><a href="classCDecoder.html#a215b9e3cd0bc08c1c67674f28247e63c">CDecoder::m_macroBlockLen</a></div><div class="ttdeci">int m_macroBlockLen</div><div class="ttdoc">array length </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00210">Decoder.h:210</a></div></div> <div class="ttc" id="classCWaveletTransform_html"><div class="ttname"><a href="classCWaveletTransform.html">CWaveletTransform</a></div><div class="ttdoc">PGF wavelet transform. </div><div class="ttdef"><b>Definition:</b> <a href="WaveletTransform_8h_source.html#l00084">WaveletTransform.h:84</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a7722de1000647fb5a894db2e2f348bdd"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a7722de1000647fb5a894db2e2f348bdd">CDecoder::CMacroBlock::m_value</a></div><div class="ttdeci">DataT m_value[BufferSize]</div><div class="ttdoc">output buffer of values with index m_valuePos </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00076">Decoder.h:76</a></div></div> <div class="ttc" id="classCDecoder_html_af6167895910faf395203cd102ec1d3af"><div class="ttname"><a href="classCDecoder.html#af6167895910faf395203cd102ec1d3af">CDecoder::DequantizeValue</a></div><div class="ttdeci">void DequantizeValue(CSubband *band, UINT32 bandPos, int quantParam) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00448">Decoder.cpp:448</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a7fd4539d524903d148ceb4de940d3194"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a7fd4539d524903d148ceb4de940d3194">CDecoder::CMacroBlock::SetSign</a></div><div class="ttdeci">void SetSign(UINT32 pos, bool sign)</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00085">Decoder.h:85</a></div></div> <div class="ttc" id="unionROIBlockHeader_html"><div class="ttname"><a href="unionROIBlockHeader.html">ROIBlockHeader</a></div><div class="ttdoc">Block header used with ROI coding scheme. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00151">PGFtypes.h:151</a></div></div> <div class="ttc" id="structPGFHeader_html"><div class="ttname"><a href="structPGFHeader.html">PGFHeader</a></div><div class="ttdoc">PGF header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00123">PGFtypes.h:123</a></div></div> <div class="ttc" id="classCDecoder_html_a2e3c3a814d7bc3766e35302367f8d9ae"><div class="ttname"><a href="classCDecoder.html#a2e3c3a814d7bc3766e35302367f8d9ae">CDecoder::m_currentBlockIndex</a></div><div class="ttdeci">int m_currentBlockIndex</div><div class="ttdoc">index of current macro block </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00209">Decoder.h:209</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a72899e368b29833bd485c4858b5ad7ef"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a72899e368b29833bd485c4858b5ad7ef">CDecoder::CMacroBlock::BitplaneDecode</a></div><div class="ttdeci">void BitplaneDecode()</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00619">Decoder.cpp:619</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a023a230fc23472478e5429cef5ec4be4"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a023a230fc23472478e5429cef5ec4be4">CDecoder::CMacroBlock::CMacroBlock</a></div><div class="ttdeci">CMacroBlock(CDecoder *decoder)</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00056">Decoder.h:56</a></div></div> <div class="ttc" id="classCDecoder_html_aa21a930e7af6496ee5e6662659d62ecb"><div class="ttname"><a href="classCDecoder.html#aa21a930e7af6496ee5e6662659d62ecb">CDecoder::m_currentBlock</a></div><div class="ttdeci">CMacroBlock * m_currentBlock</div><div class="ttdoc">current macro block (used by main thread) </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00212">Decoder.h:212</a></div></div> <div class="ttc" id="classCDecoder_html"><div class="ttname"><a href="classCDecoder.html">CDecoder</a></div><div class="ttdoc">PGF decoder. </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00046">Decoder.h:46</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a0425cb162ca41e04f6ae0886a62b3cc9"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a0425cb162ca41e04f6ae0886a62b3cc9">CDecoder::CMacroBlock::IsCompletelyRead</a></div><div class="ttdeci">bool IsCompletelyRead() const</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00067">Decoder.h:67</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html">CDecoder::CMacroBlock</a></div><div class="ttdoc">A macro block is a decoding unit of fixed size (uncoded) </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00051">Decoder.h:51</a></div></div> <div class="ttc" id="structPGFPostHeader_html"><div class="ttname"><a href="structPGFPostHeader.html">PGFPostHeader</a></div><div class="ttdoc">Optional PGF post-header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00141">PGFtypes.h:141</a></div></div> <div class="ttc" id="WaveletTransform_8h_html"><div class="ttname"><a href="WaveletTransform_8h.html">WaveletTransform.h</a></div><div class="ttdoc">PGF wavelet transform class. </div></div> <div class="ttc" id="classCDecoder_html_a4a083ad657a4f6236603c3090b44b2c5"><div class="ttname"><a href="classCDecoder.html#a4a083ad657a4f6236603c3090b44b2c5">CDecoder::m_stream</a></div><div class="ttdeci">CPGFStream * m_stream</div><div class="ttdoc">input PGF stream </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00203">Decoder.h:203</a></div></div> <div class="ttc" id="classCDecoder_html_a542f95c68cc1661b3629a3cf026f45c4"><div class="ttname"><a href="classCDecoder.html#a542f95c68cc1661b3629a3cf026f45c4">CDecoder::m_macroBlocksAvailable</a></div><div class="ttdeci">int m_macroBlocksAvailable</div><div class="ttdoc">number of decoded macro blocks (including currently used macro block) </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00211">Decoder.h:211</a></div></div> <div class="ttc" id="classCDecoder_html_a56f84d5e2dc9f94737e9ff76a017eab7"><div class="ttname"><a href="classCDecoder.html#a56f84d5e2dc9f94737e9ff76a017eab7">CDecoder::m_startPos</a></div><div class="ttdeci">UINT64 m_startPos</div><div class="ttdoc">stream position at the beginning of the PGF pre-header </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00204">Decoder.h:204</a></div></div> <div class="ttc" id="PGFstream_8h_html"><div class="ttname"><a href="PGFstream_8h.html">PGFstream.h</a></div><div class="ttdoc">PGF stream class. </div></div> <div class="ttc" id="classCDecoder_html_a738da91617ba87745459191279da4315"><div class="ttname"><a href="classCDecoder.html#a738da91617ba87745459191279da4315">CDecoder::DecodeBuffer</a></div><div class="ttdeci">void DecodeBuffer() THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00480">Decoder.cpp:480</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_aa6e8f0dedcdeb9e592de7dde07b5025e"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#aa6e8f0dedcdeb9e592de7dde07b5025e">CDecoder::CMacroBlock::ComposeBitplaneRLD</a></div><div class="ttdeci">UINT32 ComposeBitplaneRLD(UINT32 bufferSize, DataT planeMask, UINT32 sigPos, UINT32 *refBits)</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00797">Decoder.cpp:797</a></div></div> <div class="ttc" id="classCDecoder_html_acb01a15ed5bbd602deeca17f2c3522cf"><div class="ttname"><a href="classCDecoder.html#acb01a15ed5bbd602deeca17f2c3522cf">CDecoder::MacroBlocksAvailable</a></div><div class="ttdeci">bool MacroBlocksAvailable() const</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00178">Decoder.h:178</a></div></div> <div class="ttc" id="classCDecoder_html_ae67e34004d59ec42d6de1a1a900e087c"><div class="ttname"><a href="classCDecoder.html#ae67e34004d59ec42d6de1a1a900e087c">CDecoder::CDecoder</a></div><div class="ttdeci">CDecoder(CPGFStream *stream, PGFPreHeader &preHeader, PGFHeader &header, PGFPostHeader &postHeader, UINT32 *&levelLength, UINT64 &userDataPos, bool useOMP, bool skipUserData) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00073">Decoder.cpp:73</a></div></div> <div class="ttc" id="classCDecoder_html_ac52d7036b81fa3021eb3bd57f6b1035c"><div class="ttname"><a href="classCDecoder.html#ac52d7036b81fa3021eb3bd57f6b1035c">CDecoder::Skip</a></div><div class="ttdeci">void Skip(UINT64 offset) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8cpp_source.html#l00435">Decoder.cpp:435</a></div></div> <div class="ttc" id="classCDecoder_html_a6562d817189d48cfed14b5e8b921e180"><div class="ttname"><a href="classCDecoder.html#a6562d817189d48cfed14b5e8b921e180">CDecoder::m_streamSizeEstimation</a></div><div class="ttdeci">UINT64 m_streamSizeEstimation</div><div class="ttdoc">estimation of stream size </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00205">Decoder.h:205</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a19247bd5e6073252c45abf9d33b44ee0"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a19247bd5e6073252c45abf9d33b44ee0">CDecoder::CMacroBlock::m_header</a></div><div class="ttdeci">ROIBlockHeader m_header</div><div class="ttdoc">block header </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00075">Decoder.h:75</a></div></div> <div class="ttc" id="Decoder_8h_html_a05a74e73e6c734fcad194efbca053ed5"><div class="ttname"><a href="Decoder_8h.html#a05a74e73e6c734fcad194efbca053ed5">CodeBufferLen</a></div><div class="ttdeci">#define CodeBufferLen</div><div class="ttdoc">number of words in code buffer (CodeBufferLen > BufferLen) </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00040">Decoder.h:40</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_af6931769654b397d6c3becae44e868b0"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#af6931769654b397d6c3becae44e868b0">CDecoder::CMacroBlock::m_sigFlagVector</a></div><div class="ttdeci">bool m_sigFlagVector[BufferSize+1]</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00088">Decoder.h:88</a></div></div> <div class="ttc" id="classCDecoder_html_a40e14a82aed038dfdb11ea0ab7a7ae27"><div class="ttname"><a href="classCDecoder.html#a40e14a82aed038dfdb11ea0ab7a7ae27">CDecoder::SetStreamPosToStart</a></div><div class="ttdeci">void SetStreamPosToStart() THROW_</div><div class="ttdoc">Reset stream position to beginning of PGF pre-header. </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00140">Decoder.h:140</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_ace0702d7f8281972b1db091248c3c80b"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#ace0702d7f8281972b1db091248c3c80b">CDecoder::CMacroBlock::m_codeBuffer</a></div><div class="ttdeci">UINT32 m_codeBuffer[CodeBufferLen]</div><div class="ttdoc">input buffer for encoded bitstream </div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00077">Decoder.h:77</a></div></div> <div class="ttc" id="classCDecoder_1_1CMacroBlock_html_a4a4b0f49967a8fc938295fdcc5093e66"><div class="ttname"><a href="classCDecoder_1_1CMacroBlock.html#a4a4b0f49967a8fc938295fdcc5093e66">CDecoder::CMacroBlock::m_decoder</a></div><div class="ttdeci">CDecoder * m_decoder</div><div class="ttdef"><b>Definition:</b> <a href="Decoder_8h_source.html#l00087">Decoder.h:87</a></div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="Decoder_8h.html">Decoder.h</a></li> <li class="footer">Generated on Mon Dec 31 2018 19:09:16 for libpgf by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> </ul> </div> </body> </html>