Update ABI/API compatibility reports after commit 954dad66de

This commit is contained in:
OpenJPEG Travis CI 2016-06-21 14:58:09 +00:00
parent baca59fa24
commit 4841b89b69
21 changed files with 2300 additions and 776 deletions

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,19 @@
<br/> <br/>
<h1>Changelog from Git</h1><br/><br/> <h1>Changelog from Git</h1><br/><br/>
<div class='changelog'> <div class='changelog'>
<pre class='wrap'>commit d0babeb6f6cdd1887308137df37bb2b4724a6592 <pre class='wrap'>commit 954dad66dea3c5bb1e59187987e77c18f7b593ec
Author: Antonin Descampe &lt;antonin@gmail.com&gt;
Date: 2016-06-21 16:46:38 +0200
Automatic upload of ABI report (ctd)
commit 48744a1342123945ca461839ffe52d9b2c467fc9
Author: Antonin Descampe &lt;antonin@gmail.com&gt;
Date: 2016-06-21 16:19:06 +0200
setup automatic upload of ABI reports
commit d0babeb6f6cdd1887308137df37bb2b4724a6592
Author: Antonin Descampe &lt;antonin@gmail.com&gt; Author: Antonin Descampe &lt;antonin@gmail.com&gt;
Date: 2016-05-15 01:36:31 +0200 Date: 2016-05-15 01:36:31 +0200
@ -793,7 +805,6 @@ Date: 2015-10-23 20:26:08 +0100
Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt; Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
commit f080ab8ce022f06e47c96ea444b00df7c2204814 commit f080ab8ce022f06e47c96ea444b00df7c2204814
Merge: b06bed7 ad7eb56
Author: Matthieu Darbois &lt;mayeut@users.noreply.github.com&gt; Author: Matthieu Darbois &lt;mayeut@users.noreply.github.com&gt;
Date: 2015-10-21 20:53:22 +0200 Date: 2015-10-21 20:53:22 +0200
@ -841,24 +852,6 @@ Date: 2015-10-21 00:09:04 +0200
Update #642 Update #642
commit eaf55b677c53d76a11d2b860034337afdf8d8817
Author: Stephan Mühlstrasser &lt;stm@pdflib.com&gt;
Date: 2015-10-20 13:02:51 +0200
Generic aligned malloc implementation.
Used for platforms where none of posix_memalign(), memalign() and
_aligned_malloc() is available.
commit 0967d6485414e7038d51f11e4e57f7a4bf5b4572
Author: Stephan Mühlstrasser &lt;stm@pdflib.com&gt;
Date: 2015-10-20 13:02:51 +0200
Generic aligned malloc implementation.
Used for platforms where none of posix_memalign(), memalign() and
_aligned_malloc() is available.
...</pre></div> ...</pre></div>
</body> </body>

View File

@ -0,0 +1,453 @@
<!-- verdict:incompatible;affected:18.2;added:3;removed:4;type_problems_high:0;type_problems_medium:0;type_problems_low:3;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;type_changes_other:1;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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="libopenjpeg, binary compatibility, API, report" />
<meta name="description" content="Binary compatibility report for the libopenjpeg object between 1.2 and 1.4 versions on x86_64" />
<title>libopenjpeg: 1.2 to 1.4 binary compatibility report</title>
<style type="text/css">
body {
font-family:Arial, sans-serif;
background-color:White;
color:Black;
}
hr {
color:Black;
background-color:Black;
height:1px;
border:0;
}
h1 {
margin-bottom:0px;
padding-bottom:0px;
font-size:1.625em;
}
h2 {
margin-bottom:0px;
padding-bottom:0px;
font-size:1.25em;
white-space:nowrap;
}
span.section {
font-weight:bold;
cursor:pointer;
color:#003E69;
white-space:nowrap;
margin-left:5px;
}
span.new_sign {
font-weight:bold;
margin-left:26px;
color:#003E69;
}
span.new_sign_lbl {
margin-left:28px;
font-size:0.875em;
color:Black;
}
span:hover.section {
color:#336699;
}
span.sect_aff {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:#cc3300;
}
span.sect_info {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:Black;
}
span.ext {
font-weight:100;
}
span.h_name {
color:#cc3300;
font-size:0.875em;
font-weight:bold;
}
div.h_list, div.lib_list {
font-size:0.94em;
padding-left:5px;
}
span.ns {
color:#408080;
font-size:0.94em;
}
span.lib_name {
color:Green;
font-size:0.875em;
font-weight:bold;
}
span.iname {
font-weight:bold;
color:#003E69;
margin-left:5px;
}
span.iname_b {
font-weight:bold;
font-size:1.1em;
}
span.iname_a {
color:#333333;
font-weight:bold;
font-size:0.94em;
}
span.sym_p {
font-weight:normal;
white-space:normal;
}
div.affect {
padding-left:15px;
padding-bottom:10px;
font-size:0.87em;
font-style:italic;
line-height:0.75em;
}
div.affected {
padding-left:30px;
padding-top:10px;
}
table.ptable {
border-collapse:collapse;
border:1px outset black;
line-height:1em;
margin-left:15px;
margin-top:3px;
margin-bottom:3px;
width:900px;
}
table.ptable td {
border:1px solid gray;
padding: 3px;
font-size:0.875em;
text-align:left;
vertical-align:top;
}
table.vtable {
border-collapse:collapse;
border:1px outset black;
line-height:16px;
margin-left:30px;
margin-top:10px;
}
table.vtable td {
border:1px solid gray;
word-wrap:break-word;
padding: 3px;
font-size:0.875em;
max-width:450px;
vertical-align:top;
}
table.ptable th, table.vtable th {
background-color:#eeeeee;
font-weight:bold;
color:#333333;
font-family:Verdana, Arial;
font-size:0.81em;
border:1px solid gray;
text-align:center;
vertical-align:top;
white-space:nowrap;
padding: 3px;
}
table.summary {
border-collapse:collapse;
border:1px outset black;
}
table.summary th {
background-color:#eeeeee;
font-weight:100;
text-align:left;
font-size:0.94em;
white-space:nowrap;
border:1px inset gray;
padding: 3px;
}
table.summary td {
text-align:right;
white-space:nowrap;
border:1px inset gray;
padding: 3px 5px 3px 10px;
}
span.mangled {
padding-left:15px;
font-size:0.875em;
cursor:text;
color:#444444;
}
span.sym_ver {
color:#333333;
white-space:nowrap;
font-family:"DejaVu Sans Mono", Monospace;
}
span.attr {
color:#333333;
font-weight:100;
}
span.color_p {
font-style:italic;
color:Brown;
}
span.p {
font-style:italic;
}
span.fp {
font-style:italic;
background-color:#DCDCDC;
}
span.ttype {
font-weight:100;
}
span.nowrap {
white-space:nowrap;
}
span.value {
white-space:nowrap;
font-weight:bold;
}
.passed {
background-color:#CCFFCC;
}
.warning {
background-color:#F4F4AF;
}
.failed {
background-color:#FFCCCC;
}
.new {
background-color:#C6DEFF;
}
.compatible {
background-color:#CCFFCC;
}
.almost_compatible {
background-color:#FFDAA3;
}
.incompatible {
background-color:#FFCCCC;
}
.gray {
background-color:#DCDCDC;
}
.top_ref {
font-size:0.69em;
}
.footer {
font-size:0.75em;
}
</style>
<script type="text/javascript" language="JavaScript">
<!--
function showContent(header, id)
{
e = document.getElementById(id);
if(e.style.display == 'none')
{
e.style.display = 'block';
e.style.visibility = 'visible';
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[&minus;]");
}
else
{
e.style.display = 'none';
e.style.visibility = 'hidden';
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
}
}
-->
</script>
</head>
<body>
<div><a name='Top'></a>
<h1>Binary compatibility report for the <span style='color:Blue;'>libopenjpeg.so</span> object between <span style='color:Red;'>1.2</span> and <span style='color:Red;'>1.4</span> versions on <span style='color:Blue;'>x86_64</span></h1>
<h2>Test Info</h2><hr/>
<table class='summary'>
<tr><th>Module Name</th><td>libopenjpeg</td></tr>
<tr><th>Version #1</th><td>1.2</td></tr>
<tr><th>Version #2</th><td>1.4</td></tr>
<tr><th>CPU Type</th><td>x86_64</td></tr>
<tr><th>GCC Version</th><td>4.9.2</td></tr>
</table>
<h2>Test Results</h2><hr/>
<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>18</a></td></tr>
<tr><th>Total Source Files</th><td><a href='#Sources' style='color:Blue;'>18</a></td></tr>
<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Symbols / Types</th><td>22 / 64</td></tr>
<tr><th>Compatibility</th>
<td class='almost_compatible'>81.8%</td>
</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 class='new'><a href='#Added' style='color:Blue;'>3</a></td></tr>
<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Removed' style='color:Blue;'>4</a></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>
<tr><td>Low</td><td class='warning'><a href='#Type_Problems_Low' style='color:Blue;'>3</a></td></tr>
<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Changes_In_Types' style='color:Blue;'>1</a></td></tr>
</table>
<a name='Added'></a><h2>Added Symbols <span class='new'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjpeg.so.1.4.0</span><br/>
<span class="iname">opj_decode_with_info&#160;<span class='sym_p'>(&#160;opj_dinfo_t* <span class='color_p'>dinfo</span>, <span class='nowrap'>opj_cio_t* <span class='color_p'>cio</span>,</span> <span class='nowrap'>opj_codestream_info_t* <span class='color_p'>cstr_info</span> )</span></span></span><br/>
<span class="iname">opj_destroy_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_info_t* <span class='color_p'>cstr_info</span> )</span></span></span><br/>
<span class="iname">opj_encode_with_info&#160;<span class='sym_p'>(&#160;opj_cinfo_t* <span class='color_p'>cinfo</span>, <span class='nowrap'>opj_cio_t* <span class='color_p'>cio</span>,</span> opj_image_t* <span class='color_p'>image</span>, <span class='nowrap'>opj_codestream_info_t* <span class='color_p'>cstr_info</span> )</span></span></span><br/>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Removed'></a><a name='Withdrawn'></a><h2>Removed Symbols <span class='failed'>&nbsp;4&nbsp;</span></h2><hr/>
<span class='h_name'>j2k_lib.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
<span class="iname">opj_free&#160;<span class='sym_p'>(&#160;<span class='nowrap'>void* <span class='color_p'>memblock</span> )</span></span></span><br/>
<span class="iname">opj_malloc&#160;<span class='sym_p'>(&#160;<span class='nowrap'>size_t <span class='color_p'>size</span> )</span></span></span><br/>
<span class="iname">opj_realloc&#160;<span class='sym_p'>(&#160;<span class='nowrap'>void* <span class='color_p'>memblock</span>,</span> <span class='nowrap'>size_t <span class='color_p'>size</span> )</span></span></span><br/>
<br/>
<span class='h_name'>mqc.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
<span class="iname">mqc_setcurctx&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_mqc_t* <span class='color_p'>mqc</span>,</span> <span class='nowrap'>int <span class='color_p'>ctxno</span> )</span></span></span><br/>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Low_Risk_Problems'></a><a name='Type_Problems_Low'></a>
<h2>Problems with Data Types, Low Severity <span class='warning'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_1')">
<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_image <span class='warning'>&nbsp;3&nbsp;</span></span>
<br/>
<div id="c_1" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Field <b>icc_profile_buf</b> has been added to this type.</td>
<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>2</th>
<td>Field <b>icc_profile_len</b> has been added to this type.</td>
<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>3</th>
<td>Size of this type has been changed from <b>32</b> bytes to <b>48</b> bytes.</td>
<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')">
[+] affected symbols: 5 (22.7%)</span>
<div id="c_2" style="display:none;">
<div class='affected'><span class='iname_a'>opj_decode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_dinfo_t* <i>dinfo</i>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
<div class='affect'>Return value (pointer) has base type &#39;struct opj_image&#39;.</div>
<span class='iname_a'>opj_encode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>image</span>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;image&#39; (pointer) has base type &#39;struct opj_image&#39;.</div>
<span class='iname_a'>opj_image_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>int <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <i>clrspc</i> )</span></span></span><br/>
<div class='affect'>Return value (pointer) has base type &#39;struct opj_image&#39;.</div>
<span class='iname_a'>opj_image_destroy&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;image&#39; (pointer) has base type &#39;struct opj_image&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;image&#39; (pointer) has base type &#39;struct opj_image&#39;.</div>
</div>
</div>
<br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Other_Changes'></a><a name='Other_Changes_In_Types'></a>
<h2>Other Changes in Data Types <span class='passed'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_3')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> COLOR_SPACE <span class='passed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_3" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>The member <b>CLRSPC_UNSPECIFIED</b> with value <b>0</b> has been added.</td>
<td>No effect.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')">
[+] affected symbols: 5 (22.7%)</span>
<div id="c_4" style="display:none;">
<div class='affected'><span class='iname_a'>opj_decode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_dinfo_t* <i>dinfo</i>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
<div class='affect'>Field &#39;retval.color_space&#39; in return value (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_encode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>image</span>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 3rd parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>int <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_destroy&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 1st parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 3rd parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
</div>
</div>
<br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;18&nbsp;</span></h2><hr/>
<div class='h_list'>
bio.h<br/>
cio.h<br/>
dwt.h<br/>
event.h<br/>
image.h<br/>
j2k.h<br/>
j2k_lib.h<br/>
jp2.h<br/>
jpt.h<br/>
mct.h<br/>
mqc.h<br/>
openjpeg.h<br/>
pi.h<br/>
raw.h<br/>
t1.h<br/>
t2.h<br/>
tcd.h<br/>
tgt.h<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Sources'></a><h2>Source Files <span class='gray'>&nbsp;18&nbsp;</span></h2><hr/>
<div class='h_list'>
bio.c<br/>
cio.c<br/>
dwt.c<br/>
event.c<br/>
image.c<br/>
j2k.c<br/>
j2k_lib.c<br/>
jp2.c<br/>
jpt.c<br/>
mct.c<br/>
mqc.c<br/>
openjpeg.c<br/>
pi.c<br/>
raw.c<br/>
t1.c<br/>
t2.c<br/>
tcd.c<br/>
tgt.c<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Libs'></a><h2>Objects <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='lib_list'>
libopenjpeg.so<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
</div>
<br/><br/><br/>
<hr/>
<div class='footer' align='right'><i>Generated by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.21 &#160;</i>
</div>
<br/>
</body></html>

