2.5.2 post: fix full changelog
[openjpeg.git] / doxygen / sparse__array_8h.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.17"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>OpenJPEG: sparse_array.h File Reference</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="doxygen.css" rel="stylesheet" type="text/css" />
13 </head>
14 <body>
15 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
16 <div id="titlearea">
17 <table cellspacing="0" cellpadding="0">
18  <tbody>
19  <tr style="height: 56px;">
20   <td id="projectalign" style="padding-left: 0.5em;">
21    <div id="projectname">OpenJPEG
22    &#160;<span id="projectnumber">2.5.0</span>
23    </div>
24   </td>
25  </tr>
26  </tbody>
27 </table>
28 </div>
29 <!-- end header part -->
30 <!-- Generated by Doxygen 1.8.17 -->
31 <script type="text/javascript" src="menudata.js"></script>
32 <script type="text/javascript" src="menu.js"></script>
33 <script type="text/javascript">
34 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
35 $(function() {
36   initMenu('',false,false,'search.php','Search');
37 });
38 /* @license-end */</script>
39 <div id="main-nav"></div>
40 <div id="nav-path" class="navpath">
41   <ul>
42 <li class="navelem"><a class="el" href="dir_43e0a1f539e00dcfa1a6bc4d4fee4fc2.html">home</a></li><li class="navelem"><a class="el" href="dir_cb9b2b419d92b64f7cee83d8faf7a4ab.html">even</a></li><li class="navelem"><a class="el" href="dir_f75d9a0165d6564a1e04793ef847d41d.html">openjpeg</a></li><li class="navelem"><a class="el" href="dir_5f588d7ea139c1aae751d03c13a16064.html">openjpeg</a></li><li class="navelem"><a class="el" href="dir_378f732e812ef6cbaaae22e96a4fa79f.html">src</a></li><li class="navelem"><a class="el" href="dir_19dcb5713315405a27e1bde75a489a4c.html">lib</a></li><li class="navelem"><a class="el" href="dir_54e5bc4f0640fea590afaf04f4d9c88d.html">openjp2</a></li>  </ul>
43 </div>
44 </div><!-- top -->
45 <div class="header">
46   <div class="summary">
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#func-members">Functions</a>  </div>
49   <div class="headertitle">
50 <div class="title">sparse_array.h File Reference</div>  </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <p>Sparse array management.  
55 <a href="#details">More...</a></p>
56 <div class="textblock"><code>#include &quot;<a class="el" href="opj__includes_8h_source.html">opj_includes.h</a>&quot;</code><br />
57 </div>
58 <p><a href="sparse__array_8h_source.html">Go to the source code of this file.</a></p>
59 <table class="memberdecls">
60 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
61 Typedefs</h2></td></tr>
62 <tr class="memitem:ab63770624f4ec03e6e022c6a0b80e6ff"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structopj__sparse__array__int32.html">opj_sparse_array_int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a></td></tr>
63 <tr class="memdesc:ab63770624f4ec03e6e022c6a0b80e6ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque type for sparse arrays that contain int32 values.  <a href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">More...</a><br /></td></tr>
64 <tr class="separator:ab63770624f4ec03e6e022c6a0b80e6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 </table><table class="memberdecls">
66 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
67 Functions</h2></td></tr>
68 <tr class="memitem:a41953de4fab74677337c2597a67c9843"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#a41953de4fab74677337c2597a67c9843">opj_sparse_array_int32_create</a> (<a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> width, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> height, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> block_width, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> block_height)</td></tr>
69 <tr class="memdesc:a41953de4fab74677337c2597a67c9843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new sparse array.  <a href="sparse__array_8h.html#a41953de4fab74677337c2597a67c9843">More...</a><br /></td></tr>
70 <tr class="separator:a41953de4fab74677337c2597a67c9843"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:ad70f920d05b4915853b474d010a9a336"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#ad70f920d05b4915853b474d010a9a336">opj_sparse_array_int32_free</a> (<a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *sa)</td></tr>
72 <tr class="memdesc:ad70f920d05b4915853b474d010a9a336"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a sparse array.  <a href="sparse__array_8h.html#ad70f920d05b4915853b474d010a9a336">More...</a><br /></td></tr>
73 <tr class="separator:ad70f920d05b4915853b474d010a9a336"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 <tr class="memitem:a2b5c5075af6a30d35569e4378931ed4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#a2b5c5075af6a30d35569e4378931ed4c">opj_sparse_array_is_region_valid</a> (const <a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *sa, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x1, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y1)</td></tr>
75 <tr class="memdesc:a2b5c5075af6a30d35569e4378931ed4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether region bounds are valid (non empty and within array bounds)  <a href="sparse__array_8h.html#a2b5c5075af6a30d35569e4378931ed4c">More...</a><br /></td></tr>
76 <tr class="separator:a2b5c5075af6a30d35569e4378931ed4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 <tr class="memitem:a092675bfa99d062ce36fa45aff4766da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#a092675bfa99d062ce36fa45aff4766da">opj_sparse_array_int32_read</a> (const <a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *sa, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x1, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y1, <a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> *dest, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> dest_col_stride, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> dest_line_stride, <a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> forgiving)</td></tr>
78 <tr class="memdesc:a092675bfa99d062ce36fa45aff4766da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the content of a rectangular region of the sparse array into a user buffer.  <a href="sparse__array_8h.html#a092675bfa99d062ce36fa45aff4766da">More...</a><br /></td></tr>
79 <tr class="separator:a092675bfa99d062ce36fa45aff4766da"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:a174b3ef4cb89af58cdd7c2b9f0a20559"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559">opj_sparse_array_int32_write</a> (<a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *sa, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y0, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> x1, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> y1, const <a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> *src, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> src_col_stride, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> src_line_stride, <a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> forgiving)</td></tr>
81 <tr class="memdesc:a174b3ef4cb89af58cdd7c2b9f0a20559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the content of a rectangular region into the sparse array from a user buffer.  <a href="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559">More...</a><br /></td></tr>
82 <tr class="separator:a174b3ef4cb89af58cdd7c2b9f0a20559"><td class="memSeparator" colspan="2">&#160;</td></tr>
83 </table>
84 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
85 <div class="textblock"><p>Sparse array management. </p>
86 <p>The functions in this file manage sparse arrays. Sparse arrays are arrays with potential big dimensions, but with very few samples actually set. Such sparse arrays require allocating a low amount of memory, by just allocating memory for blocks of the array that are set. The minimum memory allocation unit is a a block. There is a trade-off to pick up an appropriate dimension for blocks. If it is too big, and pixels set are far from each other, too much memory will be used. If blocks are too small, the book-keeping costs of blocks will raise. </p>
87 </div><h2 class="groupheader">Typedef Documentation</h2>
88 <a id="ab63770624f4ec03e6e022c6a0b80e6ff"></a>
89 <h2 class="memtitle"><span class="permalink"><a href="#ab63770624f4ec03e6e022c6a0b80e6ff">&#9670;&nbsp;</a></span>opj_sparse_array_int32_t</h2>
90
91 <div class="memitem">
92 <div class="memproto">
93       <table class="memname">
94         <tr>
95           <td class="memname">typedef struct <a class="el" href="structopj__sparse__array__int32.html">opj_sparse_array_int32</a> <a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a></td>
96         </tr>
97       </table>
98 </div><div class="memdoc">
99
100 <p>Opaque type for sparse arrays that contain int32 values. </p>
101
102 </div>
103 </div>
104 <h2 class="groupheader">Function Documentation</h2>
105 <a id="a41953de4fab74677337c2597a67c9843"></a>
106 <h2 class="memtitle"><span class="permalink"><a href="#a41953de4fab74677337c2597a67c9843">&#9670;&nbsp;</a></span>opj_sparse_array_int32_create()</h2>
107
108 <div class="memitem">
109 <div class="memproto">
110       <table class="memname">
111         <tr>
112           <td class="memname"><a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a>* opj_sparse_array_int32_create </td>
113           <td>(</td>
114           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
115           <td class="paramname"><em>width</em>, </td>
116         </tr>
117         <tr>
118           <td class="paramkey"></td>
119           <td></td>
120           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
121           <td class="paramname"><em>height</em>, </td>
122         </tr>
123         <tr>
124           <td class="paramkey"></td>
125           <td></td>
126           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
127           <td class="paramname"><em>block_width</em>, </td>
128         </tr>
129         <tr>
130           <td class="paramkey"></td>
131           <td></td>
132           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
133           <td class="paramname"><em>block_height</em>&#160;</td>
134         </tr>
135         <tr>
136           <td></td>
137           <td>)</td>
138           <td></td><td></td>
139         </tr>
140       </table>
141 </div><div class="memdoc">
142
143 <p>Creates a new sparse array. </p>
144 <dl class="params"><dt>Parameters</dt><dd>
145   <table class="params">
146     <tr><td class="paramname">width</td><td>total width of the array. </td></tr>
147     <tr><td class="paramname">height</td><td>total height of the array </td></tr>
148     <tr><td class="paramname">block_width</td><td>width of a block. </td></tr>
149     <tr><td class="paramname">block_height</td><td>height of a block. </td></tr>
150   </table>
151   </dd>
152 </dl>
153 <dl class="section return"><dt>Returns</dt><dd>a new sparse array instance, or NULL in case of failure. </dd></dl>
154
155 <p class="reference">References <a class="el" href="structopj__sparse__array__int32.html#a3e4065eb08fe228175101035b6f218ed">opj_sparse_array_int32::block_count_hor</a>, <a class="el" href="structopj__sparse__array__int32.html#aee2f11c522fd981408e3ae164c142baf">opj_sparse_array_int32::block_count_ver</a>, <a class="el" href="structopj__sparse__array__int32.html#a8879d3a7726f3f6ff228d5e341ada8b3">opj_sparse_array_int32::block_height</a>, <a class="el" href="structopj__sparse__array__int32.html#a97a62a6f3c09048f6fd8ec4192d71b5f">opj_sparse_array_int32::block_width</a>, <a class="el" href="structopj__sparse__array__int32.html#aa8740069e9f55f024b69b0e96b6f4f56">opj_sparse_array_int32::data_blocks</a>, <a class="el" href="structopj__sparse__array__int32.html#acbfd23999d0b817fb40ed58073bb6cf2">opj_sparse_array_int32::height</a>, <a class="el" href="opj__malloc_8c.html#a3fe08bb7876e393dd04332d049a4d53e">opj_calloc()</a>, <a class="el" href="opj__malloc_8c.html#a9d7d909f8dc1a2c23313c48645341e81">opj_free()</a>, <a class="el" href="opj__intmath_8h.html#ae4b2e5a7c8b8f09faacc4a895f866ea1">opj_uint_ceildiv()</a>, and <a class="el" href="structopj__sparse__array__int32.html#a427c80944840803fd7f5592317ad8564">opj_sparse_array_int32::width</a>.</p>
156
157 <p class="reference">Referenced by <a class="el" href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <a class="el" href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
158
159 </div>
160 </div>
161 <a id="ad70f920d05b4915853b474d010a9a336"></a>
162 <h2 class="memtitle"><span class="permalink"><a href="#ad70f920d05b4915853b474d010a9a336">&#9670;&nbsp;</a></span>opj_sparse_array_int32_free()</h2>
163
164 <div class="memitem">
165 <div class="memproto">
166       <table class="memname">
167         <tr>
168           <td class="memname">void opj_sparse_array_int32_free </td>
169           <td>(</td>
170           <td class="paramtype"><a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *&#160;</td>
171           <td class="paramname"><em>sa</em></td><td>)</td>
172           <td></td>
173         </tr>
174       </table>
175 </div><div class="memdoc">
176
177 <p>Frees a sparse array. </p>
178 <dl class="params"><dt>Parameters</dt><dd>
179   <table class="params">
180     <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
181   </table>
182   </dd>
183 </dl>
184
185 <p class="reference">References <a class="el" href="structopj__sparse__array__int32.html#a3e4065eb08fe228175101035b6f218ed">opj_sparse_array_int32::block_count_hor</a>, <a class="el" href="structopj__sparse__array__int32.html#aee2f11c522fd981408e3ae164c142baf">opj_sparse_array_int32::block_count_ver</a>, <a class="el" href="structopj__sparse__array__int32.html#aa8740069e9f55f024b69b0e96b6f4f56">opj_sparse_array_int32::data_blocks</a>, and <a class="el" href="opj__malloc_8c.html#a9d7d909f8dc1a2c23313c48645341e81">opj_free()</a>.</p>
186
187 <p class="reference">Referenced by <a class="el" href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <a class="el" href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <a class="el" href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <a class="el" href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
188
189 </div>
190 </div>
191 <a id="a092675bfa99d062ce36fa45aff4766da"></a>
192 <h2 class="memtitle"><span class="permalink"><a href="#a092675bfa99d062ce36fa45aff4766da">&#9670;&nbsp;</a></span>opj_sparse_array_int32_read()</h2>
193
194 <div class="memitem">
195 <div class="memproto">
196       <table class="memname">
197         <tr>
198           <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_int32_read </td>
199           <td>(</td>
200           <td class="paramtype">const <a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *&#160;</td>
201           <td class="paramname"><em>sa</em>, </td>
202         </tr>
203         <tr>
204           <td class="paramkey"></td>
205           <td></td>
206           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
207           <td class="paramname"><em>x0</em>, </td>
208         </tr>
209         <tr>
210           <td class="paramkey"></td>
211           <td></td>
212           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
213           <td class="paramname"><em>y0</em>, </td>
214         </tr>
215         <tr>
216           <td class="paramkey"></td>
217           <td></td>
218           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
219           <td class="paramname"><em>x1</em>, </td>
220         </tr>
221         <tr>
222           <td class="paramkey"></td>
223           <td></td>
224           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
225           <td class="paramname"><em>y1</em>, </td>
226         </tr>
227         <tr>
228           <td class="paramkey"></td>
229           <td></td>
230           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> *&#160;</td>
231           <td class="paramname"><em>dest</em>, </td>
232         </tr>
233         <tr>
234           <td class="paramkey"></td>
235           <td></td>
236           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
237           <td class="paramname"><em>dest_col_stride</em>, </td>
238         </tr>
239         <tr>
240           <td class="paramkey"></td>
241           <td></td>
242           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
243           <td class="paramname"><em>dest_line_stride</em>, </td>
244         </tr>
245         <tr>
246           <td class="paramkey"></td>
247           <td></td>
248           <td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td>
249           <td class="paramname"><em>forgiving</em>&#160;</td>
250         </tr>
251         <tr>
252           <td></td>
253           <td>)</td>
254           <td></td><td></td>
255         </tr>
256       </table>
257 </div><div class="memdoc">
258
259 <p>Read the content of a rectangular region of the sparse array into a user buffer. </p>
260 <p>Regions not written with <a class="el" href="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559" title="Write the content of a rectangular region into the sparse array from a user buffer.">opj_sparse_array_int32_write()</a> are read as 0.</p>
261 <dl class="params"><dt>Parameters</dt><dd>
262   <table class="params">
263     <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
264     <tr><td class="paramname">x0</td><td>left x coordinate of the region to read in the sparse array. </td></tr>
265     <tr><td class="paramname">y0</td><td>top x coordinate of the region to read in the sparse array. </td></tr>
266     <tr><td class="paramname">x1</td><td>right x coordinate (not included) of the region to read in the sparse array. Must be greater than x0. </td></tr>
267     <tr><td class="paramname">y1</td><td>bottom y coordinate (not included) of the region to read in the sparse array. Must be greater than y0. </td></tr>
268     <tr><td class="paramname">dest</td><td>user buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * dest_line_stride + (x1 - x0 - 1) * dest_col_stride + 1) bytes large. </td></tr>
269     <tr><td class="paramname">dest_col_stride</td><td>spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. </td></tr>
270     <tr><td class="paramname">dest_line_stride</td><td>spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. </td></tr>
271     <tr><td class="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
272   </table>
273   </dd>
274 </dl>
275 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
276
277 <p class="reference">References <a class="el" href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>, and <a class="el" href="openjpeg_8h.html#a04830036d767cba56cbf5ae5bdc481d3">OPJ_TRUE</a>.</p>
278
279 <p class="reference">Referenced by <a class="el" href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <a class="el" href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <a class="el" href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, <a class="el" href="dwt_8c.html#aa9f1030974db43df751380437e5167af">opj_dwt_interleave_partial_h()</a>, <a class="el" href="dwt_8c.html#ad7a304bcf13f2427c0a6835e6c527d3e">opj_dwt_interleave_partial_v()</a>, <a class="el" href="dwt_8c.html#a9caacdf7450ad73f0023e864f3a74cf1">opj_v8dwt_interleave_partial_h()</a>, and <a class="el" href="dwt_8c.html#a4d4acbc44226a14f02cff29831301f8e">opj_v8dwt_interleave_partial_v()</a>.</p>
280
281 </div>
282 </div>
283 <a id="a174b3ef4cb89af58cdd7c2b9f0a20559"></a>
284 <h2 class="memtitle"><span class="permalink"><a href="#a174b3ef4cb89af58cdd7c2b9f0a20559">&#9670;&nbsp;</a></span>opj_sparse_array_int32_write()</h2>
285
286 <div class="memitem">
287 <div class="memproto">
288       <table class="memname">
289         <tr>
290           <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_int32_write </td>
291           <td>(</td>
292           <td class="paramtype"><a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *&#160;</td>
293           <td class="paramname"><em>sa</em>, </td>
294         </tr>
295         <tr>
296           <td class="paramkey"></td>
297           <td></td>
298           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
299           <td class="paramname"><em>x0</em>, </td>
300         </tr>
301         <tr>
302           <td class="paramkey"></td>
303           <td></td>
304           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
305           <td class="paramname"><em>y0</em>, </td>
306         </tr>
307         <tr>
308           <td class="paramkey"></td>
309           <td></td>
310           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
311           <td class="paramname"><em>x1</em>, </td>
312         </tr>
313         <tr>
314           <td class="paramkey"></td>
315           <td></td>
316           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
317           <td class="paramname"><em>y1</em>, </td>
318         </tr>
319         <tr>
320           <td class="paramkey"></td>
321           <td></td>
322           <td class="paramtype">const <a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> *&#160;</td>
323           <td class="paramname"><em>src</em>, </td>
324         </tr>
325         <tr>
326           <td class="paramkey"></td>
327           <td></td>
328           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
329           <td class="paramname"><em>src_col_stride</em>, </td>
330         </tr>
331         <tr>
332           <td class="paramkey"></td>
333           <td></td>
334           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
335           <td class="paramname"><em>src_line_stride</em>, </td>
336         </tr>
337         <tr>
338           <td class="paramkey"></td>
339           <td></td>
340           <td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td>
341           <td class="paramname"><em>forgiving</em>&#160;</td>
342         </tr>
343         <tr>
344           <td></td>
345           <td>)</td>
346           <td></td><td></td>
347         </tr>
348       </table>
349 </div><div class="memdoc">
350
351 <p>Write the content of a rectangular region into the sparse array from a user buffer. </p>
352 <p>Blocks intersecting the region are allocated, if not already done.</p>
353 <dl class="params"><dt>Parameters</dt><dd>
354   <table class="params">
355     <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
356     <tr><td class="paramname">x0</td><td>left x coordinate of the region to write into the sparse array. </td></tr>
357     <tr><td class="paramname">y0</td><td>top x coordinate of the region to write into the sparse array. </td></tr>
358     <tr><td class="paramname">x1</td><td>right x coordinate (not included) of the region to write into the sparse array. Must be greater than x0. </td></tr>
359     <tr><td class="paramname">y1</td><td>bottom y coordinate (not included) of the region to write into the sparse array. Must be greater than y0. </td></tr>
360     <tr><td class="paramname">src</td><td>user buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * src_line_stride + (x1 - x0 - 1) * src_col_stride + 1) bytes large. </td></tr>
361     <tr><td class="paramname">src_col_stride</td><td>spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. </td></tr>
362     <tr><td class="paramname">src_line_stride</td><td>spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. </td></tr>
363     <tr><td class="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
364   </table>
365   </dd>
366 </dl>
367 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
368
369 <p class="reference">References <a class="el" href="openjpeg_8h.html#ac672bfd7db39c609e828acb07a321964">OPJ_FALSE</a>, and <a class="el" href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>.</p>
370
371 <p class="reference">Referenced by <a class="el" href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <a class="el" href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <a class="el" href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <a class="el" href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
372
373 </div>
374 </div>
375 <a id="a2b5c5075af6a30d35569e4378931ed4c"></a>
376 <h2 class="memtitle"><span class="permalink"><a href="#a2b5c5075af6a30d35569e4378931ed4c">&#9670;&nbsp;</a></span>opj_sparse_array_is_region_valid()</h2>
377
378 <div class="memitem">
379 <div class="memproto">
380       <table class="memname">
381         <tr>
382           <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_is_region_valid </td>
383           <td>(</td>
384           <td class="paramtype">const <a class="el" href="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *&#160;</td>
385           <td class="paramname"><em>sa</em>, </td>
386         </tr>
387         <tr>
388           <td class="paramkey"></td>
389           <td></td>
390           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
391           <td class="paramname"><em>x0</em>, </td>
392         </tr>
393         <tr>
394           <td class="paramkey"></td>
395           <td></td>
396           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
397           <td class="paramname"><em>y0</em>, </td>
398         </tr>
399         <tr>
400           <td class="paramkey"></td>
401           <td></td>
402           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
403           <td class="paramname"><em>x1</em>, </td>
404         </tr>
405         <tr>
406           <td class="paramkey"></td>
407           <td></td>
408           <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
409           <td class="paramname"><em>y1</em>&#160;</td>
410         </tr>
411         <tr>
412           <td></td>
413           <td>)</td>
414           <td></td><td></td>
415         </tr>
416       </table>
417 </div><div class="memdoc">
418
419 <p>Returns whether region bounds are valid (non empty and within array bounds) </p>
420 <dl class="params"><dt>Parameters</dt><dd>
421   <table class="params">
422     <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
423     <tr><td class="paramname">x0</td><td>left x coordinate of the region. </td></tr>
424     <tr><td class="paramname">y0</td><td>top x coordinate of the region. </td></tr>
425     <tr><td class="paramname">x1</td><td>right x coordinate (not included) of the region. Must be greater than x0. </td></tr>
426     <tr><td class="paramname">y1</td><td>bottom y coordinate (not included) of the region. Must be greater than y0. </td></tr>
427   </table>
428   </dd>
429 </dl>
430 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE or OPJ_FALSE. </dd></dl>
431
432 <p class="reference">References <a class="el" href="structopj__sparse__array__int32.html#acbfd23999d0b817fb40ed58073bb6cf2">opj_sparse_array_int32::height</a>, and <a class="el" href="structopj__sparse__array__int32.html#a427c80944840803fd7f5592317ad8564">opj_sparse_array_int32::width</a>.</p>
433
434 <p class="reference">Referenced by <a class="el" href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>.</p>
435
436 </div>
437 </div>
438 </div><!-- contents -->
439 <!-- start footer part -->
440 <hr class="footer"/><address class="footer"><small>
441 Generated by &#160;<a href="http://www.doxygen.org/index.html">
442 <img class="footer" src="doxygen.png" alt="doxygen"/>
443 </a> 1.8.17
444 </small></address>
445 </body>
446 </html>