Update ABI/API compatibility reports after commit d45ccb048b

This commit is contained in:
OpenJPEG Travis CI 2017-09-26 21:49:28 +00:00
parent ab0435ff47
commit 30fadd07f3
15 changed files with 665 additions and 256 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{
"Object": "lib/libopenjp2.so.2.2.0",
"Lang": "C",
"TotalSymbols": "48",
"TotalSymbols": "49",
"PublicABI": "1",
"Version": "1.7"
}

View File

@ -20,7 +20,16 @@
<br/>
<h1>Changelog from Git</h1><br/><br/>
<div class='changelog'>
<pre class='wrap'>commit 3f0de88c7bf4e56826987aa7d3edb5acdd4399f2
<pre class='wrap'>commit d45ccb048bb2166c5d975f4e1b8acaf8ba3d198d
Merge: 3f0de88 e17bbde
Author: Antonin Descampe &lt;antonin@descampe.net&gt;
Date: 2017-09-26 18:30:20 -0300
Merge pull request #1022 from rouault/partial_component_decoding
Add capability to decode only a subset of all components of an image.
commit 3f0de88c7bf4e56826987aa7d3edb5acdd4399f2
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-22 21:43:09 +0200
@ -144,6 +153,28 @@ Date: 2017-09-19 18:22:07 +0200
Replace C++ style comments by C ones
commit e17bbde9066600528ab523adee69d9c9c33ba157
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-19 17:48:07 +0200
opj_set_decoded_components(): add a provision for a apply_color_transforms parameter in case we support it in the future
commit 7e2b6bebff12eab8bdc17fc9af017e8c11652f4f
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-19 16:52:07 +0200
Add capability to decode only a subset of all components of an image.
This adds a opj_set_decoded_components(opj_codec_t *p_codec,
OPJ_UINT32 numcomps, const OPJ_UINT32* comps_indices) function,
and equivalent "opj_decompress -c compno[,compno]*" option.
When specified, neither the MCT transform nor JP2 channel transformations
will be applied.
Tests added for various combinations of whole image vs tiled-based decoding,
full or reduced resolution, use of decode area or not.
commit ce199f42e77f972d6ee782b63492f6d861891053
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-19 12:48:12 +0200
@ -393,6 +424,102 @@ Date: 2017-09-01 16:30:50 +0200
Optimize reading/write into sparse array
commit 0ae3cba3404674bbe2028ea9a801301a4c951b33
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:48 +0200
Allow several repeated calls to opj_set_decode_area() and opj_decode() for single-tiled images
* Only works for single-tiled images --&gt; will error out cleanly, as currently
in other cases
* Save re-reading the codestream for the tile, and re-use code-blocks of the
previous decoding pass.
* Future improvements might involve improving opj_decompress, and the image writing logic,
to use this strategy.
commit 5d07d463fdb0a5eeffa90eba1566cc21697011b8
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:45 +0200
opj_j2k_decode_tiles(): apply whole single tile image decoding optimization to reading at reduced resolution as well
commit 98b93103613c90753fb6c57696f9403f8ea0b1d6
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:44 +0200
Various changes to allow tile buffers of more than 4giga pixels
Untested though, since that means a tile buffer of at least 16 GB. So
there might be places where uint32 overflow on multiplication still occur...
commit 008a12d4fce0a7b1eabc51e04ed339be759646e2
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:41 +0200
TCD: allow tile buffer to be greater than 4GB on 64 bit hosts (but number of pixels must remain under 4 billion)
commit d1299d9670d766006a7a162a770d3b70eaeef9bd
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:39 +0200
Fix compiler warning in release mode
commit d5153ba404fa13b9c6e7b2c20d4d128aac718fba
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:37 +0200
Remove limitation that prevents from opening images bigger than 4 billion pixels
However the intermediate buffer for decoding must still be smaller than 4
billion pixels, so this is useful for decoding at a lower resolution level,
or subtile decoding.
commit c37e360a5112b5471168e429159f61b74c0c2f58
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:35 +0200
opj_tcd_init_tile(): fix typo on overflow detection condition (introduced in previous commit)
commit eee5104a8885227167a349b6dabdb1f72a04d9d0
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:32 +0200
opj_dwt_decode_partial_tile(): avoid undefined behaviour in lifting operation by properly initializing working buffer
commit f9e9942330f476b66ac4a35d0ae521200878f343
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 16:30:29 +0200
Sub-tile decoding: only allocate tile component buffer of the needed dimension
Instead of being the full tile size.
* Use a sparse array mechanism to store code-blocks and intermediate stages of
IDWT.
* IDWT, DC level shift and MCT stages are done just on that smaller array.
* Improve copy of tile component array to final image, by saving an intermediate
buffer.
* For full-tile decoding at reduced resolution, only allocate the tile buffer to
the reduced size, instead of the full-resolution size.
commit aa7198146b995fe2993ce24f5715057b7da0386d
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 23:21:39 +0200
opj_compress: reorder checks related to code block dimensions, to avoid potential int overflow
commit 0a25dceca7761ee3f16cbb2ced87b915a948b25e
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 23:20:51 +0200
opj_j2k_setup_encoder(): validate code block width/height
commit 84bbb4a8743a93d567f40d7233d5196105c8d84e
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 23:12:45 +0200
opj_t1_allocate_buffers(): remove useless overflow checks
commit 6ce49bf5aebb3c45c464fa82d14cfd4bf7026a28
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-01 10:26:18 +0200
@ -464,6 +591,116 @@ Date: 2017-08-24 14:09:31 +0200
imagetopgx(): improve performance in 8 bit case (relates to broken.jpc test case)
commit fdcd4e6365731cc1015213e424068131bcd1f31f
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-24 13:23:25 +0200
Remove -NR-DEC-p1_06.j2k-156-decode and NR-DEC-p1_06.j2k-164-decode from knownfailures
and make them explicit failures. The result images are empty at the requested resolution
commit bc71bd1219269057ea18e6acbc77a96ec37aba82
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-23 18:58:32 +0200
opj_dwt_decode_partial_97(): perf improvement: limit copy of coefficients at end of horizontal pass to actual range of interest
commit 8180eeace13ffceef5dd7c3f80be156e36181846
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 23:06:53 +0200
test_tile_encoder: fix checks on argc
commit c97666f72ba26a7ceb64931963b988a6f8f377f9
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 19:02:04 +0200
j2k.c: fix comment, and remove FIXME
commit 24d069e3ffa2286930a2e7e2638431ea1de6846a
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 17:19:13 +0200
Add comment
commit e9bbc6d3dde946bdb5195f053f24b91335d5d84c
Merge: 3eed024 17a7ac4
Author: Even Rouault &lt;even.rouault@mines-paris.org&gt;
Date: 2017-08-21 13:02:07 +0200
Merge pull request #1001 from rouault/subtile_decoding_stage2
Subtile decoding: only apply IDWT on areas that participate to the window of interest
commit 17a7ac42d581c537cfc1da4324e53047ad82b13e
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-21 12:25:38 +0200
Add comments for filter_width values
commit f87c5ef7ebef3d7a908e98f2de1b6a0336ae57ae
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-20 22:02:41 +0200
Subtile decoding: only do 9x7 IDWT computations on relevant areas of tile-component buffer.
commit 3eed024eb45534f86537404e08d08fa572a40782
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-19 15:45:54 +0200
pgxtoimage(): avoid excessive memory allocation attempt (#999)
commit 5d403250561398f7ba3041d9eb8c893bd680dd72
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-18 15:08:51 +0200
Subtile decoding: only do 5x3 IDWT computations on relevant areas of tile-component buffer.
This lowers 'bin/opj_decompress -i ../MAPA.jp2 -o out.tif -d 0,0,256,256'
down to 0.860s
commit e5285319229a5d77bf316bb0d3a6cbd3cb8666d9
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-18 13:39:20 +0200
pgxtoimage(): fix write stack buffer overflow (#997)
commit 028c504a43e962a725c4fd73d6642ee73c653e1b
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-18 12:30:11 +0200
test_decode_area: fix to make it work with odd image dimensions
commit 5597522cac96b1bc6d48a447751b1c6049248eef
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-18 10:16:38 +0200
bmp_read_rle8_data(): avoid potential infinite loop (#996)
commit 5d12806091eab0659431fefcefdb797b09f8e884
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-17 19:18:48 +0200
opj_j2k_update_rates(): grow tile size buffer for some situations
commit 4b0bfbfabc3ce1cc4c6d18dc7113b9f6335372d4
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-17 16:07:19 +0200
Zero-initialize tile buffer regions of skipped code-blocks, so as to make Valgrind happy
commit fe338a057c39797bf61939471ebaef09e44464c7
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-14 13:23:57 +0200
Sub-tile decoding: only decode precincts and codeblocks that intersect the window specified in opj_set_decode_area()
commit 17ea17f487a777d14bd322ac06c4e6cb9124a226
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-17 19:05:29 +0200
Fix -Wconversion warning
...</pre></div>
</body>

View File

@ -1,4 +1,4 @@
<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!-- verdict:compatible;affected:0;added:1;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!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" xml:lang="en" lang="en">
<head>
@ -287,7 +287,7 @@ function showContent(header, id)
</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Added' style='color:Blue;'>1</a></td></tr>
<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
@ -298,6 +298,11 @@ function showContent(header, id)
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table>
<a name='Added'></a><h2>Added Symbols <span class='new'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.2.0</span><br/>
<span class="iname">opj_set_decoded_components&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, OPJ_UINT32 <span class='color_p'>numcomps</span>, OPJ_UINT32 const* <span class='color_p'>comps_indices</span>, <span class='nowrap'>OPJ_BOOL <span class='color_p'>apply_color_transforms</span> )</span></span></span><br/>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'>
openjpeg.h<br/>

View File

@ -1,6 +1,6 @@
{
"Affected": "0",
"Added": 0,
"Added": 1,
"Removed": 0,
"TotalProblems": 0,
"Object1": "lib/libopenjp2.so.2.2.0",

View File

@ -1,4 +1,4 @@
<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!-- verdict:compatible;affected:0;added:1;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!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" xml:lang="en" lang="en">
<head>
@ -287,7 +287,7 @@ function showContent(header, id)
</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Added' style='color:Blue;'>1</a></td></tr>
<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
@ -298,6 +298,11 @@ function showContent(header, id)
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table>
<a name='Added'></a><h2>Added Symbols <span class='new'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.2.0</span><br/>
<span class="iname">opj_set_decoded_components&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, OPJ_UINT32 <span class='color_p'>numcomps</span>, OPJ_UINT32 const* <span class='color_p'>comps_indices</span>, <span class='nowrap'>OPJ_BOOL <span class='color_p'>apply_color_transforms</span> )</span></span></span><br/>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'>
openjpeg.h<br/>

View File

@ -1,4 +1,4 @@
<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!-- verdict:compatible;affected:0;added:1;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!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" xml:lang="en" lang="en">
<head>
@ -287,7 +287,7 @@ function showContent(header, id)
</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Added' style='color:Blue;'>1</a></td></tr>
<tr><th>Removed Symbols</th><td>High</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
@ -298,6 +298,11 @@ function showContent(header, id)
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table>
<a name='Added'></a><h2>Added Symbols <span class='new'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="iname">opj_set_decoded_components&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, OPJ_UINT32 <span class='color_p'>numcomps</span>, OPJ_UINT32 const* <span class='color_p'>comps_indices</span>, <span class='nowrap'>OPJ_BOOL <span class='color_p'>apply_color_transforms</span> )</span></span></span><br/>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'>
openjpeg.h<br/>

View File

@ -125,7 +125,7 @@ $VAR1 = {
'Lang' => 'C',
'Object' => 'lib/libopenjp2.so.2.2.0',
'Path' => 'abi_dump/openjpeg/current/2c999/ABI.dump',
'TotalSymbols' => '48',
'TotalSymbols' => '49',
'Version' => '1.7'
}
}
@ -325,7 +325,7 @@ $VAR1 = {
},
'2.2.0' => {
'current' => {
'Added' => 0,
'Added' => 1,
'BC' => 100,
'ChangedSoname' => 0,
'ObjectsAdded' => 0,
@ -517,7 +517,7 @@ $VAR1 = {
'2.2.0' => {
'current' => {
'4cd8b' => {
'Added' => 0,
'Added' => 1,
'Affected' => 0,
'Object1' => 'lib/libopenjp2.so.2.2.0',
'Object2' => 'lib/libopenjp2.so.2.2.0',
@ -560,7 +560,7 @@ $VAR1 = {
'2.1.1' => '2016-07-05 14:54',
'2.1.2' => '2016-09-28 18:18',
'2.2.0' => '2017-08-10 00:31',
'current' => '2017-09-22 21:43:09'
'current' => '2017-09-26 18:30:20'
},
'HeadersDiff' => {
'1.1' => {
@ -648,7 +648,7 @@ $VAR1 = {
'Maintainer' => 'OpenJPEG team',
'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {},
'ScmUpdateTime' => '1506110357',
'ScmUpdateTime' => '1506462543',
'Soname' => {
'1.1' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so'

View File

@ -85,7 +85,12 @@ ault) */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_UINT32 stepsizes_mant[OPJ_J2K_MAXBANDS];</td><td> </td><td class="right"> OPJ_UINT32 stepsizes_mant[OPJ_J2K_MAXBANDS];</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** stepsizes used for quantization */</td><td> </td><td class="right"> /** stepsizes used for quantization */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> line 1329</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> line 1332</em></th><td></td></tr>
<tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> line 1326</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> line 1329</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_stream the jpeg2000 stream.</td><td> </td><td class="right"> * @param p_stream the jpeg2000 stream.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_codec the jpeg2000 codec to read.</td><td> </td><td class="right"> * @param p_codec the jpeg2000 codec to read.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_image the image structure initialized with the charac
teristics of encoded image.</td><td> </td><td class="right"> * @param p_image the image structure initialized with the charac
teristics of encoded image.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @return true if the main header of the codestream and the JP
2 header is correctly read.</td><td> </td><td class="right"> * @return true if the main header of the codestream and the JP
@ -95,12 +100,51 @@ ault) */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> opj_codec_t *p_codec,</td><td> </td><td class="right"> opj_codec_t *p_codec,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> opj_image_t **p_image);</td><td> </td><td class="right"> opj_image_t **p_image);</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0005" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/** Restrict the number of components to decode.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * This function should be called after opj_read_header().</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * This function enables to restrict the set of decoded components to the</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * specified indices.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Note that the current implementation (apply_color_transforms == OPJ_FALS</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">E)</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * is such that neither the multi-component transform at codestream level,</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * nor JP2 channel transformations will be applied.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Consequently the indices are relative to the codestream.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Note: opj_decode_tile_data() should not be used together with opj_set_de</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">coded_components().</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param p_codec the jpeg2000 codec to read.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param numcomps Size of the comps_indices array.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param comps_indices Array of numcomps values representing the indic</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">es</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * of the components to decode (relative to the</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * codestream, starting at 0)</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param apply_color_transforms Whether multi-component transform at cod</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">estream level</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * or JP2 channel transformations should be</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> applied.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Currently this parameter should be set t</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">o OPJ_FALSE.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Setting it to OPJ_TRUE will result in an</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> error.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @return OPJ_TRUE in case of success.</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> */</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_cod</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ec,</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_UINT32 numcomps,</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> const OPJ_UINT32* comps_indices,</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_BOOL apply_color_transforms);</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * Sets the given area to be decoded. This function should be called right
after opj_read_header and before any tile header reading.</td><td> </td><td class="right"> * Sets the given area to be decoded. This function should be called right
after opj_read_header and before any tile header reading.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0005" /></td></tr>
<tr><td><a name="diff0006" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">* The coordinates passed to this function should be expressed in the refer</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ence grid,</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * that is to say at the highest resolution level, even if requesting the i</span></td><td class="lineno" valign="top"></td></tr>
@ -136,10 +180,46 @@ image coordinates).</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @return true if the area could be set.</td><td> </td><td class="right"> * @return true if the area could be set.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decode_area(opj_codec_t *p_codec,</td><td> </td><td class="right">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decode_area(opj_codec_t *p_codec,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> line 1432</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> line 1475</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_UINT32 * p_data_size,</td><td> </td><td class="right"> OPJ_UINT32 * p_data_size,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_INT32 * p_tile_x0, OPJ_INT32 * p_tile_y0,</td><td> </td><td class="right"> OPJ_INT32 * p_tile_x0, OPJ_INT32 * p_tile_y0,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_INT32 * p_tile_x1, OPJ_INT32 * p_tile_y1,</td><td> </td><td class="right"> OPJ_INT32 * p_tile_x1, OPJ_INT32 * p_tile_y1,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_UINT32 * p_nb_comps,</td><td> </td><td class="right"> OPJ_UINT32 * p_nb_comps,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_BOOL * p_should_go_on);</td><td> </td><td class="right"> OPJ_BOOL * p_should_go_on);</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * Reads a tile data. This function is compulsory and allows one to decode
tile data. opj_read_tile_header should be called before.</td><td> </td><td class="right"> * Reads a tile data. This function is compulsory and allows one to decode
tile data. opj_read_tile_header should be called before.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * The user may need to refer to the image got by opj_read_header to unders
tand the size being taken by the tile.</td><td> </td><td class="right"> * The user may need to refer to the image got by opj_read_header to unders
tand the size being taken by the tile.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0007" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">* Note: opj_decode_tile_data() should not be used together with opj_set_de</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">coded_components().</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_codec the jpeg2000 codec.</td><td> </td><td class="right"> * @param p_codec the jpeg2000 codec.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_tile_index the index of the tile being decoded, this shoul
d be the value set by opj_read_tile_header.</td><td> </td><td class="right"> * @param p_tile_index the index of the tile being decoded, this shoul
d be the value set by opj_read_tile_header.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_data pointer to a memory block that will hold the de
coded data.</td><td> </td><td class="right"> * @param p_data pointer to a memory block that will hold the de
coded data.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_data_size size of p_data. p_data_size should be bigger or
equal to the value set by opj_read_tile_header.</td><td> </td><td class="right"> * @param p_data_size size of p_data. p_data_size should be bigger or
equal to the value set by opj_read_tile_header.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @param p_stream the stream to decode.</td><td> </td><td class="right"> * @param p_stream the stream to decode.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * @return true if the data could be decoded.</td><td> </td><td class="right"> * @return true if the data could be decoded.</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_decode_tile_data(opj_codec_t *p_codec,</td><td> </td><td class="right">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_decode_tile_data(opj_codec_t *p_codec,</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_UINT32 p_tile_index,</td><td> </td><td class="right"> OPJ_UINT32 p_tile_index,</td><td class="lineno" valign="top"></td></tr>
<tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
<tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 5 change blocks.&nbsp;</a></th></tr>
<tr class="stats"><td></td><th><i>5 lines changed or deleted</i></th><th><i> </i></th><th><i>24 lines changed or added</i></th><td></td></tr>
<tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 7 change blocks.&nbsp;</a></th></tr>
<tr class="stats"><td></td><th><i>5 lines changed or deleted</i></th><th><i> </i></th><th><i>65 lines changed or added</i></th><td></td></tr>
<tr><td colspan="5" align="center" class="small"></td></tr>
</table>
<br/><div style='width:100%;' align='left' class='small'>This html diff was produced by rfcdiff 1.41.The latest version is available from <a href='http://tools.ietf.org/tools/rfcdiff/'>http://tools.ietf.org/tools/rfcdiff/</a></div>

View File

@ -1336,6 +1336,37 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_header(opj_stream_t *p_stream,
opj_codec_t *p_codec,
opj_image_t **p_image);
/** Restrict the number of components to decode.
*
* This function should be called after opj_read_header().
*
* This function enables to restrict the set of decoded components to the
* specified indices.
* Note that the current implementation (apply_color_transforms == OPJ_FALSE)
* is such that neither the multi-component transform at codestream level,
* nor JP2 channel transformations will be applied.
* Consequently the indices are relative to the codestream.
*
* Note: opj_decode_tile_data() should not be used together with opj_set_decoded_components().
*
* @param p_codec the jpeg2000 codec to read.
* @param numcomps Size of the comps_indices array.
* @param comps_indices Array of numcomps values representing the indices
* of the components to decode (relative to the
* codestream, starting at 0)
* @param apply_color_transforms Whether multi-component transform at codestream level
* or JP2 channel transformations should be applied.
* Currently this parameter should be set to OPJ_FALSE.
* Setting it to OPJ_TRUE will result in an error.
*
* @return OPJ_TRUE in case of success.
*/
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
OPJ_UINT32 numcomps,
const OPJ_UINT32* comps_indices,
OPJ_BOOL apply_color_transforms);
/**
* Sets the given area to be decoded. This function should be called right after opj_read_header and before any tile header reading.
*
@ -1452,6 +1483,8 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_tile_header(opj_codec_t *p_codec,
* Reads a tile data. This function is compulsory and allows one to decode tile data. opj_read_tile_header should be called before.
* The user may need to refer to the image got by opj_read_header to understand the size being taken by the tile.
*
* Note: opj_decode_tile_data() should not be used together with opj_set_decoded_components().
*
* @param p_codec the jpeg2000 codec.
* @param p_tile_index the index of the tile being decoded, this should be the value set by opj_read_tile_header.
* @param p_data pointer to a memory block that will hold the decoded data.

View File

@ -1,6 +1,6 @@
{
"BC": "100",
"Added": 0,
"Added": 1,
"Removed": 0,
"TotalProblems": 0,
"ObjectsAdded": 0,

View File

@ -30,7 +30,7 @@
<tr>
<td class='object'>libopenjp2.so.2.2.0</td>
<td class='ok'><a href='../../../../compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html'>100%</a></td>
<td class='ok'>0</td>
<td class='added'><a class='num' href='../../../../compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html#Added'>1 new</a></td>
<td class='ok'>0</td>
</tr>
</table>

View File

@ -30,11 +30,11 @@
<th>Headers<br/>Diff</th>
</tr>
<tr id='current'><td>current</td>
<td>2017-09-22<br/>21:43</td>
<td>2017-09-26<br/>18:30</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'><a href='../../objects_report/openjpeg/2.2.0/current/report.html'>100%</a></td>
<td class='ok'>0</td>
<td class='added'><a class='num' href='../../objects_report/openjpeg/2.2.0/current/report.html'>1 new</a></td>
<td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/2.2.0/current/diff.html'>1</a></td>
</tr>
@ -161,7 +161,7 @@
<td>N/A</td>
<td>N/A</td>
</tr>
</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Fri Sep 22 19:59:42 2017.<br/>
</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Tue Sep 26 21:49:28 2017.<br/>
<br/>
<hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div>