View File

@ -0,0 +1,8 @@
{
"Affected": "18.2",
"Added": 3,
"Removed": 4,
"TotalProblems": 3,
"Object1": "lib/libopenjpeg.so",
"Object2": "lib/libopenjpeg.so.1.4.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:incompatible;affected:23.3;added:0;removed:0;type_problems_high:0;type_problems_medium:3;type_problems_low:0;interface_problems_high:7;interface_problems_medium:3;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"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
@ -272,10 +272,9 @@ function showContent(header, id)
<h2>Test Info</h2><hr/> <h2>Test Info</h2><hr/>
<table class='summary'> <table class='summary'>
<tr><th>Module Name</th><td>libopenjp2</td></tr> <tr><th>Module Name</th><td>libopenjp2</td></tr>
<tr><th>Version #1</th><td>2.1</td></tr> <tr><th>Version #1</th><td>2.1 (gcc 4.9.2)</td></tr>
<tr><th>Version #2</th><td>current</td></tr> <tr><th>Version #2</th><td>current (gcc 4.8.1)</td></tr>
<tr><th>CPU Type</th><td>x86_64</td></tr> <tr><th>CPU Type</th><td>x86_64</td></tr>
<tr><th>GCC Version</th><td>4.9.2</td></tr>
</table> </table>
<h2>Test Results</h2><hr/> <h2>Test Results</h2><hr/>
<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr> <table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr>
@ -283,21 +282,231 @@ function showContent(header, id)
<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> <tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Symbols / Types</th><td>43 / 110</td></tr> <tr><th>Total Symbols / Types</th><td>43 / 110</td></tr>
<tr><th>Compatibility</th> <tr><th>Compatibility</th>
<td class='compatible'>100%</td> <td class='incompatible'>76.7%</td>
</tr> </tr>
</table> </table>
<h2>Problem Summary</h2><hr/> <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>0</td></tr>
<tr><th>Removed Symbols</th><td>High</td><td>0</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><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr> <tr><td>Medium</td><td class='failed'><a href='#Type_Problems_Medium' style='color:Blue;'>3</a></td></tr>
<tr><td>Low</td><td>0</td></tr> <tr><td>Low</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> <tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Problems_High' style='color:Blue;'>7</a></td></tr>
<tr><td>Medium</td><td>0</td></tr> <tr><td>Medium</td><td class='failed'><a href='#Symbol_Problems_Medium' style='color:Blue;'>3</a></td></tr>
<tr><td>Low</td><td>0</td></tr> <tr><td>Low</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> <tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table> </table>
<a name='High_Risk_Problems'></a><a name='Symbol_Problems_High'></a><a name='Interface_Problems_High'></a>
<h2>Problems with Symbols, High Severity <span class='failed'>&nbsp;7&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.1.0</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_1')">
<span class='ext'>[+]</span> opj_destroy_cstr_index&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_index_t** <span class='color_p'>p_cstr_index</span> )</span></span> <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_1" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_cstr_index</b> became passed in <b>rdi</b> register instead of <b>rax</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<span class="section" onclick="javascript:showContent(this, 'c_2')">
<span class='ext'>[+]</span> opj_read_tile_header&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, opj_stream_t* <span class='color_p'>p_stream</span>, OPJ_UINT32* <span class='color_p'>p_tile_index</span>, OPJ_UINT32* <span class='color_p'>p_data_size</span>, OPJ_INT32* <span class='color_p'>p_tile_x0</span>, OPJ_INT32* <span class='color_p'>p_tile_y0</span>, OPJ_INT32* <span class='color_p'>p_tile_x1</span>, OPJ_INT32* <span class='color_p'>p_tile_y1</span>, OPJ_UINT32* <span class='color_p'>p_nb_comps</span>, <span class='nowrap'>OPJ_BOOL* <span class='color_p'>p_should_go_on</span> )</span></span> <span class='failed'>&nbsp;4&nbsp;</span></span>
<br/>
<div id="c_2" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_data_size</b> became passed in <b>rbx</b> register instead of <b>rcx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_tile_index</b> became passed in <b>rbp</b> register instead of <b>rdx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>3</th>
<td>The parameter <b>p_tile_x0</b> became passed in <b>rcx</b> register instead of <b>r8</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>4</th>
<td>The parameter <b>p_tile_y0</b> became passed in <b>r8</b> register instead of <b>r9</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<span class="section" onclick="javascript:showContent(this, 'c_3')">
<span class='ext'>[+]</span> opj_stream_create_file_stream&#160;<span class='sym_p'>(&#160;char const* <span class='color_p'>fname</span>, OPJ_SIZE_T <span class='color_p'>p_size</span>, <span class='nowrap'>OPJ_BOOL <span class='color_p'>p_is_read_stream</span> )</span></span> <span class='failed'>&nbsp;2&nbsp;</span></span>
<br/>
<div id="c_3" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_is_read_stream</b> became passed in <b>rbx</b> register instead of <b>rdx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_size</b> became passed in <b>r12</b> register instead of <b>rsi</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Medium_Risk_Problems'></a><a name='Type_Problems_Medium'></a>
<h2>Problems with Data Types, Medium Severity <span class='failed'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_4')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> CODEC_FORMAT <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_4" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CODEC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_5')">
[+] affected symbols: 2 (4.7%)</span>
<div id="c_5" style="display:none;">
<div class='affected'><span class='iname_a'>opj_create_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
<span class='iname_a'>opj_create_decompress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_6')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> COLOR_SPACE <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_6" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CLRSPC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_7')">
[+] affected symbols: 9 (20.9%)</span>
<div id="c_7" style="display:none;">
<div class='affected'><span class='iname_a'>opj_decode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_get_decoded_tile&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_UINT32 <i>tile_index</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_destroy&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 1st parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_tile_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_read_header&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t** <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_set_decode_area&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_y</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_y</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_start_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_8')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> PROG_ORDER <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_8" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_PROG_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_9')">
[+] affected symbols: 5 (11.6%)</span>
<div id="c_9" style="display:none;">
<div class='affected'><span class='iname_a'>opj_destroy_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_info_v2_t** <span class='fp'>cstr_info</span> )</span></span></span><br/>
<div class='affect'>Field &#39;cstr_info.m_default_tile_info.prg&#39; in 1st parameter &#39;cstr_info&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_get_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i> )</span></span></span><br/>
<div class='affect'>Field &#39;retval.m_default_tile_info.prg&#39; in return value (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_default_encoder_parameters&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_MCT&#160;<span class='sym_p'>(&#160;opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>OPJ_FLOAT32* <i>pEncodingMatrix</i>,</span> <span class='nowrap'>OPJ_INT32* <i>p_dc_shift</i>,</span> <span class='nowrap'>OPJ_UINT32 <i>pNbComp</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>p_image</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 2nd parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
</div>
</div>
<br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Symbol_Problems_Medium'></a><a name='Interface_Problems_Medium'></a>
<h2>Problems with Symbols, Medium Severity <span class='failed'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.1.0</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_10')">
<span class='ext'>[+]</span> opj_read_tile_header&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, opj_stream_t* <span class='color_p'>p_stream</span>, OPJ_UINT32* <span class='color_p'>p_tile_index</span>, OPJ_UINT32* <span class='color_p'>p_data_size</span>, OPJ_INT32* <span class='color_p'>p_tile_x0</span>, OPJ_INT32* <span class='color_p'>p_tile_y0</span>, OPJ_INT32* <span class='color_p'>p_tile_x1</span>, OPJ_INT32* <span class='color_p'>p_tile_y1</span>, OPJ_UINT32* <span class='color_p'>p_nb_comps</span>, <span class='nowrap'>OPJ_BOOL* <span class='color_p'>p_should_go_on</span> )</span></span> <span class='failed'>&nbsp;3&nbsp;</span></span>
<br/>
<div id="c_10" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_nb_comps</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_should_go_on</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>3</th>
<td>The parameter <b>p_tile_y1</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
</table>
<br/>
</div>
<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/> <a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'> <div class='h_list'>
openjpeg.h<br/> openjpeg.h<br/>

