Update ABI/API compatibility reports after commit 1d358f25c8

This commit is contained in:
OpenJPEG Travis CI 2020-05-20 18:39:51 +00:00
parent 14ceb31cf7
commit db1edc1433
17 changed files with 454 additions and 269 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -20,7 +20,74 @@
<br/>
<h1>Changelog from Git</h1><br/><br/>
<div class='changelog'>
<pre class='wrap'>commit 64689d05dfaaf52105581d93fb1eb173b20829a4
<pre class='wrap'>commit 1d358f25c8eabbc7c274bcc148f4f5d594ec13fe
Merge: 64689d0 4edb8c8
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2020-05-20 20:29:31 +0200
Merge pull request #1246 from rouault/write_plt
Add support for generation of PLT markers in encoder
commit 4edb8c83374f52cd6a8f2c7c875e8ffacccb5fa5
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2020-04-21 15:55:44 +0200
Add support for generation of PLT markers in encoder
* -PLT switch added to opj_compress
* Add a opj_encoder_set_extra_options() function that
accepts a PLT=YES option, and could be expanded later
for other uses.
-------
Testing with a Sentinel2 10m band, T36JTT_20160914T074612_B02.jp2,
coming from S2A_MSIL1C_20160914T074612_N0204_R135_T36JTT_20160914T081456.SAFE
Decompress it to TIFF:
```
opj_uncompress -i T36JTT_20160914T074612_B02.jp2 -o T36JTT_20160914T074612_B02.tif
```
Recompress it with similar parameters as original:
```
opj_compress -n 5 -c [256,256],[256,256],[256,256],[256,256],[256,256] -t 1024,1024 -PLT -i T36JTT_20160914T074612_B02.tif -o T36JTT_20160914T074612_B02_PLT.jp2
```
Dump codestream detail with GDAL dump_jp2.py utility (https://github.com/OSGeo/gdal/blob/master/gdal/swig/python/samples/dump_jp2.py)
```
python dump_jp2.py T36JTT_20160914T074612_B02.jp2 &gt; /tmp/dump_sentinel2_ori.txt
python dump_jp2.py T36JTT_20160914T074612_B02_PLT.jp2 &gt; /tmp/dump_sentinel2_openjpeg_plt.txt
```
The diff between both show very similar structure, and identical number of packets in PLT markers
Now testing with Kakadu (KDU803_Demo_Apps_for_Linux-x86-64_200210)
Full file decompression:
```
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp.tif
Consumed 121 tile-part(s) from a total of 121 tile(s).
Consumed 80,318,806 codestream bytes (excluding any file format) = 5.329697
bits/pel.
Processed using the multi-threaded environment, with
8 parallel threads of execution
```
Partial decompresson (presumably using PLT markers):
```
kdu_expand -i T36JTT_20160914T074612_B02.jp2 -o tmp.pgm -region "{0.5,0.5},{0.01,0.01}"
kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp2.pgm -region "{0.5,0.5},{0.01,0.01}"
diff tmp.pgm tmp2.pgm &amp;& echo "same !"
```
-------
Funded by ESA for S2-MPC project
commit 64689d05dfaaf52105581d93fb1eb173b20829a4
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2020-04-18 18:25:44 +0200
@ -875,21 +942,6 @@ Date: 2018-08-11 16:59:30 -0400
Building under msys/mingw doesn't automatically install the pkg config files needed to build GDAL and other libraries
commit d2205ba2ee78faeea659263383446c4472b1f9df
Merge: fd205f4 4170681
Author: Even Rouault &lt;even.rouault@mines-paris.org&gt;
Date: 2018-06-20 16:26:24 +0200
Merge pull request #1121 from rouault/fix_tnsot_zero
Fix regression in reading files with TNsot == 0 (refs #1120)
commit 4170681661126bc9c1348a0183633dc2f4fc8b05
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2018-06-20 15:06:16 +0200
Add test cases for https://github.com/uclouvain/openjpeg/issues/1120 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2785
...</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.3.1</span><br/>
<span class="iname">opj_encoder_set_extra_options&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, <span class='nowrap'>char const*const* <span class='color_p'>options</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.3.1",

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.3.1</span><br/>
<span class="iname">opj_encoder_set_extra_options&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, <span class='nowrap'>char const*const* <span class='color_p'>options</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_encoder_set_extra_options&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, <span class='nowrap'>char const*const* <span class='color_p'>options</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

@ -145,7 +145,7 @@ $VAR1 = {
'Lang' => 'C',
'Object' => 'lib/libopenjp2.so.2.3.1',
'Path' => 'abi_dump/openjpeg/current/ef225/ABI.dump',
'TotalSymbols' => '49',
'TotalSymbols' => '50',
'Version' => '1.7'
}
}
@ -401,7 +401,7 @@ $VAR1 = {
},
'2.3.1' => {
'current' => {
'Added' => 0,
'Added' => 1,
'BC' => 100,
'ChangedSoname' => 0,
'ObjectsAdded' => 0,
@ -659,7 +659,7 @@ $VAR1 = {
'2.3.1' => {
'current' => {
'daa7f' => {
'Added' => 0,
'Added' => 1,
'Affected' => 0,
'Object1' => 'lib/libopenjp2.so.2.3.1',
'Object2' => 'lib/libopenjp2.so.2.3.1',
@ -705,7 +705,7 @@ $VAR1 = {
'2.2.0' => '2017-08-10 00:31',
'2.3.0' => '2017-10-04 22:23',
'2.3.1' => '2019-04-02 10:08',
'current' => '2020-04-18 18:25:44'
'current' => '2020-05-20 20:29:31'
},
'HeadersDiff' => {
'1.1' => {
@ -813,7 +813,7 @@ $VAR1 = {
'Maintainer' => 'OpenJPEG team',
'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {},
'ScmUpdateTime' => '1587228680',
'ScmUpdateTime' => '1589999953',
'Soname' => {
'1.1' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so'

View File

@ -215,10 +215,66 @@ itialise_encode*/</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> OPJ_UINT32 lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t;</td><td> </td><td class="right"> OPJ_UINT32 lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t;</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">} opj_poc_t;</td><td> </td><td class="right">} opj_poc_t;</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr id="part-3" class="change" ><td></td><th><small>skipping to change at</small><a href="#part-3"><em> line 1539<span class="hide"> &para;</span></em></a></th><th> </th><th><small>skipping to change at</small><a href="#part-3"><em> line 1573<span class="hide"> &para;</span></em></a></th><td></td></tr>
<tr><td class="lineno"></td><td class="left"> * Setup the encoder parameters using the current image and using user para
meters.</td><td> </td><td class="right"> * Setup the encoder parameters using the current image and using user para
meters.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param p_codec Compressor handle</td><td> </td><td class="right"> * @param p_codec Compressor handle</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param parameters Compression parameters</td><td> </td><td class="right"> * @param parameters Compression parameters</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param image Input filled image</td><td> </td><td class="right"> * @param image Input filled image</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_codec,</td><td> </td><td class="right">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_codec,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> opj_cparameters_t *parameters,</td><td> </td><td class="right"> opj_cparameters_t *parameters,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> opj_image_t *image);</td><td> </td><td class="right"> opj_image_t *image);</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
<tr id="diff0007"><td></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">* Specify extra options for the encoder.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * This may be called after opj_setup_encoder() and before opj_start_compre</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ss()</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * This is the way to add new options in a fully ABI compatible way, withou</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">t</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * extending the opj_cparameters_t structure.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Currently supported options are:</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * &lt;ul&gt;</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * &lt;li&gt;PLT=YES/NO. Defaults to NO. If set to YES, PLT marker segments,</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * indicating the length of each packet in the tile-part header, will b</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">e</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * written. Since 2.3.2&lt;/li&gt;</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * &lt;/ul&gt;</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param p_codec Compressor handle</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @param p_options Compression options. This should be a NULL terminat</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ed</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * array of strings. Each string is of the form KEY=VA</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">LUE.</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> *</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></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"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * @since 2.3.2</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> */</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_encoder_set_extra_options(</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> opj_codec_t *p_codec,</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> const char* const* p_options);</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * Start to compress the current image.</td><td> </td><td class="right"> * Start to compress the current image.</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param p_codec Compressor handle</td><td> </td><td class="right"> * @param p_codec Compressor handle</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param p_image Input filled image</td><td> </td><td class="right"> * @param p_image Input filled image</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> * @param p_stream Input stgream</td><td> </td><td class="right"> * @param p_stream Input stgream</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_start_compress(opj_codec_t *p_codec,</td><td> </td><td class="right">OPJ_API OPJ_BOOL OPJ_CALLCONV opj_start_compress(opj_codec_t *p_codec,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> opj_image_t * p_image,</td><td> </td><td class="right"> opj_image_t * p_image,</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"> opj_stream_t *p_stream);</td><td> </td><td class="right"> opj_stream_t *p_stream);</td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
<tr><td class="lineno"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno"></td></tr>
<tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
<tr id="end" bgcolor="gray"><th colspan="5" align="center">&nbsp;End of changes. 6 change blocks.&nbsp;</th></tr>
<tr class="stats"><td></td><th><i>9 lines changed or deleted</i></th><th><i> </i></th><th><i>66 lines changed or added</i></th><td></td></tr>
<tr id="end" bgcolor="gray"><th colspan="5" align="center">&nbsp;End of changes. 7 change blocks.&nbsp;</th></tr>
<tr class="stats"><td></td><th><i>9 lines changed or deleted</i></th><th><i> </i></th><th><i>97 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

@ -1580,6 +1580,33 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_codec,
opj_cparameters_t *parameters,
opj_image_t *image);
/**
* Specify extra options for the encoder.
*
* This may be called after opj_setup_encoder() and before opj_start_compress()
*
* This is the way to add new options in a fully ABI compatible way, without
* extending the opj_cparameters_t structure.
*
* Currently supported options are:
* <ul>
* <li>PLT=YES/NO. Defaults to NO. If set to YES, PLT marker segments,
* indicating the length of each packet in the tile-part header, will be
* written. Since 2.3.2</li>
* </ul>
*
* @param p_codec Compressor handle
* @param p_options Compression options. This should be a NULL terminated
* array of strings. Each string is of the form KEY=VALUE.
*
* @return OPJ_TRUE in case of success.
* @since 2.3.2
*/
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_encoder_set_extra_options(
opj_codec_t *p_codec,
const char* const* p_options);
/**
* Start to compress the current image.
* @param p_codec Compressor handle

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.3.1</td>
<td class='ok'><a href='../../../../compat_report/openjpeg/2.3.1/current/daa7f/abi_compat_report.html'>100%</a></td>
<td class='ok'>0</td>
<td class='added'><a class='num' href='../../../../compat_report/openjpeg/2.3.1/current/daa7f/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>2020-04-18<br/>18:25</td>
<td>2020-05-20<br/>20:29</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'><a href='../../objects_report/openjpeg/2.3.1/current/report.html'>100%</a></td>
<td class='ok'>0</td>
<td class='added'><a class='num' href='../../objects_report/openjpeg/2.3.1/current/report.html'>1 new</a></td>
<td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/2.3.1/current/diff.html'>1</a></td>
</tr>
@ -179,7 +179,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 Sat Apr 18 16:51:56 2020.<br/>
</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Wed May 20 18:39:50 2020.<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>