1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
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.11"/>
7 <title>OpenJPEG: SPARSE ARRAYS - Sparse arrays</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="doxygen.css" rel="stylesheet" type="text/css" />
14 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
16 <table cellspacing="0" cellpadding="0">
18 <tr style="height: 56px;">
19 <td id="projectalign" style="padding-left: 0.5em;">
20 <div id="projectname">OpenJPEG
21  <span id="projectnumber">2.4.0</span>
28 <!-- end header part -->
29 <!-- Generated by Doxygen 1.8.11 -->
30 <div id="navrow1" class="tabs">
32 <li><a href="index.html"><span>Main Page</span></a></li>
33 <li><a href="pages.html"><span>Related Pages</span></a></li>
34 <li class="current"><a href="modules.html"><span>Modules</span></a></li>
35 <li><a href="annotated.html"><span>Data Structures</span></a></li>
36 <li><a href="files.html"><span>Files</span></a></li>
42 <a href="#typedef-members">Typedefs</a> |
43 <a href="#func-members">Functions</a> </div>
44 <div class="headertitle">
45 <div class="title">SPARSE ARRAYS - Sparse arrays</div> </div>
47 <div class="contents">
48 <table class="memberdecls">
49 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
50 Typedefs</h2></td></tr>
51 <tr class="memitem:gab63770624f4ec03e6e022c6a0b80e6ff"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structopj__sparse__array__int32.html">opj_sparse_array_int32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a></td></tr>
52 <tr class="memdesc:gab63770624f4ec03e6e022c6a0b80e6ff"><td class="mdescLeft"> </td><td class="mdescRight">Opaque type for sparse arrays that contain int32 values. <a href="#gab63770624f4ec03e6e022c6a0b80e6ff">More...</a><br /></td></tr>
53 <tr class="separator:gab63770624f4ec03e6e022c6a0b80e6ff"><td class="memSeparator" colspan="2"> </td></tr>
54 </table><table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
56 Functions</h2></td></tr>
57 <tr class="memitem:ga41953de4fab74677337c2597a67c9843"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#ga41953de4fab74677337c2597a67c9843">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>
58 <tr class="memdesc:ga41953de4fab74677337c2597a67c9843"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new sparse array. <a href="#ga41953de4fab74677337c2597a67c9843">More...</a><br /></td></tr>
59 <tr class="separator:ga41953de4fab74677337c2597a67c9843"><td class="memSeparator" colspan="2"> </td></tr>
60 <tr class="memitem:gad70f920d05b4915853b474d010a9a336"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gad70f920d05b4915853b474d010a9a336">opj_sparse_array_int32_free</a> (<a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> *sa)</td></tr>
61 <tr class="memdesc:gad70f920d05b4915853b474d010a9a336"><td class="mdescLeft"> </td><td class="mdescRight">Frees a sparse array. <a href="#gad70f920d05b4915853b474d010a9a336">More...</a><br /></td></tr>
62 <tr class="separator:gad70f920d05b4915853b474d010a9a336"><td class="memSeparator" colspan="2"> </td></tr>
63 <tr class="memitem:ga2b5c5075af6a30d35569e4378931ed4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#ga2b5c5075af6a30d35569e4378931ed4c">opj_sparse_array_is_region_valid</a> (const <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">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>
64 <tr class="memdesc:ga2b5c5075af6a30d35569e4378931ed4c"><td class="mdescLeft"> </td><td class="mdescRight">Returns whether region bounds are valid (non empty and within array bounds) <a href="#ga2b5c5075af6a30d35569e4378931ed4c">More...</a><br /></td></tr>
65 <tr class="separator:ga2b5c5075af6a30d35569e4378931ed4c"><td class="memSeparator" colspan="2"> </td></tr>
66 <tr class="memitem:ga092675bfa99d062ce36fa45aff4766da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#ga092675bfa99d062ce36fa45aff4766da">opj_sparse_array_int32_read</a> (const <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">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>
67 <tr class="memdesc:ga092675bfa99d062ce36fa45aff4766da"><td class="mdescLeft"> </td><td class="mdescRight">Read the content of a rectangular region of the sparse array into a user buffer. <a href="#ga092675bfa99d062ce36fa45aff4766da">More...</a><br /></td></tr>
68 <tr class="separator:ga092675bfa99d062ce36fa45aff4766da"><td class="memSeparator" colspan="2"> </td></tr>
69 <tr class="memitem:ga174b3ef4cb89af58cdd7c2b9f0a20559"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#ga174b3ef4cb89af58cdd7c2b9f0a20559">opj_sparse_array_int32_write</a> (<a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">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>
70 <tr class="memdesc:ga174b3ef4cb89af58cdd7c2b9f0a20559"><td class="mdescLeft"> </td><td class="mdescRight">Write the content of a rectangular region into the sparse array from a user buffer. <a href="#ga174b3ef4cb89af58cdd7c2b9f0a20559">More...</a><br /></td></tr>
71 <tr class="separator:ga174b3ef4cb89af58cdd7c2b9f0a20559"><td class="memSeparator" colspan="2"> </td></tr>
73 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
74 <h2 class="groupheader">Typedef Documentation</h2>
75 <a class="anchor" id="gab63770624f4ec03e6e022c6a0b80e6ff"></a>
77 <div class="memproto">
78 <table class="memname">
80 <td class="memname">typedef struct <a class="el" href="structopj__sparse__array__int32.html">opj_sparse_array_int32</a> <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a></td>
83 </div><div class="memdoc">
85 <p>Opaque type for sparse arrays that contain int32 values. </p>
89 <h2 class="groupheader">Function Documentation</h2>
90 <a class="anchor" id="ga41953de4fab74677337c2597a67c9843"></a>
92 <div class="memproto">
93 <table class="memname">
95 <td class="memname"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a>* opj_sparse_array_int32_create </td>
97 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
98 <td class="paramname"><em>width</em>, </td>
101 <td class="paramkey"></td>
103 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
104 <td class="paramname"><em>height</em>, </td>
107 <td class="paramkey"></td>
109 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
110 <td class="paramname"><em>block_width</em>, </td>
113 <td class="paramkey"></td>
115 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
116 <td class="paramname"><em>block_height</em> </td>
124 </div><div class="memdoc">
126 <p>Creates a new sparse array. </p>
127 <dl class="params"><dt>Parameters</dt><dd>
128 <table class="params">
129 <tr><td class="paramname">width</td><td>total width of the array. </td></tr>
130 <tr><td class="paramname">height</td><td>total height of the array </td></tr>
131 <tr><td class="paramname">block_width</td><td>width of a block. </td></tr>
132 <tr><td class="paramname">block_height</td><td>height of a block. </td></tr>
136 <dl class="section return"><dt>Returns</dt><dd>a new sparse array instance, or NULL in case of failure. </dd></dl>
138 <p>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="group___m_i_s_c.html#ga7fe6dfcb0a623dbec30daf0f48624bf7">opj_calloc()</a>, <a class="el" href="group___m_i_s_c.html#ga2bd00e2482ae36197631bde0665cfdfe">opj_free()</a>, <a class="el" href="group___o_p_j___i_n_t_m_a_t_h.html#gae4b2e5a7c8b8f09faacc4a895f866ea1">opj_uint_ceildiv()</a>, and <a class="el" href="structopj__sparse__array__int32.html#a427c80944840803fd7f5592317ad8564">opj_sparse_array_int32::width</a>.</p>
140 <p>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>
144 <a class="anchor" id="gad70f920d05b4915853b474d010a9a336"></a>
145 <div class="memitem">
146 <div class="memproto">
147 <table class="memname">
149 <td class="memname">void opj_sparse_array_int32_free </td>
151 <td class="paramtype"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> * </td>
152 <td class="paramname"><em>sa</em></td><td>)</td>
156 </div><div class="memdoc">
158 <p>Frees a sparse array. </p>
159 <dl class="params"><dt>Parameters</dt><dd>
160 <table class="params">
161 <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
166 <p>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="group___m_i_s_c.html#ga2bd00e2482ae36197631bde0665cfdfe">opj_free()</a>.</p>
168 <p>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="group___d_w_t.html#ga74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <a class="el" href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
172 <a class="anchor" id="ga092675bfa99d062ce36fa45aff4766da"></a>
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
177 <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_int32_read </td>
179 <td class="paramtype">const <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> * </td>
180 <td class="paramname"><em>sa</em>, </td>
183 <td class="paramkey"></td>
185 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
186 <td class="paramname"><em>x0</em>, </td>
189 <td class="paramkey"></td>
191 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
192 <td class="paramname"><em>y0</em>, </td>
195 <td class="paramkey"></td>
197 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
198 <td class="paramname"><em>x1</em>, </td>
201 <td class="paramkey"></td>
203 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
204 <td class="paramname"><em>y1</em>, </td>
207 <td class="paramkey"></td>
209 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> * </td>
210 <td class="paramname"><em>dest</em>, </td>
213 <td class="paramkey"></td>
215 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
216 <td class="paramname"><em>dest_col_stride</em>, </td>
219 <td class="paramkey"></td>
221 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
222 <td class="paramname"><em>dest_line_stride</em>, </td>
225 <td class="paramkey"></td>
227 <td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td>
228 <td class="paramname"><em>forgiving</em> </td>
236 </div><div class="memdoc">
238 <p>Read the content of a rectangular region of the sparse array into a user buffer. </p>
239 <p>Regions not written with <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#ga174b3ef4cb89af58cdd7c2b9f0a20559" 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>
240 <dl class="params"><dt>Parameters</dt><dd>
241 <table class="params">
242 <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
243 <tr><td class="paramname">x0</td><td>left x coordinate of the region to read in the sparse array. </td></tr>
244 <tr><td class="paramname">y0</td><td>top x coordinate of the region to read in the sparse array. </td></tr>
245 <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>
246 <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>
247 <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>
248 <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>
249 <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>
250 <tr><td class="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
254 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
256 <p>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>
258 <p>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="group___d_w_t.html#ga74b827f7914de05bf5bfc52894894803">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>
262 <a class="anchor" id="ga174b3ef4cb89af58cdd7c2b9f0a20559"></a>
263 <div class="memitem">
264 <div class="memproto">
265 <table class="memname">
267 <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_int32_write </td>
269 <td class="paramtype"><a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> * </td>
270 <td class="paramname"><em>sa</em>, </td>
273 <td class="paramkey"></td>
275 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
276 <td class="paramname"><em>x0</em>, </td>
279 <td class="paramkey"></td>
281 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
282 <td class="paramname"><em>y0</em>, </td>
285 <td class="paramkey"></td>
287 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
288 <td class="paramname"><em>x1</em>, </td>
291 <td class="paramkey"></td>
293 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
294 <td class="paramname"><em>y1</em>, </td>
297 <td class="paramkey"></td>
299 <td class="paramtype">const <a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> * </td>
300 <td class="paramname"><em>src</em>, </td>
303 <td class="paramkey"></td>
305 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
306 <td class="paramname"><em>src_col_stride</em>, </td>
309 <td class="paramkey"></td>
311 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
312 <td class="paramname"><em>src_line_stride</em>, </td>
315 <td class="paramkey"></td>
317 <td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td>
318 <td class="paramname"><em>forgiving</em> </td>
326 </div><div class="memdoc">
328 <p>Write the content of a rectangular region into the sparse array from a user buffer. </p>
329 <p>Blocks intersecting the region are allocated, if not already done.</p>
330 <dl class="params"><dt>Parameters</dt><dd>
331 <table class="params">
332 <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
333 <tr><td class="paramname">x0</td><td>left x coordinate of the region to write into the sparse array. </td></tr>
334 <tr><td class="paramname">y0</td><td>top x coordinate of the region to write into the sparse array. </td></tr>
335 <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>
336 <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>
337 <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>
338 <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>
339 <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>
340 <tr><td class="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
344 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
346 <p>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>
348 <p>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="group___d_w_t.html#ga74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <a class="el" href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
352 <a class="anchor" id="ga2b5c5075af6a30d35569e4378931ed4c"></a>
353 <div class="memitem">
354 <div class="memproto">
355 <table class="memname">
357 <td class="memname"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> opj_sparse_array_is_region_valid </td>
359 <td class="paramtype">const <a class="el" href="group___s_p_a_r_s_e___a_r_r_a_y.html#gab63770624f4ec03e6e022c6a0b80e6ff">opj_sparse_array_int32_t</a> * </td>
360 <td class="paramname"><em>sa</em>, </td>
363 <td class="paramkey"></td>
365 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
366 <td class="paramname"><em>x0</em>, </td>
369 <td class="paramkey"></td>
371 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
372 <td class="paramname"><em>y0</em>, </td>
375 <td class="paramkey"></td>
377 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
378 <td class="paramname"><em>x1</em>, </td>
381 <td class="paramkey"></td>
383 <td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> </td>
384 <td class="paramname"><em>y1</em> </td>
392 </div><div class="memdoc">
394 <p>Returns whether region bounds are valid (non empty and within array bounds) </p>
395 <dl class="params"><dt>Parameters</dt><dd>
396 <table class="params">
397 <tr><td class="paramname">sa</td><td>sparse array instance. </td></tr>
398 <tr><td class="paramname">x0</td><td>left x coordinate of the region. </td></tr>
399 <tr><td class="paramname">y0</td><td>top x coordinate of the region. </td></tr>
400 <tr><td class="paramname">x1</td><td>right x coordinate (not included) of the region. Must be greater than x0. </td></tr>
401 <tr><td class="paramname">y1</td><td>bottom y coordinate (not included) of the region. Must be greater than y0. </td></tr>
405 <dl class="section return"><dt>Returns</dt><dd>OPJ_TRUE or OPJ_FALSE. </dd></dl>
407 <p>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>
409 <p>Referenced by <a class="el" href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>.</p>
413 </div><!-- contents -->
414 <!-- start footer part -->
415 <hr class="footer"/><address class="footer"><small>
416 Generated by  <a href="http://www.doxygen.org/index.html">
417 <img class="footer" src="doxygen.png" alt="doxygen"/>