View File

@ -1,8 +1,8 @@
{ {
"Affected": "0", "Affected": "23.3",
"Added": 0, "Added": 0,
"Removed": 0, "Removed": 0,
"TotalProblems": 0, "TotalProblems": 13,
"Object1": "lib/libopenjp2.so.2.1.0", "Object1": "lib/libopenjp2.so.2.1.0",
"Object2": "lib/libopenjp2.so.2.1.1" "Object2": "lib/libopenjp2.so.2.1.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:incompatible;affected:23.3;added:0;removed:0;type_problems_high:0;type_problems_medium:3;type_problems_low:0;interface_problems_high:7;interface_problems_medium:3;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"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
@ -272,10 +272,9 @@ function showContent(header, id)
<h2>Test Info</h2><hr/> <h2>Test Info</h2><hr/>
<table class='summary'> <table class='summary'>
<tr><th>Module Name</th><td>openjpeg</td></tr> <tr><th>Module Name</th><td>openjpeg</td></tr>
<tr><th>Version #1</th><td>2.1</td></tr> <tr><th>Version #1</th><td>2.1 (gcc 4.9.2)</td></tr>
<tr><th>Version #2</th><td>current</td></tr> <tr><th>Version #2</th><td>current (gcc 4.8.1)</td></tr>
<tr><th>CPU Type</th><td>x86_64</td></tr> <tr><th>CPU Type</th><td>x86_64</td></tr>
<tr><th>GCC Version</th><td>4.9.2</td></tr>
</table> </table>
<h2>Test Results</h2><hr/> <h2>Test Results</h2><hr/>
<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr> <table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr>
@ -283,21 +282,231 @@ function showContent(header, id)
<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr> <tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Symbols / Types</th><td>43 / 110</td></tr> <tr><th>Total Symbols / Types</th><td>43 / 110</td></tr>
<tr><th>Compatibility</th> <tr><th>Compatibility</th>
<td class='compatible'>100%</td> <td class='incompatible'>76.7%</td>
</tr> </tr>
</table> </table>
<h2>Problem Summary</h2><hr/> <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>0</td></tr>
<tr><th>Removed Symbols</th><td>High</td><td>0</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><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr> <tr><td>Medium</td><td class='failed'><a href='#Type_Problems_Medium' style='color:Blue;'>3</a></td></tr>
<tr><td>Low</td><td>0</td></tr> <tr><td>Low</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr> <tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Problems_High' style='color:Blue;'>7</a></td></tr>
<tr><td>Medium</td><td>0</td></tr> <tr><td>Medium</td><td class='failed'><a href='#Symbol_Problems_Medium' style='color:Blue;'>3</a></td></tr>
<tr><td>Low</td><td>0</td></tr> <tr><td>Low</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> <tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table> </table>
<a name='High_Risk_Problems'></a><a name='Symbol_Problems_High'></a><a name='Interface_Problems_High'></a>
<h2>Problems with Symbols, High Severity <span class='failed'>&nbsp;7&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.1.0</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_1')">
<span class='ext'>[+]</span> opj_destroy_cstr_index&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_index_t** <span class='color_p'>p_cstr_index</span> )</span></span> <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_1" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_cstr_index</b> became passed in <b>rdi</b> register instead of <b>rax</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<span class="section" onclick="javascript:showContent(this, 'c_2')">
<span class='ext'>[+]</span> opj_read_tile_header&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, opj_stream_t* <span class='color_p'>p_stream</span>, OPJ_UINT32* <span class='color_p'>p_tile_index</span>, OPJ_UINT32* <span class='color_p'>p_data_size</span>, OPJ_INT32* <span class='color_p'>p_tile_x0</span>, OPJ_INT32* <span class='color_p'>p_tile_y0</span>, OPJ_INT32* <span class='color_p'>p_tile_x1</span>, OPJ_INT32* <span class='color_p'>p_tile_y1</span>, OPJ_UINT32* <span class='color_p'>p_nb_comps</span>, <span class='nowrap'>OPJ_BOOL* <span class='color_p'>p_should_go_on</span> )</span></span> <span class='failed'>&nbsp;4&nbsp;</span></span>
<br/>
<div id="c_2" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_data_size</b> became passed in <b>rbx</b> register instead of <b>rcx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_tile_index</b> became passed in <b>rbp</b> register instead of <b>rdx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>3</th>
<td>The parameter <b>p_tile_x0</b> became passed in <b>rcx</b> register instead of <b>r8</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>4</th>
<td>The parameter <b>p_tile_y0</b> became passed in <b>r8</b> register instead of <b>r9</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<span class="section" onclick="javascript:showContent(this, 'c_3')">
<span class='ext'>[+]</span> opj_stream_create_file_stream&#160;<span class='sym_p'>(&#160;char const* <span class='color_p'>fname</span>, OPJ_SIZE_T <span class='color_p'>p_size</span>, <span class='nowrap'>OPJ_BOOL <span class='color_p'>p_is_read_stream</span> )</span></span> <span class='failed'>&nbsp;2&nbsp;</span></span>
<br/>
<div id="c_3" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_is_read_stream</b> became passed in <b>rbx</b> register instead of <b>rdx</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_size</b> became passed in <b>r12</b> register instead of <b>rsi</b>.</td>
<td>Applications will read the wrong memory block instead of the parameter value.</td>
</tr>
</table>
<br/>
</div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Medium_Risk_Problems'></a><a name='Type_Problems_Medium'></a>
<h2>Problems with Data Types, Medium Severity <span class='failed'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_4')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> CODEC_FORMAT <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_4" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CODEC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_5')">
[+] affected symbols: 2 (4.7%)</span>
<div id="c_5" style="display:none;">
<div class='affected'><span class='iname_a'>opj_create_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
<span class='iname_a'>opj_create_decompress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_6')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> COLOR_SPACE <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_6" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CLRSPC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_7')">
[+] affected symbols: 9 (20.9%)</span>
<div id="c_7" style="display:none;">
<div class='affected'><span class='iname_a'>opj_decode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_get_decoded_tile&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_UINT32 <i>tile_index</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_destroy&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 1st parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_tile_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_read_header&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t** <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_set_decode_area&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_y</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_y</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_start_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_8')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> PROG_ORDER <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_8" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_PROG_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>Applications may execute a wrong branch of code in the library and therefore change the behavior.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_9')">
[+] affected symbols: 5 (11.6%)</span>
<div id="c_9" style="display:none;">
<div class='affected'><span class='iname_a'>opj_destroy_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_info_v2_t** <span class='fp'>cstr_info</span> )</span></span></span><br/>
<div class='affect'>Field &#39;cstr_info.m_default_tile_info.prg&#39; in 1st parameter &#39;cstr_info&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_get_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i> )</span></span></span><br/>
<div class='affect'>Field &#39;retval.m_default_tile_info.prg&#39; in return value (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_default_encoder_parameters&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_MCT&#160;<span class='sym_p'>(&#160;opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>OPJ_FLOAT32* <i>pEncodingMatrix</i>,</span> <span class='nowrap'>OPJ_INT32* <i>p_dc_shift</i>,</span> <span class='nowrap'>OPJ_UINT32 <i>pNbComp</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>p_image</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 2nd parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
</div>
</div>
<br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Symbol_Problems_Medium'></a><a name='Interface_Problems_Medium'></a>
<h2>Problems with Symbols, Medium Severity <span class='failed'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span>, <span class='lib_name'>libopenjp2.so.2.1.0</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_10')">
<span class='ext'>[+]</span> opj_read_tile_header&#160;<span class='sym_p'>(&#160;opj_codec_t* <span class='color_p'>p_codec</span>, opj_stream_t* <span class='color_p'>p_stream</span>, OPJ_UINT32* <span class='color_p'>p_tile_index</span>, OPJ_UINT32* <span class='color_p'>p_data_size</span>, OPJ_INT32* <span class='color_p'>p_tile_x0</span>, OPJ_INT32* <span class='color_p'>p_tile_y0</span>, OPJ_INT32* <span class='color_p'>p_tile_x1</span>, OPJ_INT32* <span class='color_p'>p_tile_y1</span>, OPJ_UINT32* <span class='color_p'>p_nb_comps</span>, <span class='nowrap'>OPJ_BOOL* <span class='color_p'>p_should_go_on</span> )</span></span> <span class='failed'>&nbsp;3&nbsp;</span></span>
<br/>
<div id="c_10" style="display:none;">
<table class='ptable'>
<tr>
<th width='2%'></th>
<th width='47%'>Change</th>
<th>Effect</th>
</tr>
<tr>
<th>1</th>
<td>The parameter <b>p_nb_comps</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>2</th>
<td>The parameter <b>p_should_go_on</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
<tr>
<th>3</th>
<td>The parameter <b>p_tile_y1</b> became passed in <b>rdx</b> register instead of stack.</td>
<td>Violation of the calling convention. This may result in crash or incorrect behavior of applications.</td>
</tr>
</table>
<br/>
</div>
<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/> <a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'> <div class='h_list'>
openjpeg.h<br/> 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: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;type_changes_other:3;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"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
@ -272,10 +272,9 @@ function showContent(header, id)
<h2>Test Info</h2><hr/> <h2>Test Info</h2><hr/>
<table class='summary'> <table class='summary'>
<tr><th>Module Name</th><td>openjpeg</td></tr> <tr><th>Module Name</th><td>openjpeg</td></tr>
<tr><th>Version #1</th><td>2.1</td></tr> <tr><th>Version #1</th><td>2.1 (gcc 4.9.2)</td></tr>
<tr><th>Version #2</th><td>current</td></tr> <tr><th>Version #2</th><td>current (gcc 4.8.1)</td></tr>
<tr><th>CPU Type</th><td>x86_64</td></tr> <tr><th>CPU Type</th><td>x86_64</td></tr>
<tr><th>GCC Version</th><td>4.9.2</td></tr>
</table> </table>
<h2>Test Results</h2><hr/> <h2>Test Results</h2><hr/>
<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr> <table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>1</a></td></tr>
@ -296,8 +295,103 @@ function showContent(header, id)
<tr><td>Medium</td><td>0</td></tr> <tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr> <tr><td>Low</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr> <tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Changes_In_Types' style='color:Blue;'>3</a></td></tr>
</table> </table>
<a name='Other_Changes'></a><a name='Other_Changes_In_Types'></a>
<h2>Other Changes in Data Types <span class='passed'>&nbsp;3&nbsp;</span></h2><hr/>
<span class='h_name'>openjpeg.h</span><br/>
<span class="section" onclick="javascript:showContent(this, 'c_1')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> CODEC_FORMAT <span class='passed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_1" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CODEC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>No effect.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')">
[+] affected symbols: 2 (4.7%)</span>
<div id="c_2" style="display:none;">
<div class='affected'><span class='iname_a'>opj_create_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
<span class='iname_a'>opj_create_decompress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_CODEC_FORMAT <span class='fp'>p_format</span> )</span></span></span><br/>
<div class='affect'>1st parameter &#39;p_format&#39; has base type &#39;enum CODEC_FORMAT&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_3')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> COLOR_SPACE <span class='passed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_3" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_CLRSPC_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>No effect.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')">
[+] affected symbols: 9 (20.9%)</span>
<div id="c_4" style="display:none;">
<div class='affected'><span class='iname_a'>opj_decode&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_get_decoded_tile&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_UINT32 <i>tile_index</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_destroy&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_image_t* <span class='fp'>image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;image.color_space&#39; in 1st parameter &#39;image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_image_tile_create&#160;<span class='sym_p'>(&#160;<span class='nowrap'>OPJ_UINT32 <i>numcmpts</i>,</span> <span class='nowrap'>opj_image_cmptparm_t* <i>cmptparms</i>,</span> <span class='nowrap'>OPJ_COLOR_SPACE <span class='fp'>clrspc</span> )</span></span></span><br/>
<div class='affect'>3rd parameter &#39;clrspc&#39; has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_read_header&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_stream_t* <i>p_stream</i>,</span> <span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t** <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_set_decode_area&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_start_y</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_x</i>,</span> <span class='nowrap'>OPJ_INT32 <i>p_end_y</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 3rd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
<span class='iname_a'>opj_start_compress&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> <span class='nowrap'>opj_image_t* <span class='fp'>p_image</span>,</span> <span class='nowrap'>opj_stream_t* <i>p_stream</i> )</span></span></span><br/>
<div class='affect'>Field &#39;p_image.color_space&#39; in 2nd parameter &#39;p_image&#39; (pointer) has base type &#39;enum COLOR_SPACE&#39;.</div>
</div>
</div>
<br/><br/></div>
<span class="section" onclick="javascript:showContent(this, 'c_5')">
<span class='ext'>[+]</span> <span class='ttype'>enum</span> PROG_ORDER <span class='passed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_5" style="display:none;">
<table class='ptable'><tr>
<th width='2%'></th><th width='47%'>Change</th>
<th>Effect</th></tr><tr>
<th>1</th>
<td>Value of member <b>OPJ_PROG_UNKNOWN</b> has been changed from <b>-1</b> to <b>18446744073709551615</b>.</td>
<td>No effect.</td>
</tr>
</table>
<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')">
[+] affected symbols: 5 (11.6%)</span>
<div id="c_6" style="display:none;">
<div class='affected'><span class='iname_a'>opj_destroy_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codestream_info_v2_t** <span class='fp'>cstr_info</span> )</span></span></span><br/>
<div class='affect'>Field &#39;cstr_info.m_default_tile_info.prg&#39; in 1st parameter &#39;cstr_info&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_get_cstr_info&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i> )</span></span></span><br/>
<div class='affect'>Field &#39;retval.m_default_tile_info.prg&#39; in return value (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_default_encoder_parameters&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_cparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_set_MCT&#160;<span class='sym_p'>(&#160;opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>OPJ_FLOAT32* <i>pEncodingMatrix</i>,</span> <span class='nowrap'>OPJ_INT32* <i>p_dc_shift</i>,</span> <span class='nowrap'>OPJ_UINT32 <i>pNbComp</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 1st parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
<span class='iname_a'>opj_setup_encoder&#160;<span class='sym_p'>(&#160;<span class='nowrap'>opj_codec_t* <i>p_codec</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>p_image</i> )</span></span></span><br/>
<div class='affect'>Field &#39;parameters.POC.prg&#39; in 2nd parameter &#39;parameters&#39; (pointer) has base type &#39;enum PROG_ORDER&#39;.</div>
</div>
</div>
<br/><br/></div>
<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/> <a name='Headers'></a><h2>Header Files <span class='gray'>&nbsp;1&nbsp;</span></h2><hr/>
<div class='h_list'> <div class='h_list'>
openjpeg.h<br/> openjpeg.h<br/>

