<ahref="sparse__array_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/*</span></div>
<divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> * The copyright in this software is being made available under the 2-clauses</span></div>
<divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> * BSD License, included below. This software may be subject to other third</span></div>
<divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> * party and contributor rights, including patent rights, and no such rights</span></div>
<divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> * are granted under this license.</span></div>
<divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> * modification, are permitted provided that the following conditions</span></div>
<divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> * are met:</span></div>
<divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> * 1. Redistributions of source code must retain the above copyright</span></div>
<divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
<divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> * notice, this list of conditions and the following disclaimer in the</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> * documentation and/or other materials provided with the distribution.</span></div>
<divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'</span></div>
<divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div>
<divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div>
<divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> <spanclass="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE</span></div>
<divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> <spanclass="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<divclass="line"><aname="l00024"></a><spanclass="lineno"> 24</span> <spanclass="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> <spanclass="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<divclass="line"><aname="l00026"></a><spanclass="lineno"> 26</span> <spanclass="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<divclass="line"><aname="l00027"></a><spanclass="lineno"> 27</span> <spanclass="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<divclass="line"><aname="l00028"></a><spanclass="lineno"> 28</span> <spanclass="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div>
<divclass="line"><aname="l00029"></a><spanclass="lineno"> 29</span> <spanclass="comment"> * POSSIBILITY OF SUCH DAMAGE.</span></div>
<divclass="ttc"id="asparse__array_8h_html_a2b5c5075af6a30d35569e4378931ed4c"><divclass="ttname"><ahref="sparse__array_8h.html#a2b5c5075af6a30d35569e4378931ed4c">opj_sparse_array_is_region_valid</a></div><divclass="ttdeci">OPJ_BOOL opj_sparse_array_is_region_valid(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1)</div><divclass="ttdoc">Returns whether region bounds are valid (non empty and within array bounds)</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:95</div></div>
<divclass="ttc"id="aopj__malloc_8c_html_a3fe08bb7876e393dd04332d049a4d53e"><divclass="ttname"><ahref="opj__malloc_8c.html#a3fe08bb7876e393dd04332d049a4d53e">opj_calloc</a></div><divclass="ttdeci">void * opj_calloc(size_t num, size_t size)</div><divclass="ttdoc">Allocate a memory block with elements initialized to 0.</div><divclass="ttdef"><b>Definition:</b> opj_malloc.c:198</div></div>
<divclass="ttc"id="asparse__array_8h_html_a092675bfa99d062ce36fa45aff4766da"><divclass="ttname"><ahref="sparse__array_8h.html#a092675bfa99d062ce36fa45aff4766da">opj_sparse_array_int32_read</a></div><divclass="ttdeci">OPJ_BOOL opj_sparse_array_int32_read(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, OPJ_INT32 *dest, OPJ_UINT32 dest_col_stride, OPJ_UINT32 dest_line_stride, OPJ_BOOL forgiving)</div><divclass="ttdoc">Read the content of a rectangular region of the sparse array into a user buffer.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:311</div></div>
<divclass="ttc"id="aopj__intmath_8h_html_ae4b2e5a7c8b8f09faacc4a895f866ea1"><divclass="ttname"><ahref="opj__intmath_8h.html#ae4b2e5a7c8b8f09faacc4a895f866ea1">opj_uint_ceildiv</a></div><divclass="ttdeci">static INLINE OPJ_UINT32 opj_uint_ceildiv(OPJ_UINT32 a, OPJ_UINT32 b)</div><divclass="ttdoc">Divide an integer and round upwards.</div><divclass="ttdef"><b>Definition:</b> opj_intmath.h:170</div></div>
<divclass="ttc"id="aopj__intmath_8h_html_a06c1c4470f9765a3ed04963b0daa111a"><divclass="ttname"><ahref="opj__intmath_8h.html#a06c1c4470f9765a3ed04963b0daa111a">opj_uint_min</a></div><divclass="ttdeci">static INLINE OPJ_UINT32 opj_uint_min(OPJ_UINT32 a, OPJ_UINT32 b)</div><divclass="ttdoc">Get the minimum of two integers.</div><divclass="ttdef"><b>Definition:</b> opj_intmath.h:65</div></div>
<divclass="ttc"id="asparse__array_8h_html_ad70f920d05b4915853b474d010a9a336"><divclass="ttname"><ahref="sparse__array_8h.html#ad70f920d05b4915853b474d010a9a336">opj_sparse_array_int32_free</a></div><divclass="ttdeci">void opj_sparse_array_int32_free(opj_sparse_array_int32_t *sa)</div><divclass="ttdoc">Frees a sparse array.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:81</div></div>
<divclass="ttc"id="aopj__malloc_8c_html_a9d7d909f8dc1a2c23313c48645341e81"><divclass="ttname"><ahref="opj__malloc_8c.html#a9d7d909f8dc1a2c23313c48645341e81">opj_free</a></div><divclass="ttdeci">void opj_free(void *ptr)</div><divclass="ttdoc">Deallocates or frees a memory block.</div><divclass="ttdef"><b>Definition:</b> opj_malloc.c:246</div></div>
<divclass="ttc"id="asparse__array_8c_html_ad70f920d05b4915853b474d010a9a336"><divclass="ttname"><ahref="sparse__array_8c.html#ad70f920d05b4915853b474d010a9a336">opj_sparse_array_int32_free</a></div><divclass="ttdeci">void opj_sparse_array_int32_free(opj_sparse_array_int32_t *sa)</div><divclass="ttdoc">Frees a sparse array.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:81</div></div>
<divclass="ttc"id="asparse__array_8c_html_a174b3ef4cb89af58cdd7c2b9f0a20559"><divclass="ttname"><ahref="sparse__array_8c.html#a174b3ef4cb89af58cdd7c2b9f0a20559">opj_sparse_array_int32_write</a></div><divclass="ttdeci">OPJ_BOOL opj_sparse_array_int32_write(opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, const OPJ_INT32 *src, OPJ_UINT32 src_col_stride, OPJ_UINT32 src_line_stride, OPJ_BOOL forgiving)</div><divclass="ttdoc">Write the content of a rectangular region into the sparse array from a user buffer.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:330</div></div>
<divclass="ttc"id="asparse__array_8c_html_a092675bfa99d062ce36fa45aff4766da"><divclass="ttname"><ahref="sparse__array_8c.html#a092675bfa99d062ce36fa45aff4766da">opj_sparse_array_int32_read</a></div><divclass="ttdeci">OPJ_BOOL opj_sparse_array_int32_read(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, OPJ_INT32 *dest, OPJ_UINT32 dest_col_stride, OPJ_UINT32 dest_line_stride, OPJ_BOOL forgiving)</div><divclass="ttdoc">Read the content of a rectangular region of the sparse array into a user buffer.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:311</div></div>
<divclass="ttc"id="asparse__array_8h_html_a174b3ef4cb89af58cdd7c2b9f0a20559"><divclass="ttname"><ahref="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559">opj_sparse_array_int32_write</a></div><divclass="ttdeci">OPJ_BOOL opj_sparse_array_int32_write(opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, const OPJ_INT32 *src, OPJ_UINT32 src_col_stride, OPJ_UINT32 src_line_stride, OPJ_BOOL forgiving)</div><divclass="ttdoc">Write the content of a rectangular region into the sparse array from a user buffer.</div><divclass="ttdef"><b>Definition:</b> sparse_array.c:330</div></div>