View File

@ -14,7 +14,9 @@ $VAR1 = {
'b53e6' => { 'b53e6' => {
'Lang' => 'C', 'Lang' => 'C',
'Object' => 'lib/libopenjpeg.so', 'Object' => 'lib/libopenjpeg.so',
'Path' => 'abi_dump/openjpeg/1.2/b53e6/ABI.dump' 'Path' => 'abi_dump/openjpeg/1.2/b53e6/ABI.dump',
'TotalSymbols' => '132',
'TotalSymbolsFiltered' => '132'
} }
}, },
'1.4' => { '1.4' => {
@ -94,7 +96,21 @@ $VAR1 = {
'TotalProblems' => 113 'TotalProblems' => 113
} }
}, },
'1.2' => {}, '1.2' => {
'1.4' => {
'Added' => 3,
'BC' => '81.8',
'ChangedSoname' => 1,
'ObjectsAdded' => 0,
'ObjectsAddedSymbols' => 0,
'ObjectsRemoved' => 0,
'ObjectsRemovedSymbols' => 0,
'Path' => 'objects_report/openjpeg/1.2/1.4/report.html',
'Removed' => 4,
'TotalObjects' => 1,
'TotalProblems' => 3
}
},
'1.3' => {}, '1.3' => {},
'1.4' => { '1.4' => {
'1.5' => { '1.5' => {
@ -177,7 +193,7 @@ $VAR1 = {
'2.1' => { '2.1' => {
'current' => { 'current' => {
'Added' => 0, 'Added' => 0,
'BC' => 100, 'BC' => '76.7',
'ChangedSoname' => 0, 'ChangedSoname' => 0,
'ObjectsAdded' => 0, 'ObjectsAdded' => 0,
'ObjectsAddedSymbols' => 0, 'ObjectsAddedSymbols' => 0,
@ -186,7 +202,7 @@ $VAR1 = {
'Path' => 'objects_report/openjpeg/2.1/current/report.html', 'Path' => 'objects_report/openjpeg/2.1/current/report.html',
'Removed' => 0, 'Removed' => 0,
'TotalObjects' => 1, 'TotalObjects' => 1,
'TotalProblems' => 0 'TotalProblems' => 13
} }
} }
}, },
@ -204,6 +220,19 @@ $VAR1 = {
} }
} }
}, },
'1.2' => {
'1.4' => {
'e72a4' => {
'Added' => 3,
'Affected' => '18.2',
'Object1' => 'lib/libopenjpeg.so',
'Object2' => 'lib/libopenjpeg.so.1.4.0',
'Path' => 'compat_report/openjpeg/1.2/1.4/e72a4/abi_compat_report.html',
'Removed' => 4,
'TotalProblems' => 3
}
}
},
'1.4' => { '1.4' => {
'1.5' => { '1.5' => {
'851c7' => { '851c7' => {
@ -286,12 +315,12 @@ $VAR1 = {
'current' => { 'current' => {
'e6eaa' => { 'e6eaa' => {
'Added' => 0, 'Added' => 0,
'Affected' => 0, 'Affected' => '23.3',
'Object1' => 'lib/libopenjp2.so.2.1.0', 'Object1' => 'lib/libopenjp2.so.2.1.0',
'Object2' => 'lib/libopenjp2.so.2.1.1', 'Object2' => 'lib/libopenjp2.so.2.1.1',
'Path' => 'compat_report/openjpeg/2.1/current/e6eaa/abi_compat_report.html', 'Path' => 'compat_report/openjpeg/2.1/current/e6eaa/abi_compat_report.html',
'Removed' => 0, 'Removed' => 0,
'TotalProblems' => 0 'TotalProblems' => 13
} }
} }
} }
@ -322,7 +351,7 @@ $VAR1 = {
'2.0' => '2014-03-28 09:13', '2.0' => '2014-03-28 09:13',
'2.0.1' => '2014-04-22 09:53', '2.0.1' => '2014-04-22 09:53',
'2.1' => '2014-04-29 14:58', '2.1' => '2014-04-29 14:58',
'current' => '2016-05-15 01:36:31' 'current' => '2016-06-21 16:46:38'
}, },
'HeadersDiff' => { 'HeadersDiff' => {
'1.1' => { '1.1' => {
@ -331,7 +360,12 @@ $VAR1 = {
'Total' => 9 'Total' => 9
} }
}, },
'1.2' => {}, '1.2' => {
'1.4' => {
'Path' => 'headers_diff/openjpeg/1.2/1.4/diff.html',
'Total' => 1
}
},
'1.3' => {}, '1.3' => {},
'1.4' => { '1.4' => {
'1.5' => { '1.5' => {
@ -376,10 +410,10 @@ $VAR1 = {
} }
} }
}, },
'Maintainer' => 'Antonin Descampe', 'Maintainer' => 'Antonin D.',
'MaintainerUrl' => 'http://www.openjpeg.org/', 'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {}, 'PackageDiff' => {},
'ScmUpdateTime' => '1466516495', 'ScmUpdateTime' => '1466521057',
'Soname' => { 'Soname' => {
'1.1' => { '1.1' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so' 'lib/libopenjpeg.so' => 'libopenjpeg.so'

View File

@ -0,0 +1,512 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="OpenJPEG, header, diff" />
<meta name="description" content="Diff for header files between 1.2 and 1.4 versions of openjpeg" />
<link rel="stylesheet" type="text/css" href="../../../../css/common.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/headers_diff.css" />
<title>
OpenJPEG: headers diff between 1.2 and 1.4 versions
</title>
</head>
<body>
<table width='100%' cellpadding='0' cellspacing='0'><tr><td><table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
<br/>
<br/>
<h1>Headers diff: <span class='version'>1.2</span> vs <span class='version'>1.4</span></h1><br/><br/>
<table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="orange"><th></th><th>&nbsp;openjpeg.h (1.2)&nbsp;</th><th> </th><th>&nbsp;openjpeg.h (1.4)&nbsp;</th><th></th></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-l1" /><small>skipping to change at</small><em> line 35</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 35</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</td><td> </td><td class="right"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</td><td> </td><td class="right"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</td><td> </td><td class="right"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</td><td> </td><td class="right"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T
HE</td><td> </td><td class="right"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T
HE</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> * POSSIBILITY OF SUCH DAMAGE.</td><td> </td><td class="right"> * POSSIBILITY OF SUCH DAMAGE.</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">#ifndef OPENJPEG_H</td><td> </td><td class="right">#ifndef OPENJPEG_H</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPENJPEG_H</td><td> </td><td class="right">#define OPENJPEG_H</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="diff0001" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#define OPENJPEG_VERSION "1.2.0"</span></td><td> </td><td class="rblock"></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">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> Compiler directives</td><td> </td><td class="right"> Compiler directives</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"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0002" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">#if defined(OPJ_STATIC) || !<span class="delete">(defined(WIN32) || defined(__WIN32__)</span>)</td><td> </td><td class="rblock">#if defined(OPJ_STATIC) || !<span class="insert">defined(_WIN32</span>)</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_API</td><td> </td><td class="right">#define OPJ_API</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_CALLCONV</td><td> </td><td class="right">#define OPJ_CALLCONV</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#else</td><td> </td><td class="right">#else</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_CALLCONV __stdcall</td><td> </td><td class="right">#define OPJ_CALLCONV __stdcall</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">The following ifdef block is the standard way of creating macros which make
exporting</td><td> </td><td class="right">The following ifdef block is the standard way of creating macros which make
exporting</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">from a DLL simpler. All files within this DLL are compiled with the OPJ_EXP
ORTS</td><td> </td><td class="right">from a DLL simpler. All files within this DLL are compiled with the OPJ_EXP
ORTS</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">symbol defined on the command line. this symbol should not be defined on an
y project</td><td> </td><td class="right">symbol defined on the command line. this symbol should not be defined on an
y project</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">that uses this DLL. This way any other project whose source files include t
his file see</td><td> </td><td class="right">that uses this DLL. This way any other project whose source files include t
his file see</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">OPJ_API functions as being imported from a DLL, wheras this DLL sees symbol
s</td><td> </td><td class="right">OPJ_API functions as being imported from a DLL, wheras this DLL sees symbol
s</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">defined with this macro as being exported.</td><td> </td><td class="right">defined with this macro as being exported.</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="diff0003" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">#if<span class="delete">def OPJ_EXPORTS</span></td><td> </td><td class="rblock">#if<span class="insert"> defined(OPJ_EXPORTS) || defined(DLL_EXPORT)</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_API __declspec(dllexport)</td><td> </td><td class="right">#define OPJ_API __declspec(dllexport)</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#else</td><td> </td><td class="right">#else</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_API __declspec(dllimport)</td><td> </td><td class="right">#define OPJ_API __declspec(dllimport)</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#endif /* OPJ_EXPORTS */</td><td> </td><td class="right">#endif /* OPJ_EXPORTS */</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0004" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">#endif /* !OPJ_STATIC || !WIN32 */</td><td> </td><td class="rblock">#endif /* !OPJ_STATIC || !<span class="insert">_</span>WIN32 */</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">#ifndef __cplusplus</td><td> </td><td class="right">#ifndef __cplusplus</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#if defined(HAVE_STDBOOL_H)</td><td> </td><td class="right">#if defined(HAVE_STDBOOL_H)</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">The C language implementation does correctly provide the standard header</td><td> </td><td class="right">The C language implementation does correctly provide the standard header</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">file "stdbool.h".</td><td> </td><td class="right">file "stdbool.h".</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">#include &lt;stdbool.h&gt;</td><td> </td><td class="right">#include &lt;stdbool.h&gt;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#else</td><td> </td><td class="right">#else</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"></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-l2" /><small>skipping to change at</small><em> line 107</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> line 105</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**&lt; Number of maximum sub-b
and linked to number of resolution level */</td><td> </td><td class="right">#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**&lt; Number of maximum sub-b
and linked to number of resolution level */</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">/* UniPG&gt;&gt; */</td><td> </td><td class="right">/* UniPG&gt;&gt; */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_TILESPECS 16 /**&lt; Maximum number of tile parts expecte
d by JPWL: increase at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_TILESPECS 16 /**&lt; Maximum number of tile parts expecte
d by JPWL: increase at your will */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_PACKSPECS 16 /**&lt; Maximum number of packet parts expec
ted by JPWL: increase at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_PACKSPECS 16 /**&lt; Maximum number of packet parts expec
ted by JPWL: increase at your will */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_MARKERS 512 /**&lt; Maximum number of JPWL markers: inc
rease at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_MARKERS 512 /**&lt; Maximum number of JPWL markers: inc
rease at your will */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**&lt; index file
name used when JPWL is on */</td><td> </td><td class="right">#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**&lt; index file
name used when JPWL is on */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_EXPECTED_COMPONENTS 3 /**&lt; Expect this number of components, s
o you'll find better the first EPB */</td><td> </td><td class="right">#define JPWL_EXPECTED_COMPONENTS 3 /**&lt; Expect this number of components, s
o you'll find better the first EPB */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAXIMUM_TILES 8192 /**&lt; Expect this maximum number of tiles, t
o avoid some crashes */</td><td> </td><td class="right">#define JPWL_MAXIMUM_TILES 8192 /**&lt; Expect this maximum number of tiles, t
o avoid some crashes */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAXIMUM_HAMMING 2 /**&lt; Expect this maximum number of bit error
s in marker id's */</td><td> </td><td class="right">#define JPWL_MAXIMUM_HAMMING 2 /**&lt; Expect this maximum number of bit error
s in marker id's */</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">#define JPWL_MAXIMUM_EPB_ROOM 65450 /**&lt; Expect this maximum number of byte
s for composition of EPBs */</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">/* &lt;&lt;UniPG */</td><td> </td><td class="right">/* &lt;&lt;UniPG */</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">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> enum definitions</td><td> </td><td class="right"> enum definitions</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">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">Rsiz Capabilities</td><td> </td><td class="right">Rsiz Capabilities</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"></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 149</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> line 148</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> RLCP = 1, /**&lt; resolution-layer-component-precinct ord
er */</td><td> </td><td class="right"> RLCP = 1, /**&lt; resolution-layer-component-precinct ord
er */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> RPCL = 2, /**&lt; resolution-precinct-component-layer ord
er */</td><td> </td><td class="right"> RPCL = 2, /**&lt; resolution-precinct-component-layer ord
er */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> PCRL = 3, /**&lt; precinct-component-resolution-layer ord
er */</td><td> </td><td class="right"> PCRL = 3, /**&lt; precinct-component-resolution-layer ord
er */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> CPRL = 4 /**&lt; component-precinct-resolution-layer ord
er */</td><td> </td><td class="right"> CPRL = 4 /**&lt; component-precinct-resolution-layer ord
er */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">} OPJ_PROG_ORDER;</td><td> </td><td class="right">} OPJ_PROG_ORDER;</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">Supported image color spaces</td><td> </td><td class="right">Supported image color spaces</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">typedef enum COLOR_SPACE {</td><td> </td><td class="right">typedef enum COLOR_SPACE {</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0006" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"> CLRSPC_UNKNOWN = -1, /**&lt; <span class="delete">place-holder</span> */</td><td> </td><td class="rblock"> CLRSPC_UNKNOWN = -1, /**&lt; <span class="insert">not supported by the library */</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"> CLRSPC_UNSPECIFIED = 0, /**&lt; not specified in the codestream</span> */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> CLRSPC_SRGB = 1, /**&lt; sRGB */</td><td> </td><td class="right"> CLRSPC_SRGB = 1, /**&lt; sRGB */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> CLRSPC_GRAY = 2, /**&lt; grayscale */</td><td> </td><td class="right"> CLRSPC_GRAY = 2, /**&lt; grayscale */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> CLRSPC_SYCC = 3 /**&lt; YUV */</td><td> </td><td class="right"> CLRSPC_SYCC = 3 /**&lt; YUV */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">} OPJ_COLOR_SPACE;</td><td> </td><td class="right">} OPJ_COLOR_SPACE;</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">Supported codec</td><td> </td><td class="right">Supported codec</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">typedef enum CODEC_FORMAT {</td><td> </td><td class="right">typedef enum CODEC_FORMAT {</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> CODEC_UNKNOWN = -1, /**&lt; place-holder */</td><td> </td><td class="right"> CODEC_UNKNOWN = -1, /**&lt; place-holder */</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 304</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> line 304</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int prcw_init[J2K_MAXRLVLS];</td><td> </td><td class="right"> int prcw_init[J2K_MAXRLVLS];</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** initial precinct height */</td><td> </td><td class="right"> /** initial precinct height */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int prch_init[J2K_MAXRLVLS];</td><td> </td><td class="right"> int prch_init[J2K_MAXRLVLS];</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"> /**@name command line encoder parameters (not used inside the librar
y) */</td><td> </td><td class="right"> /**@name command line encoder parameters (not used inside the librar
y) */</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"> /** input file name */</td><td> </td><td class="right"> /** input file name */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> char infile[OPJ_PATH_LEN];</td><td> </td><td class="right"> char infile[OPJ_PATH_LEN];</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** output file name */</td><td> </td><td class="right"> /** output file name */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> char outfile[OPJ_PATH_LEN];</td><td> </td><td class="right"> char outfile[OPJ_PATH_LEN];</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"> /** <span class="delete">creation of an index file, default to 0 (false)</span> */</td><td> </td><td class="rblock"> /** <span class="insert">DEPRECATED. Index generation is now handeld with the opj_encode_
with_info() function. Set to NULL</span> */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int index_on;</td><td> </td><td class="right"> int index_on;</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0008" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"> /** <span class="delete">index file name</span> */</td><td> </td><td class="rblock"> /** <span class="insert">DEPRECATED. Index generation is now handeld with the opj_encode_
with_info() function. Set to NULL</span> */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> char index[OPJ_PATH_LEN];</td><td> </td><td class="right"> char index[OPJ_PATH_LEN];</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** subimage encoding: origin image offset in x direction */</td><td> </td><td class="right"> /** subimage encoding: origin image offset in x direction */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int image_offset_x0;</td><td> </td><td class="right"> int image_offset_x0;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** subimage encoding: origin image offset in y direction */</td><td> </td><td class="right"> /** subimage encoding: origin image offset in y direction */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int image_offset_y0;</td><td> </td><td class="right"> int image_offset_y0;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** subsampling value for dx */</td><td> </td><td class="right"> /** subsampling value for dx */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int subsampling_dx;</td><td> </td><td class="right"> int subsampling_dx;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** subsampling value for dy */</td><td> </td><td class="right"> /** subsampling value for dy */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int subsampling_dy;</td><td> </td><td class="right"> int subsampling_dy;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** input file format 0: PGX, 1: PxM, 2: BMP 3:TIF*/</td><td> </td><td class="right"> /** input file format 0: PGX, 1: PxM, 2: BMP 3:TIF*/</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-l5" /><small>skipping to change at</small><em> line 555</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> line 555</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** Xsiz: width of the reference grid */</td><td> </td><td class="right"> /** Xsiz: width of the reference grid */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int x1;</td><td> </td><td class="right"> int x1;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** Ysiz: height of the reference grid */</td><td> </td><td class="right"> /** Ysiz: height of the reference grid */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int y1;</td><td> </td><td class="right"> int y1;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** number of components in the image */</td><td> </td><td class="right"> /** number of components in the image */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int numcomps;</td><td> </td><td class="right"> int numcomps;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** color space: sRGB, Greyscale or YUV */</td><td> </td><td class="right"> /** color space: sRGB, Greyscale or YUV */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> OPJ_COLOR_SPACE color_space;</td><td> </td><td class="right"> OPJ_COLOR_SPACE color_space;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** image components */</td><td> </td><td class="right"> /** image components */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> opj_image_comp_t *comps;</td><td> </td><td class="right"> opj_image_comp_t *comps;</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0009" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** 'restricted' ICC profile */</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"> unsigned char *icc_profile_buf;</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"> /** size of ICC profile */</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"> int icc_profile_len;</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">} opj_image_t;</td><td> </td><td class="right">} opj_image_t;</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">Component parameters structure used by the opj_image_create function</td><td> </td><td class="right">Component parameters structure used by the opj_image_create function</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">typedef struct opj_image_comptparm {</td><td> </td><td class="right">typedef struct opj_image_comptparm {</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** XRsiz: horizontal separation of a sample of ith component with r
espect to the reference grid */</td><td> </td><td class="right"> /** XRsiz: horizontal separation of a sample of ith component with r
espect to the reference grid */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int dx;</td><td> </td><td class="right"> int dx;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** YRsiz: vertical separation of a sample of ith component with res
pect to the reference grid */</td><td> </td><td class="right"> /** YRsiz: vertical separation of a sample of ith component with res
pect to the reference grid */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int dy;</td><td> </td><td class="right"> int dy;</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-l6" /><small>skipping to change at</small><em> line 581</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> line 585</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** y component offset compared to the whole image */</td><td> </td><td class="right"> /** y component offset compared to the whole image */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int y0;</td><td> </td><td class="right"> int y0;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** precision */</td><td> </td><td class="right"> /** precision */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int prec;</td><td> </td><td class="right"> int prec;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** image depth in bits */</td><td> </td><td class="right"> /** image depth in bits */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int bpp;</td><td> </td><td class="right"> int bpp;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> /** signed (1) / unsigned (0) */</td><td> </td><td class="right"> /** signed (1) / unsigned (0) */</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> int sgnd;</td><td> </td><td class="right"> int sgnd;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">} opj_image_cmptparm_t;</td><td> </td><td class="right">} opj_image_cmptparm_t;</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="diff0010" /></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">==========================================================</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"> Information on the JPEG 2000 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">*/</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">/**</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">Index structure : Information concerning a packet inside tile</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">typedef struct opj_packet_info {</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"> /** packet start position (including SOP marker if it exists) */</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"> int start_pos;</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"> /** end of packet header position (including EPH marker if it exists</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"> int end_ph_pos;</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"> /** packet end position */</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"> int end_pos;</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"> /** packet distorsion */</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"> double disto;</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_packet_info_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"></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">Index structure : Information concerning tile-parts</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">typedef struct opj_tp_info {</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"> /** start position of tile part */</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"> int tp_start_pos;</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"> /** end position of tile part 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"> int tp_end_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"> /** end position of tile part */</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"> int tp_end_pos;</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"> /** start packet of tile part */</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"> int tp_start_pack;</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"> /** number of packets of tile part */</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"> int tp_numpacks;</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_tp_info_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"></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">Index structure : information regarding tiles</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">typedef struct opj_tile_info {</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"> /** value of thresh for each layer by tile cfr. Marcela */</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"> double *thresh;</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"> /** number of tile */</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"> int tileno;</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"> /** start position */</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"> int start_pos;</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"> /** end position of the 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"> int end_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"> /** end position */</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"> int end_pos;</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"> /** precinct number for each resolution level (width) */</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"> int pw[33];</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"> /** precinct number for each resolution level (height) */</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"> int ph[33];</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"> /** precinct size (in power of 2), in X for each resolution 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"> int pdx[33];</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"> /** precinct size (in power of 2), in Y for each resolution 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"> int pdy[33];</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"> /** information concerning packets inside tile */</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_packet_info_t *packet;</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"> /** add fixed_quality */</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"> int numpix;</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"> /** add fixed_quality */</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"> double distotile;</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"> /** number of tile parts */</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"> int num_tps;</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"> /** information concerning tile parts */</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_tp_info_t *tp;</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_tile_info_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"></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">/* UniPG&gt;&gt; */</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">Marker structure</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">typedef struct opj_marker_info_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"> /** marker type */</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"> unsigned short int type;</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"> /** position in 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"> int pos;</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"> /** length, marker val included */</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"> int len;</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_marker_info_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">/* &lt;&lt;UniPG */</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">/**</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">Index structure of 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">typedef struct opj_codestream_info {</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"> /** maximum distortion reduction on the whole image (add for Marcela</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"> double D_max;</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"> /** packet number */</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"> int packno;</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"> /** writing the packet in the index with t2_encode_packets */</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"> int index_write;</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"> /** image width */</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"> int image_w;</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"> /** image height */</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"> int image_h;</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"> /** progression order */</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_PROG_ORDER prog;</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"> /** tile size in x */</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"> int tile_x;</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"> /** tile size in y */</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"> int tile_y;</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"> int tile_Ox;</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"> int tile_Oy;</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"> /** number of tiles in X */</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"> int tw;</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"> /** number of tiles in Y */</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"> int th;</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"> /** component numbers */</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"> int 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"> /** number of layer */</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"> int numlayers;</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"> /** number of decomposition for each component */</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"> int *numdecompos;</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">/* UniPG&gt;&gt; */</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"> /** number of markers */</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"> int marknum;</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"> /** list of markers */</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_marker_info_t *marker;</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"> /** actual size of markers 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"> int maxmarknum;</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">/* &lt;&lt;UniPG */</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"> /** main header position */</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"> int main_head_start;</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"> /** main header position */</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"> int main_head_end;</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's size */</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"> int codestream_size;</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"> /** information regarding tiles inside image */</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_tile_info_t *tile;</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_codestream_info_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"> </td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#ifdef __cplusplus</td><td> </td><td class="right">#ifdef __cplusplus</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">extern "C" {</td><td> </td><td class="right">extern "C" {</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">#endif</td><td> </td><td class="right">#endif</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">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> openjpeg version</td><td> </td><td class="right"> openjpeg version</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"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0011" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">OPJ_API const char * OPJ_CALLCONV opj_version();</td><td> </td><td class="rblock">OPJ_API const char * OPJ_CALLCONV opj_version(<span class="insert">void</span>);</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">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left"> image functions definitions</td><td> </td><td class="right"> image functions definitions</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"></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">Create an image</td><td> </td><td class="right">Create an image</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param numcmpts number of components</td><td> </td><td class="right">@param numcmpts number of components</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-l7" /><small>skipping to change at</small><em> line 695</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> line 835</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param parameters decompression parameters</td><td> </td><td class="right">@param parameters decompression parameters</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 void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparame
ters_t *parameters);</td><td> </td><td class="right">OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparame
ters_t *parameters);</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">Decode an image from a JPEG-2000 codestream</td><td> </td><td class="right">Decode an image from a JPEG-2000 codestream</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param dinfo decompressor handle</td><td> </td><td class="right">@param dinfo decompressor handle</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param cio Input buffer stream</td><td> </td><td class="right">@param cio Input buffer stream</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@return Returns a decoded image if successful, returns NULL otherwise</td><td> </td><td class="right">@return Returns a decoded image if successful, returns NULL otherwise</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_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t
*cio);</td><td> </td><td class="right">OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t
*cio);</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0012" /></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="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">Decode an image from a JPEG-2000 codestream and extract the codestream info</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">rmation</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 dinfo decompressor handle</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 cio Input buffer stream</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 cstr_info Codestream information structure if needed afterwards, NUL</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">L otherwise</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 Returns a decoded image if successful, returns NULL otherwise</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_image_t* OPJ_CALLCONV opj_decode_with_info(opj_dinfo_t *dinfo, </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_cio_t *cio, opj_codestream_info_t *cstr_info);</span></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">Creates a J2K/JP2 compression structure</td><td> </td><td class="right">Creates a J2K/JP2 compression structure</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param format Coder to select</td><td> </td><td class="right">@param format Coder to select</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@return Returns a handle to a compressor if successful, returns NULL otherw
ise</td><td> </td><td class="right">@return Returns a handle to a compressor if successful, returns NULL otherw
ise</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_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT form
at);</td><td> </td><td class="right">OPJ_API opj_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT form
at);</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">Destroy a compressor handle</td><td> </td><td class="right">Destroy a compressor handle</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param cinfo compressor handle to destroy</td><td> </td><td class="right">@param cinfo compressor handle to destroy</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"></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-l8" /><small>skipping to change at</small><em> line 730</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> line 879</em></th><td></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">&lt;li&gt;No ROI upshifted</td><td> </td><td class="right">&lt;li&gt;No ROI upshifted</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">&lt;li&gt;No offset of the origin of the image</td><td> </td><td class="right">&lt;li&gt;No offset of the origin of the image</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">&lt;li&gt;No offset of the origin of the tiles</td><td> </td><td class="right">&lt;li&gt;No offset of the origin of the tiles</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">&lt;li&gt;Reversible DWT 5-3</td><td> </td><td class="right">&lt;li&gt;Reversible DWT 5-3</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">&lt;/ul&gt;</td><td> </td><td class="right">&lt;/ul&gt;</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param parameters Compression parameters</td><td> </td><td class="right">@param parameters Compression parameters</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 void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameter
s_t *parameters);</td><td> </td><td class="right">OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameter
s_t *parameters);</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">Setup the encoder parameters using the current image and using user paramet
ers.</td><td> </td><td class="right">Setup the encoder parameters using the current image and using user paramet
ers.</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0013" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">@param cinfo <span class="delete">compressor</span> handle</td><td> </td><td class="rblock">@param cinfo <span class="insert">Compressor</span> handle</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">@param parameters <span class="delete">compression</span> parameters</td><td> </td><td class="rblock">@param parameters <span class="insert">Compression</span> parameters</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">@param image <span class="delete">input</span> filled image</td><td> </td><td class="rblock">@param image <span class="insert">Input</span> filled 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">OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparame
ters_t *parameters, opj_image_t *image);</td><td> </td><td class="right">OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparame
ters_t *parameters, opj_image_t *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">Encode an image into a JPEG-2000 codestream</td><td> </td><td class="right">Encode an image into a JPEG-2000 codestream</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param cinfo compressor handle</td><td> </td><td class="right">@param cinfo compressor handle</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param cio Output buffer stream</td><td> </td><td class="right">@param cio Output buffer stream</td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@param image Image to encode</td><td> </td><td class="right">@param image Image to encode</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0014" /></td></tr>
<tr><td class="lineno" valign="top"></td><td class="lblock">@param index <span class="delete">Name of the index file if required, NULL otherwise</span></td><td> </td><td class="rblock">@param index <span class="insert">Depreacted -&gt; Set to NULL. To extract index, used opj_encode_w
ci()</span></td><td class="lineno" valign="top"></td></tr>
<tr><td class="lineno" valign="top"></td><td class="left">@return Returns true if successful, returns false otherwise</td><td> </td><td class="right">@return Returns true if successful, returns false otherwise</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 bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, op
j_image_t *image, char *index);</td><td> </td><td class="right">OPJ_API bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, op
j_image_t *image, char *index);</td><td class="lineno" valign="top"></td></tr>
<tr><td><a name="diff0015" /></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">Encode an image into a JPEG-2000 codestream and extract the codestream info</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">rmation</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 cinfo compressor handle</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 cio Output buffer stream</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 image Image to encode</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 cstr_info Codestream information structure if needed afterwards, NUL</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">L otherwise</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 Returns true if successful, returns false otherwise</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 bool OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_cio_</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">t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info);</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">Destroy Codestream information after compression or decompression</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 cstr_info Codestream information structure</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 void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr</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">_info);</span></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">#ifdef __cplusplus</td><td> </td><td class="right">#ifdef __cplusplus</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">#endif</td><td> </td><td class="right">#endif</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">#endif /* OPENJPEG_H */</td><td> </td><td class="right">#endif /* OPENJPEG_H */</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. 15 change blocks.&nbsp;</a></th></tr>
<tr class="stats"><td></td><th><i>13 lines changed or deleted</i></th><th><i> </i></th><th><i>185 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>
</td></tr></table>
</body>
</html>

View File

@ -0,0 +1,3 @@
{
"Total": 1
}

View File

@ -3,45 +3,72 @@
#---------------------------------------------------------------- #----------------------------------------------------------------
# Commands may need to know the format version. # Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1) SET(CMAKE_IMPORT_FILE_VERSION 1)
# Compute the installation prefix relative to this file.
GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
# Import target "openjp2" for configuration "Debug" # Import target "openjp2" for configuration "Debug"
set_property(TARGET openjp2 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_PROPERTY(TARGET openjp2 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(openjp2 PROPERTIES SET_TARGET_PROPERTIES(openjp2 PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "m" IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "m"
IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/libopenjp2.so.2.1.1" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/libopenjp2.so.2.1.1"
IMPORTED_SONAME_DEBUG "libopenjp2.so.7" IMPORTED_SONAME_DEBUG "libopenjp2.so.7"
) )
list(APPEND _IMPORT_CHECK_TARGETS openjp2 ) LIST(APPEND _IMPORT_CHECK_TARGETS openjp2 )
list(APPEND _IMPORT_CHECK_FILES_FOR_openjp2 "${_IMPORT_PREFIX}/lib/libopenjp2.so.2.1.1" ) LIST(APPEND _IMPORT_CHECK_FILES_FOR_openjp2 "${_IMPORT_PREFIX}/lib/libopenjp2.so.2.1.1" )
# Import target "opj_decompress" for configuration "Debug" # Import target "opj_decompress" for configuration "Debug"
set_property(TARGET opj_decompress APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_PROPERTY(TARGET opj_decompress APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(opj_decompress PROPERTIES SET_TARGET_PROPERTIES(opj_decompress PROPERTIES
IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_decompress" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_decompress"
) )
list(APPEND _IMPORT_CHECK_TARGETS opj_decompress ) LIST(APPEND _IMPORT_CHECK_TARGETS opj_decompress )
list(APPEND _IMPORT_CHECK_FILES_FOR_opj_decompress "${_IMPORT_PREFIX}/bin/opj_decompress" ) LIST(APPEND _IMPORT_CHECK_FILES_FOR_opj_decompress "${_IMPORT_PREFIX}/bin/opj_decompress" )
# Import target "opj_compress" for configuration "Debug" # Import target "opj_compress" for configuration "Debug"
set_property(TARGET opj_compress APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_PROPERTY(TARGET opj_compress APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(opj_compress PROPERTIES SET_TARGET_PROPERTIES(opj_compress PROPERTIES
IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_compress" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_compress"
) )
list(APPEND _IMPORT_CHECK_TARGETS opj_compress ) LIST(APPEND _IMPORT_CHECK_TARGETS opj_compress )
list(APPEND _IMPORT_CHECK_FILES_FOR_opj_compress "${_IMPORT_PREFIX}/bin/opj_compress" ) LIST(APPEND _IMPORT_CHECK_FILES_FOR_opj_compress "${_IMPORT_PREFIX}/bin/opj_compress" )
# Import target "opj_dump" for configuration "Debug" # Import target "opj_dump" for configuration "Debug"
set_property(TARGET opj_dump APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) SET_PROPERTY(TARGET opj_dump APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(opj_dump PROPERTIES SET_TARGET_PROPERTIES(opj_dump PROPERTIES
IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_dump" IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/bin/opj_dump"
) )
list(APPEND _IMPORT_CHECK_TARGETS opj_dump ) LIST(APPEND _IMPORT_CHECK_TARGETS opj_dump )
list(APPEND _IMPORT_CHECK_FILES_FOR_opj_dump "${_IMPORT_PREFIX}/bin/opj_dump" ) LIST(APPEND _IMPORT_CHECK_FILES_FOR_opj_dump "${_IMPORT_PREFIX}/bin/opj_dump" )
# Loop over all imported files and verify that they actually exist
FOREACH(target ${_IMPORT_CHECK_TARGETS} )
FOREACH(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
IF(NOT EXISTS "${file}" )
MESSAGE(FATAL_ERROR "The imported target \"${target}\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
ENDIF()
ENDFOREACH()
UNSET(_IMPORT_CHECK_FILES_FOR_${target})
ENDFOREACH()
UNSET(_IMPORT_CHECK_TARGETS)
# Cleanup temporary variables.
SET(_IMPORT_PREFIX)
# Commands beyond this point should not need to know the version. # Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION) SET(CMAKE_IMPORT_FILE_VERSION)

View File

@ -1,92 +1,36 @@
# Generated by CMake 3.0.2 # Generated by CMake 2.8.7
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
message(FATAL_ERROR "CMake >= 2.6.0 required") MESSAGE(FATAL_ERROR "CMake >= 2.6.0 required")
endif() ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
cmake_policy(PUSH) CMAKE_POLICY(PUSH)
cmake_policy(VERSION 2.6) CMAKE_POLICY(VERSION 2.6)
#---------------------------------------------------------------- #----------------------------------------------------------------
# Generated CMake target import file. # Generated CMake target import file.
#---------------------------------------------------------------- #----------------------------------------------------------------
# Commands may need to know the format version. # Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1) SET(CMAKE_IMPORT_FILE_VERSION 1)
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget openjp2 opj_decompress opj_compress opj_dump)
list(APPEND _expectedTargets ${_expectedTarget})
if(NOT TARGET ${_expectedTarget})
list(APPEND _targetsNotDefined ${_expectedTarget})
endif()
if(TARGET ${_expectedTarget})
list(APPEND _targetsDefined ${_expectedTarget})
endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
# Create imported target openjp2 # Create imported target openjp2
add_library(openjp2 SHARED IMPORTED) ADD_LIBRARY(openjp2 SHARED IMPORTED)
# Create imported target opj_decompress # Create imported target opj_decompress
add_executable(opj_decompress IMPORTED) ADD_EXECUTABLE(opj_decompress IMPORTED)
# Create imported target opj_compress # Create imported target opj_compress
add_executable(opj_compress IMPORTED) ADD_EXECUTABLE(opj_compress IMPORTED)
# Create imported target opj_dump # Create imported target opj_dump
add_executable(opj_dump IMPORTED) ADD_EXECUTABLE(opj_dump IMPORTED)
# Load information for each installed configuration. # Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) GET_FILENAME_COMPONENT(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/OpenJPEGTargets-*.cmake") FILE(GLOB CONFIG_FILES "${_DIR}/OpenJPEGTargets-*.cmake")
foreach(f ${CONFIG_FILES}) FOREACH(f ${CONFIG_FILES})
include(${f}) INCLUDE(${f})
endforeach() ENDFOREACH(f)
# Cleanup temporary variables.
set(_IMPORT_PREFIX)
# Loop over all imported files and verify that they actually exist
foreach(target ${_IMPORT_CHECK_TARGETS} )
foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
if(NOT EXISTS "${file}" )
message(FATAL_ERROR "The imported target \"${target}\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
endif()
endforeach()
unset(_IMPORT_CHECK_FILES_FOR_${target})
endforeach()
unset(_IMPORT_CHECK_TARGETS)
# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.
# Commands beyond this point should not need to know the version. # Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION) SET(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP) CMAKE_POLICY(POP)

View File

@ -1,4 +1,4 @@
prefix=/home/antonin/abi-check/work/abi-check/installed/openjpeg/current prefix=/home/travis/abi-check/work/abi-check/installed/openjpeg/current
bindir=${prefix}/bin bindir=${prefix}/bin
mandir=${prefix}/ mandir=${prefix}/
docdir=${prefix}/ docdir=${prefix}/

View File

@ -0,0 +1,12 @@
{
"BC": "81.8",
"Added": 3,
"Removed": 4,
"TotalProblems": 3,
"ObjectsAdded": 0,
"ObjectsRemoved": 0,
"ObjectsAddedSymbols": 0,
"ObjectsRemovedSymbols": 0,
"ChangedSoname": 1,
"TotalObjects": 1
}

View File

@ -0,0 +1,44 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="OpenJPEG, ABI, changes, compatibility, report" />
<meta name="description" content="ABI changes/compatibility report between 1.2 and 1.4 versions of the openjpeg" />
<link rel="stylesheet" type="text/css" href="../../../../css/common.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/report.css" />
<title>
OpenJPEG: Objects ABI report between 1.2 and 1.4 versions
</title>
</head>
<body>
<table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
<br/>
<br/>
<h1>Objects ABI report: <span class='version'>1.2</span> vs <span class='version'>1.4</span></h1>
<br/>
<br/>
<table class='summary'>
<tr><th>Object</th>
<th>Backward<br/>Compatibility</th>
<th>Added<br/>Symbols</th>
<th>Removed<br/>Symbols</th>
</tr>
<tr>
<td class='object'>libopenjpeg.so<br/><br/><span class='incompatible'>(changed SONAME from<br/>"libopenjpeg.so"<br/>to<br/>"libopenjpeg.so.1.4")</span></td>
<td class='incompatible'><a href='../../../../compat_report/openjpeg/1.2/1.4/e72a4/abi_compat_report.html'>81.8%</a></td>
<td class='added'><a class='num' href='../../../../compat_report/openjpeg/1.2/1.4/e72a4/abi_compat_report.html#Added'>3 new</a></td>
<td class='removed'><a class='num' href='../../../../compat_report/openjpeg/1.2/1.4/e72a4/abi_compat_report.html#Removed'>4 removed</a></td>
</tr>
</table>
<br/>
<br/>
<hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='https://github.com/lvc'>github.com/lvc</a></div>
<br/>
</body>
</html>

View File

@ -1,8 +1,8 @@
{ {
"BC": "100", "BC": "76.7",
"Added": 0, "Added": 0,
"Removed": 0, "Removed": 0,
"TotalProblems": 0, "TotalProblems": 13,
"ObjectsAdded": 0, "ObjectsAdded": 0,
"ObjectsRemoved": 0, "ObjectsRemoved": 0,
"ObjectsAddedSymbols": 0, "ObjectsAddedSymbols": 0,

View File

@ -29,7 +29,7 @@
</tr> </tr>
<tr> <tr>
<td class='object'>libopenjp2.so.2.1.0</td> <td class='object'>libopenjp2.so.2.1.0</td>
<td class='ok'><a href='../../../../compat_report/openjpeg/2.1/current/e6eaa/abi_compat_report.html'>100%</a></td> <td class='incompatible'><a href='../../../../compat_report/openjpeg/2.1/current/e6eaa/abi_compat_report.html'>76.7%</a></td>
<td class='ok'>0</td> <td class='ok'>0</td>
<td class='ok'>0</td> <td class='ok'>0</td>
</tr> </tr>

View File

@ -3,7 +3,7 @@
"Title": "OpenJPEG", "Title": "OpenJPEG",
"SourceUrl": "https://github.com/uclouvain/openjpeg/tags", "SourceUrl": "https://github.com/uclouvain/openjpeg/tags",
"Git": "https://github.com/uclouvain/openjpeg.git", "Git": "https://github.com/uclouvain/openjpeg.git",
"Maintainer": "Antonin Descampe", "Maintainer": "Antonin D.",
"MaintainerUrl": "http://www.openjpeg.org/", "MaintainerUrl": "http://www.openjpeg.org/",
"Configure": "-DCMAKE_C_FLAGS='-fvisibility=hidden -g -Og -w -fpermissive'", "Configure": "-DCMAKE_C_FLAGS='-fvisibility=hidden -g -Og -w -fpermissive'",
"Package": "version.", "Package": "version.",
@ -105,18 +105,6 @@
"PublicSymbols": "public_symbols/openjpeg/1.4/list", "PublicSymbols": "public_symbols/openjpeg/1.4/list",
"PublicTypes": "public_types/openjpeg/1.4/list" "PublicTypes": "public_types/openjpeg/1.4/list"
}, },
{
"Number": "1.3",
"Installed": "installed/openjpeg/1.3",
"Source": "src/openjpeg/1.3/version.1.3.tar.gz",
"Changelog": "ChangeLog",
"HeadersDiff": "On",
"PkgDiff": "Off",
"ABIView": "Off",
"ABIDiff": "Off",
"PublicSymbols": "public_symbols/openjpeg/1.3/list",
"PublicTypes": "public_types/openjpeg/1.3/list"
},
{ {
"Number": "1.2", "Number": "1.2",
"Installed": "installed/openjpeg/1.2", "Installed": "installed/openjpeg/1.2",

View File

@ -30,10 +30,10 @@
<th>Headers<br/>Diff</th> <th>Headers<br/>Diff</th>
</tr> </tr>
<tr id='current'><td>current</td> <tr id='current'><td>current</td>
<td>2016-05-15<br/>01:36</td> <td>2016-06-21<br/>16:46</td>
<td>7</td> <td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td> <td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'><a href='../../objects_report/openjpeg/2.1/current/report.html'>100%</a></td> <td class='incompatible'><a href='../../objects_report/openjpeg/2.1/current/report.html'>76.7%</a></td>
<td class='ok'>0</td> <td class='ok'>0</td>
<td class='ok'>0</td> <td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/2.1/current/diff.html'>2</a></td> <td><a href='../../headers_diff/openjpeg/2.1/current/diff.html'>2</a></td>
@ -108,19 +108,13 @@
<td>2011-07-03</td> <td>2011-07-03</td>
<td>1.4</td> <td>1.4</td>
<td><a href='../../changelog/openjpeg/1.4/log.html'>changelog</a></td> <td><a href='../../changelog/openjpeg/1.4/log.html'>changelog</a></td>
<td>N/A</td> <td class='incompatible'><a href='../../objects_report/openjpeg/1.2/1.4/report.html'>81.8%</a><br/>
<td>N/A</td> <br/>
<td>N/A</td> <span class='note'><span class='incompatible'>changed SONAME</span></span>
<td>N/A</td> </td>
</tr> <td class='added'><a class='num' href='../../objects_report/openjpeg/1.2/1.4/report.html'>3 new</a></td>
<tr id='v1.3'><td>1.3</td> <td class='removed'><a class='num' href='../../objects_report/openjpeg/1.2/1.4/report.html'>4 removed</a></td>
<td>2011-07-03</td> <td><a href='../../headers_diff/openjpeg/1.2/1.4/diff.html'>1</a></td>
<td>N/A</td>
<td><a href='../../changelog/openjpeg/1.3/log.html'>changelog</a></td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr> </tr>
<tr id='v1.2'><td>1.2</td> <tr id='v1.2'><td>1.2</td>
<td>2007-06-04</td> <td>2007-06-04</td>
@ -140,7 +134,7 @@
<td>N/A</td> <td>N/A</td>
<td>N/A</td> <td>N/A</td>
</tr> </tr>
</table><br/>Maintained by <a href='http://www.openjpeg.org/'>Antonin Descampe</a>. Last updated on Tue Jun 21 15:41:52 2016.<br/> </table><br/>Maintained by <a href='http://www.openjpeg.org/'>Antonin D.</a>. Last updated on Tue Jun 21 14:58:08 2016.<br/>
<br/> <br/>
<hr/> <hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div> <div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div>