From 30fadd07f339a7f17ba3d2ebecdb7e5fe4932d02 Mon Sep 17 00:00:00 2001
From: OpenJPEG Travis CI
Date: Tue, 26 Sep 2017 21:49:28 +0000
Subject: [PATCH] Update ABI/API compatibility reports after commit
d45ccb048bb2166c5d975f4e1b8acaf8ba3d198d
---
.../abi_dump/openjpeg/current/2c999/ABI.dump | 510 ++++++++++--------
.../abi_dump/openjpeg/current/2c999/meta.json | 2 +-
abi-check/changelog/openjpeg/current/log.html | 239 +++++++-
.../current/4cd8b/abi_compat_report.html | 9 +-
.../openjpeg/2.2.0/current/4cd8b/meta.json | 2 +-
.../2.2.0_to_current/abi_compat_report.html | 9 +-
.../2.2.0_to_current/src_compat_report.html | 9 +-
abi-check/db/openjpeg/Tracker.data | 10 +-
.../openjpeg/2.2.0/current/diff.html | 88 ++-
.../current/include/openjpeg-2.2/openjpeg.h | 33 ++
.../openjpeg/current/lib/libopenjp2.a | Bin 2265944 -> 2276694 bytes
.../openjpeg/current/lib/libopenjp2.so.2.2.0 | Bin 1441032 -> 1445942 bytes
.../openjpeg/2.2.0/current/meta.json | 2 +-
.../openjpeg/2.2.0/current/report.html | 2 +-
abi-check/timeline/openjpeg/index.html | 6 +-
15 files changed, 665 insertions(+), 256 deletions(-)
diff --git a/abi-check/abi_dump/openjpeg/current/2c999/ABI.dump b/abi-check/abi_dump/openjpeg/current/2c999/ABI.dump
index 41f5514f..95c43204 100644
--- a/abi-check/abi_dump/openjpeg/current/2c999/ABI.dump
+++ b/abi-check/abi_dump/openjpeg/current/2c999/ABI.dump
@@ -207,7 +207,7 @@ $VAR1 = {
'Source' => 'cio.c',
'SourceLine' => '271'
},
- '168288' => {
+ '169257' => {
'Header' => 'openjpeg.h',
'Line' => '1062',
'Return' => '156',
@@ -215,13 +215,13 @@ $VAR1 = {
'Source' => 'openjpeg.c',
'SourceLine' => '160'
},
- '168616' => {
+ '169577' => {
'Header' => 'openjpeg.h',
- 'Line' => '1550',
+ 'Line' => '1583',
'Param' => {
'0' => {
'name' => 'cstr_info',
- 'type' => '168634'
+ 'type' => '169595'
}
},
'Reg' => {
@@ -230,14 +230,14 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_destroy_cstr_info',
'Source' => 'openjpeg.c',
- 'SourceLine' => '924'
+ 'SourceLine' => '966'
},
- '230684' => {
+ '231966' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_callback',
@@ -258,12 +258,12 @@ $VAR1 = {
'Source' => 'openjpeg.c',
'SourceLine' => '44'
},
- '230782' => {
+ '232064' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_callback',
@@ -284,12 +284,12 @@ $VAR1 = {
'Source' => 'openjpeg.c',
'SourceLine' => '59'
},
- '230868' => {
+ '232150' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_callback',
@@ -310,28 +310,28 @@ $VAR1 = {
'Source' => 'openjpeg.c',
'SourceLine' => '74'
},
- '230983' => {
+ '232265' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_format',
- 'type' => '219841'
+ 'type' => '221024'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '230770',
+ 'Return' => '232052',
'ShortName' => 'opj_create_decompress',
'Source' => 'openjpeg.c',
'SourceLine' => '168'
},
- '231205' => {
+ '232487' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76838'
+ 'type' => '76897'
}
},
'Reg' => {
@@ -340,14 +340,14 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_set_default_decoder_parameters',
'Source' => 'openjpeg.c',
- 'SourceLine' => '352'
+ 'SourceLine' => '364'
},
- '231336' => {
+ '232618' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'num_threads',
@@ -361,18 +361,18 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_codec_set_threads',
'Source' => 'openjpeg.c',
- 'SourceLine' => '375'
+ 'SourceLine' => '387'
},
- '231454' => {
+ '232736' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'parameters',
- 'type' => '76838'
+ 'type' => '76897'
}
},
'Reg' => {
@@ -382,9 +382,9 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_setup_decoder',
'Source' => 'openjpeg.c',
- 'SourceLine' => '386'
+ 'SourceLine' => '398'
},
- '231596' => {
+ '232878' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
@@ -393,11 +393,11 @@ $VAR1 = {
},
'1' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'2' => {
'name' => 'p_image',
- 'type' => '76826'
+ 'type' => '76891'
}
},
'Reg' => {
@@ -408,14 +408,45 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_read_header',
'Source' => 'openjpeg.c',
- 'SourceLine' => '406'
+ 'SourceLine' => '418'
},
- '231799' => {
+ '233081' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
+ },
+ '1' => {
+ 'name' => 'numcomps',
+ 'type' => '9015'
+ },
+ '2' => {
+ 'name' => 'comps_indices',
+ 'type' => '76909'
+ },
+ '3' => {
+ 'name' => 'apply_color_transforms',
+ 'type' => '2747'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '2747',
+ 'ShortName' => 'opj_set_decoded_components',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '442'
+ },
+ '233323' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'p_codec',
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -423,7 +454,7 @@ $VAR1 = {
},
'2' => {
'name' => 'p_image',
- 'type' => '21108'
+ 'type' => '21114'
}
},
'Reg' => {
@@ -434,18 +465,18 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_decode',
'Source' => 'openjpeg.c',
- 'SourceLine' => '429'
+ 'SourceLine' => '471'
},
- '231953' => {
+ '233477' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_image',
- 'type' => '21108'
+ 'type' => '21114'
},
'2' => {
'name' => 'p_start_x',
@@ -475,14 +506,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_set_decode_area',
'Source' => 'openjpeg.c',
- 'SourceLine' => '450'
+ 'SourceLine' => '492'
},
- '232161' => {
+ '233685' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -519,7 +550,7 @@ $VAR1 = {
},
'9' => {
'name' => 'p_should_go_on',
- 'type' => '76832'
+ 'type' => '23214'
}
},
'Reg' => {
@@ -536,14 +567,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_read_tile_header',
'Source' => 'openjpeg.c',
- 'SourceLine' => '473'
+ 'SourceLine' => '515'
},
- '232379' => {
+ '233903' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_tile_index',
@@ -572,14 +603,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_decode_tile_data',
'Source' => 'openjpeg.c',
- 'SourceLine' => '504'
+ 'SourceLine' => '546'
},
- '232579' => {
+ '234103' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -587,7 +618,7 @@ $VAR1 = {
},
'2' => {
'name' => 'p_image',
- 'type' => '21108'
+ 'type' => '21114'
},
'3' => {
'name' => 'tile_index',
@@ -603,14 +634,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_get_decoded_tile',
'Source' => 'openjpeg.c',
- 'SourceLine' => '530'
+ 'SourceLine' => '572'
},
- '232756' => {
+ '234280' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'res_factor',
@@ -624,30 +655,30 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_set_decoded_resolution_factor',
'Source' => 'openjpeg.c',
- 'SourceLine' => '554'
+ 'SourceLine' => '596'
},
- '232865' => {
+ '234389' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_format',
- 'type' => '219841'
+ 'type' => '221024'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '230770',
+ 'Return' => '232052',
'ShortName' => 'opj_create_compress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '572'
+ 'SourceLine' => '614'
},
- '233090' => {
+ '234614' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76850'
+ 'type' => '76920'
}
},
'Reg' => {
@@ -656,22 +687,22 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_set_default_encoder_parameters',
'Source' => 'openjpeg.c',
- 'SourceLine' => '670'
+ 'SourceLine' => '712'
},
- '233221' => {
+ '234745' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'parameters',
- 'type' => '76850'
+ 'type' => '76920'
},
'2' => {
'name' => 'p_image',
- 'type' => '21108'
+ 'type' => '21114'
}
},
'Reg' => {
@@ -682,18 +713,18 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_setup_encoder',
'Source' => 'openjpeg.c',
- 'SourceLine' => '731'
+ 'SourceLine' => '773'
},
- '233359' => {
+ '234883' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_image',
- 'type' => '21108'
+ 'type' => '21114'
},
'2' => {
'name' => 'p_stream',
@@ -708,14 +739,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_start_compress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '749'
+ 'SourceLine' => '791'
},
- '233513' => {
+ '235037' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_info',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -729,14 +760,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_encode',
'Source' => 'openjpeg.c',
- 'SourceLine' => '768'
+ 'SourceLine' => '810'
},
- '233644' => {
+ '235168' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -750,14 +781,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_end_compress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '785'
+ 'SourceLine' => '827'
},
- '233775' => {
+ '235299' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_stream',
@@ -771,14 +802,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_end_decompress',
'Source' => 'openjpeg.c',
- 'SourceLine' => '802'
+ 'SourceLine' => '844'
},
- '233906' => {
+ '235430' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'parameters',
- 'type' => '76850'
+ 'type' => '76920'
},
'1' => {
'name' => 'pEncodingMatrix',
@@ -802,14 +833,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_set_MCT',
'Source' => 'openjpeg.c',
- 'SourceLine' => '822'
+ 'SourceLine' => '864'
},
- '234252' => {
+ '235776' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'p_tile_index',
@@ -838,14 +869,14 @@ $VAR1 = {
'Return' => '2747',
'ShortName' => 'opj_write_tile',
'Source' => 'openjpeg.c',
- 'SourceLine' => '852'
+ 'SourceLine' => '894'
},
- '234452' => {
+ '235976' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
}
},
'Reg' => {
@@ -854,14 +885,14 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_destroy_codec',
'Source' => 'openjpeg.c',
- 'SourceLine' => '879'
+ 'SourceLine' => '921'
},
- '234553' => {
+ '236077' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
},
'1' => {
'name' => 'info_flag',
@@ -869,7 +900,7 @@ $VAR1 = {
},
'2' => {
'name' => 'output_stream',
- 'type' => '76856'
+ 'type' => '76926'
}
},
'Reg' => {
@@ -880,46 +911,46 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_dump_codec',
'Source' => 'openjpeg.c',
- 'SourceLine' => '897'
+ 'SourceLine' => '939'
},
- '234690' => {
+ '236214' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '76862',
+ 'Return' => '76932',
'ShortName' => 'opj_get_cstr_info',
'Source' => 'openjpeg.c',
- 'SourceLine' => '913'
+ 'SourceLine' => '955'
},
- '234854' => {
+ '236378' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_codec',
- 'type' => '230770'
+ 'type' => '232052'
}
},
'Reg' => {
'0' => 'rdi'
},
- 'Return' => '74658',
+ 'Return' => '74710',
'ShortName' => 'opj_get_cstr_index',
'Source' => 'openjpeg.c',
- 'SourceLine' => '941'
+ 'SourceLine' => '983'
},
- '234939' => {
+ '236463' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'p_cstr_index',
- 'type' => '234999'
+ 'type' => '236523'
}
},
'Reg' => {
@@ -928,9 +959,9 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_destroy_cstr_index',
'Source' => 'openjpeg.c',
- 'SourceLine' => '952'
+ 'SourceLine' => '994'
},
- '235005' => {
+ '236529' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
@@ -954,9 +985,9 @@ $VAR1 = {
'Return' => '14551',
'ShortName' => 'opj_stream_create_file_stream',
'Source' => 'openjpeg.c',
- 'SourceLine' => '967'
+ 'SourceLine' => '1009'
},
- '235124' => {
+ '236648' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
@@ -975,7 +1006,7 @@ $VAR1 = {
'Return' => '14551',
'ShortName' => 'opj_stream_create_default_file_stream',
'Source' => 'openjpeg.c',
- 'SourceLine' => '960'
+ 'SourceLine' => '1002'
},
'3808' => {
'Header' => 'openjpeg.h',
@@ -991,12 +1022,12 @@ $VAR1 = {
'Source' => 'thread.c',
'SourceLine' => '300'
},
- '61066' => {
+ '61085' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
'name' => 'image',
- 'type' => '21108'
+ 'type' => '21114'
}
},
'Reg' => {
@@ -1007,7 +1038,7 @@ $VAR1 = {
'Source' => 'image.c',
'SourceLine' => '92'
},
- '61244' => {
+ '61263' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
@@ -1016,7 +1047,7 @@ $VAR1 = {
},
'1' => {
'name' => 'cmptparms',
- 'type' => '61595'
+ 'type' => '61614'
},
'2' => {
'name' => 'clrspc',
@@ -1028,12 +1059,12 @@ $VAR1 = {
'1' => 'rsi',
'2' => 'rdx'
},
- 'Return' => '21108',
+ 'Return' => '21114',
'ShortName' => 'opj_image_create',
'Source' => 'image.c',
'SourceLine' => '40'
},
- '63317' => {
+ '63336' => {
'Header' => 'openjpeg.h',
'Param' => {
'0' => {
@@ -1042,7 +1073,7 @@ $VAR1 = {
},
'1' => {
'name' => 'cmptparms',
- 'type' => '61595'
+ 'type' => '61614'
},
'2' => {
'name' => 'clrspc',
@@ -1054,12 +1085,12 @@ $VAR1 = {
'1' => 'rsi',
'2' => 'rdx'
},
- 'Return' => '21108',
+ 'Return' => '21114',
'ShortName' => 'opj_image_tile_create',
'Source' => 'image.c',
'SourceLine' => '228'
},
- '63596' => {
+ '63615' => {
'Header' => 'openjpeg.h',
'Line' => '1119',
'Param' => {
@@ -1074,9 +1105,9 @@ $VAR1 = {
'Return' => '1',
'ShortName' => 'opj_image_data_free',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1019'
+ 'SourceLine' => '1061'
},
- '63660' => {
+ '63679' => {
'Header' => 'openjpeg.h',
'Line' => '1109',
'Param' => {
@@ -1091,7 +1122,7 @@ $VAR1 = {
'Return' => '130',
'ShortName' => 'opj_image_data_alloc',
'Source' => 'openjpeg.c',
- 'SourceLine' => '1012'
+ 'SourceLine' => '1054'
}
},
'SymbolVersion' => {
@@ -1130,6 +1161,7 @@ $VAR1 = {
'opj_read_tile_header' => 1,
'opj_set_MCT' => 1,
'opj_set_decode_area' => 1,
+ 'opj_set_decoded_components' => 1,
'opj_set_decoded_resolution_factor' => 1,
'opj_set_default_decoder_parameters' => 1,
'opj_set_default_encoder_parameters' => 1,
@@ -1386,8 +1418,8 @@ $VAR1 = {
'Size' => '1',
'Type' => 'Const'
},
- '168634' => {
- 'BaseType' => '76862',
+ '169595' => {
+ 'BaseType' => '76932',
'Name' => 'opj_codestream_info_v2_t**',
'Size' => '8',
'Type' => 'Pointer'
@@ -1873,13 +1905,13 @@ $VAR1 = {
'Size' => '132',
'Type' => 'Array'
},
- '21108' => {
+ '21114' => {
'BaseType' => '19332',
'Name' => 'opj_image_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '219791' => {
+ '220974' => {
'Header' => 'openjpeg.h',
'Line' => '292',
'Memb' => {
@@ -1912,15 +1944,15 @@ $VAR1 = {
'Size' => '4',
'Type' => 'Enum'
},
- '219841' => {
- 'BaseType' => '219791',
+ '221024' => {
+ 'BaseType' => '220974',
'Header' => 'openjpeg.h',
'Line' => '299',
'Name' => 'OPJ_CODEC_FORMAT',
'Size' => '4',
'Type' => 'Typedef'
},
- '221598' => {
+ '222781' => {
'BaseType' => '130',
'Header' => 'openjpeg.h',
'Line' => '578',
@@ -2093,14 +2125,26 @@ $VAR1 = {
'Size' => '216',
'Type' => 'Struct'
},
- '230770' => {
- 'BaseType' => '221598',
+ '232052' => {
+ 'BaseType' => '222781',
'Name' => 'opj_codec_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '234999' => {
- 'BaseType' => '74658',
+ '23214' => {
+ 'BaseType' => '2747',
+ 'Name' => 'OPJ_BOOL*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '23248' => {
+ 'BaseType' => '9015',
+ 'Name' => 'OPJ_UINT32 const',
+ 'Size' => '4',
+ 'Type' => 'Const'
+ },
+ '236523' => {
+ 'BaseType' => '74710',
'Name' => 'opj_codestream_index_t**',
'Size' => '8',
'Type' => 'Pointer'
@@ -2184,7 +2228,7 @@ $VAR1 = {
'Size' => '2',
'Type' => 'Intrinsic'
},
- '58921' => {
+ '58940' => {
'Header' => 'openjpeg.h',
'Line' => '694',
'Memb' => {
@@ -2243,16 +2287,16 @@ $VAR1 = {
'Size' => '4',
'Type' => 'Intrinsic'
},
- '59044' => {
- 'BaseType' => '58921',
+ '59063' => {
+ 'BaseType' => '58940',
'Header' => 'openjpeg.h',
'Line' => '713',
'Name' => 'opj_image_cmptparm_t',
'Size' => '36',
'Type' => 'Typedef'
},
- '61595' => {
- 'BaseType' => '59044',
+ '61614' => {
+ 'BaseType' => '59063',
'Name' => 'opj_image_cmptparm_t*',
'Size' => '8',
'Type' => 'Pointer'
@@ -2262,7 +2306,7 @@ $VAR1 = {
'Size' => '8',
'Type' => 'Intrinsic'
},
- '66835' => {
+ '66854' => {
'BaseType' => '2250',
'Header' => 'stdio.h',
'Line' => '49',
@@ -2270,7 +2314,7 @@ $VAR1 = {
'Size' => '216',
'Type' => 'Typedef'
},
- '67552' => {
+ '67571' => {
'Header' => 'openjpeg.h',
'Line' => '246',
'Memb' => {
@@ -2295,15 +2339,15 @@ $VAR1 = {
'Size' => '4',
'Type' => 'Enum'
},
- '67591' => {
- 'BaseType' => '67552',
+ '67610' => {
+ 'BaseType' => '67571',
'Header' => 'openjpeg.h',
'Line' => '251',
'Name' => 'OPJ_RSIZ_CAPABILITIES',
'Size' => '4',
'Type' => 'Typedef'
},
- '67602' => {
+ '67621' => {
'Header' => 'openjpeg.h',
'Line' => '257',
'Memb' => {
@@ -2328,15 +2372,15 @@ $VAR1 = {
'Size' => '4',
'Type' => 'Enum'
},
- '67640' => {
- 'BaseType' => '67602',
+ '67659' => {
+ 'BaseType' => '67621',
'Header' => 'openjpeg.h',
'Line' => '262',
'Name' => 'OPJ_CINEMA_MODE',
'Size' => '4',
'Type' => 'Typedef'
},
- '68324' => {
+ '68343' => {
'Header' => 'openjpeg.h',
'Line' => '353',
'Memb' => {
@@ -2378,12 +2422,12 @@ $VAR1 = {
'15' => {
'name' => 'tcp_rates',
'offset' => '4800',
- 'type' => '69188'
+ 'type' => '69207'
},
'16' => {
'name' => 'tcp_distoratio',
'offset' => '5200',
- 'type' => '69188'
+ 'type' => '69207'
},
'17' => {
'name' => 'numresolution',
@@ -2433,22 +2477,22 @@ $VAR1 = {
'25' => {
'name' => 'prcw_init',
'offset' => '5632',
- 'type' => '69204'
+ 'type' => '69223'
},
'26' => {
'name' => 'prch_init',
'offset' => '5764',
- 'type' => '69204'
+ 'type' => '69223'
},
'27' => {
'name' => 'infile',
'offset' => '5896',
- 'type' => '69220'
+ 'type' => '69239'
},
'28' => {
'name' => 'outfile',
'offset' => '9992',
- 'type' => '69220'
+ 'type' => '69239'
},
'29' => {
'name' => 'index_on',
@@ -2463,7 +2507,7 @@ $VAR1 = {
'30' => {
'name' => 'index',
'offset' => '14092',
- 'type' => '69220'
+ 'type' => '69239'
},
'31' => {
'name' => 'image_offset_x0',
@@ -2508,7 +2552,7 @@ $VAR1 = {
'39' => {
'name' => 'jpwl_hprot_TPH_tileno',
'offset' => '18220',
- 'type' => '69237'
+ 'type' => '69256'
},
'4' => {
'name' => 'cp_tdy',
@@ -2518,22 +2562,22 @@ $VAR1 = {
'40' => {
'name' => 'jpwl_hprot_TPH',
'offset' => '18284',
- 'type' => '69237'
+ 'type' => '69256'
},
'41' => {
'name' => 'jpwl_pprot_tileno',
'offset' => '18348',
- 'type' => '69237'
+ 'type' => '69256'
},
'42' => {
'name' => 'jpwl_pprot_packno',
'offset' => '18412',
- 'type' => '69237'
+ 'type' => '69256'
},
'43' => {
'name' => 'jpwl_pprot',
'offset' => '18476',
- 'type' => '69237'
+ 'type' => '69256'
},
'44' => {
'name' => 'jpwl_sens_size',
@@ -2558,12 +2602,12 @@ $VAR1 = {
'48' => {
'name' => 'jpwl_sens_TPH_tileno',
'offset' => '18556',
- 'type' => '69237'
+ 'type' => '69256'
},
'49' => {
'name' => 'jpwl_sens_TPH',
'offset' => '18620',
- 'type' => '69237'
+ 'type' => '69256'
},
'5' => {
'name' => 'cp_disto_alloc',
@@ -2573,7 +2617,7 @@ $VAR1 = {
'50' => {
'name' => 'cp_cinema',
'offset' => '18684',
- 'type' => '67640'
+ 'type' => '67659'
},
'51' => {
'name' => 'max_comp_size',
@@ -2583,7 +2627,7 @@ $VAR1 = {
'52' => {
'name' => 'cp_rsiz',
'offset' => '18692',
- 'type' => '67591'
+ 'type' => '67610'
},
'53' => {
'name' => 'tp_on',
@@ -2633,7 +2677,7 @@ $VAR1 = {
'8' => {
'name' => 'cp_matrice',
'offset' => '32',
- 'type' => '69166'
+ 'type' => '69185'
},
'9' => {
'name' => 'cp_comment',
@@ -2645,45 +2689,45 @@ $VAR1 = {
'Size' => '18720',
'Type' => 'Struct'
},
- '69166' => {
+ '69185' => {
'BaseType' => '87',
'Name' => 'int*',
'Size' => '8',
'Type' => 'Pointer'
},
- '69188' => {
+ '69207' => {
'BaseType' => '2236',
'Name' => 'float[100]',
'Size' => '400',
'Type' => 'Array'
},
- '69204' => {
+ '69223' => {
'BaseType' => '87',
'Name' => 'int[33]',
'Size' => '132',
'Type' => 'Array'
},
- '69220' => {
+ '69239' => {
'BaseType' => '138',
'Name' => 'char[4096]',
'Size' => '4096',
'Type' => 'Array'
},
- '69237' => {
+ '69256' => {
'BaseType' => '87',
'Name' => 'int[16]',
'Size' => '64',
'Type' => 'Array'
},
- '69253' => {
- 'BaseType' => '68324',
+ '69272' => {
+ 'BaseType' => '68343',
'Header' => 'openjpeg.h',
'Line' => '504',
'Name' => 'opj_cparameters_t',
'Size' => '18720',
'Type' => 'Typedef'
},
- '69265' => {
+ '69284' => {
'Header' => 'openjpeg.h',
'Line' => '512',
'Memb' => {
@@ -2735,12 +2779,12 @@ $VAR1 = {
'2' => {
'name' => 'infile',
'offset' => '8',
- 'type' => '69220'
+ 'type' => '69239'
},
'3' => {
'name' => 'outfile',
'offset' => '4104',
- 'type' => '69220'
+ 'type' => '69239'
},
'4' => {
'name' => 'decod_format',
@@ -2777,15 +2821,15 @@ $VAR1 = {
'Size' => '8252',
'Type' => 'Struct'
},
- '69515' => {
- 'BaseType' => '69265',
+ '69534' => {
+ 'BaseType' => '69284',
'Header' => 'openjpeg.h',
'Line' => '572',
'Name' => 'opj_dparameters_t',
'Size' => '8252',
'Type' => 'Typedef'
},
- '70031' => {
+ '70050' => {
'Header' => 'openjpeg.h',
'Line' => '726',
'Memb' => {
@@ -2814,15 +2858,15 @@ $VAR1 = {
'Size' => '32',
'Type' => 'Struct'
},
- '70097' => {
- 'BaseType' => '70031',
+ '70116' => {
+ 'BaseType' => '70050',
'Header' => 'openjpeg.h',
'Line' => '735',
'Name' => 'opj_packet_info_t',
'Size' => '32',
'Type' => 'Typedef'
},
- '70109' => {
+ '70128' => {
'Header' => 'openjpeg.h',
'Line' => '742',
'Memb' => {
@@ -2846,27 +2890,27 @@ $VAR1 = {
'Size' => '24',
'Type' => 'Struct'
},
- '70162' => {
- 'BaseType' => '70109',
+ '70181' => {
+ 'BaseType' => '70128',
'Header' => 'openjpeg.h',
'Line' => '749',
'Name' => 'opj_marker_info_t',
'Size' => '24',
'Type' => 'Typedef'
},
- '70514' => {
- 'BaseType' => '70097',
+ '70533' => {
+ 'BaseType' => '70116',
'Name' => 'opj_packet_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '70520' => {
- 'BaseType' => '70162',
+ '70539' => {
+ 'BaseType' => '70181',
'Name' => 'opj_marker_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '70860' => {
+ '70879' => {
'Header' => 'openjpeg.h',
'Line' => '866',
'Memb' => {
@@ -2933,33 +2977,33 @@ $VAR1 = {
'8' => {
'name' => 'stepsizes_mant',
'offset' => '32',
- 'type' => '71062'
+ 'type' => '71081'
},
'9' => {
'name' => 'stepsizes_expn',
'offset' => '420',
- 'type' => '71062'
+ 'type' => '71081'
}
},
'Name' => 'struct opj_tccp_info',
'Size' => '1080',
'Type' => 'Struct'
},
- '71062' => {
+ '71081' => {
'BaseType' => '9015',
'Name' => 'OPJ_UINT32[97]',
'Size' => '388',
'Type' => 'Array'
},
- '71094' => {
- 'BaseType' => '70860',
+ '71113' => {
+ 'BaseType' => '70879',
'Header' => 'openjpeg.h',
'Line' => '896',
'Name' => 'opj_tccp_info_t',
'Size' => '1080',
'Type' => 'Typedef'
},
- '71106' => {
+ '71125' => {
'Header' => 'openjpeg.h',
'Line' => '901',
'Memb' => {
@@ -2991,28 +3035,28 @@ $VAR1 = {
'5' => {
'name' => 'tccp_info',
'offset' => '24',
- 'type' => '71198'
+ 'type' => '71217'
}
},
'Name' => 'struct opj_tile_v2_info',
'Size' => '32',
'Type' => 'Struct'
},
- '71198' => {
- 'BaseType' => '71094',
+ '71217' => {
+ 'BaseType' => '71113',
'Name' => 'opj_tccp_info_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71204' => {
- 'BaseType' => '71106',
+ '71223' => {
+ 'BaseType' => '71125',
'Header' => 'openjpeg.h',
'Line' => '917',
'Name' => 'opj_tile_info_v2_t',
'Size' => '32',
'Type' => 'Typedef'
},
- '71216' => {
+ '71235' => {
'Header' => 'openjpeg.h',
'Line' => '922',
'Memb' => {
@@ -3054,33 +3098,33 @@ $VAR1 = {
'7' => {
'name' => 'm_default_tile_info',
'offset' => '32',
- 'type' => '71204'
+ 'type' => '71223'
},
'8' => {
'name' => 'tile_info',
'offset' => '64',
- 'type' => '71345'
+ 'type' => '71364'
}
},
'Name' => 'struct opj_codestream_info_v2',
'Size' => '72',
'Type' => 'Struct'
},
- '71345' => {
- 'BaseType' => '71204',
+ '71364' => {
+ 'BaseType' => '71223',
'Name' => 'opj_tile_info_v2_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71351' => {
- 'BaseType' => '71216',
+ '71370' => {
+ 'BaseType' => '71235',
'Header' => 'openjpeg.h',
'Line' => '946',
'Name' => 'opj_codestream_info_v2_t',
'Size' => '72',
'Type' => 'Typedef'
},
- '71363' => {
+ '71382' => {
'Header' => 'openjpeg.h',
'Line' => '952',
'Memb' => {
@@ -3104,15 +3148,15 @@ $VAR1 = {
'Size' => '24',
'Type' => 'Struct'
},
- '71416' => {
- 'BaseType' => '71363',
+ '71435' => {
+ 'BaseType' => '71382',
'Header' => 'openjpeg.h',
'Line' => '960',
'Name' => 'opj_tp_index_t',
'Size' => '24',
'Type' => 'Typedef'
},
- '71428' => {
+ '71447' => {
'Header' => 'openjpeg.h',
'Line' => '965',
'Memb' => {
@@ -3139,7 +3183,7 @@ $VAR1 = {
'4' => {
'name' => 'tp_index',
'offset' => '16',
- 'type' => '71572'
+ 'type' => '71591'
},
'5' => {
'name' => 'marknum',
@@ -3149,7 +3193,7 @@ $VAR1 = {
'6' => {
'name' => 'marker',
'offset' => '32',
- 'type' => '70520'
+ 'type' => '70539'
},
'7' => {
'name' => 'maxmarknum',
@@ -3164,28 +3208,28 @@ $VAR1 = {
'9' => {
'name' => 'packet_index',
'offset' => '48',
- 'type' => '70514'
+ 'type' => '70533'
}
},
'Name' => 'struct opj_tile_index',
'Size' => '56',
'Type' => 'Struct'
},
- '71572' => {
- 'BaseType' => '71416',
+ '71591' => {
+ 'BaseType' => '71435',
'Name' => 'opj_tp_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71578' => {
- 'BaseType' => '71428',
+ '71597' => {
+ 'BaseType' => '71447',
'Header' => 'openjpeg.h',
'Line' => '992',
'Name' => 'opj_tile_index_t',
'Size' => '56',
'Type' => 'Typedef'
},
- '71590' => {
+ '71609' => {
'Header' => 'openjpeg.h',
'Line' => '997',
'Memb' => {
@@ -3212,7 +3256,7 @@ $VAR1 = {
'4' => {
'name' => 'marker',
'offset' => '32',
- 'type' => '70520'
+ 'type' => '70539'
},
'5' => {
'name' => 'maxmarknum',
@@ -3227,21 +3271,21 @@ $VAR1 = {
'7' => {
'name' => 'tile_index',
'offset' => '48',
- 'type' => '71708'
+ 'type' => '71727'
}
},
'Name' => 'struct opj_codestream_index',
'Size' => '56',
'Type' => 'Struct'
},
- '71708' => {
- 'BaseType' => '71578',
+ '71727' => {
+ 'BaseType' => '71597',
'Name' => 'opj_tile_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '71714' => {
- 'BaseType' => '71590',
+ '71733' => {
+ 'BaseType' => '71609',
'Header' => 'openjpeg.h',
'Line' => '1020',
'Name' => 'opj_codestream_index_t',
@@ -3253,44 +3297,44 @@ $VAR1 = {
'Size' => '1',
'Type' => 'Intrinsic'
},
- '74658' => {
- 'BaseType' => '71714',
+ '74710' => {
+ 'BaseType' => '71733',
'Name' => 'opj_codestream_index_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76826' => {
- 'BaseType' => '21108',
+ '76891' => {
+ 'BaseType' => '21114',
'Name' => 'opj_image_t**',
'Size' => '8',
'Type' => 'Pointer'
},
- '76832' => {
- 'BaseType' => '2747',
- 'Name' => 'OPJ_BOOL*',
- 'Size' => '8',
- 'Type' => 'Pointer'
- },
- '76838' => {
- 'BaseType' => '69515',
+ '76897' => {
+ 'BaseType' => '69534',
'Name' => 'opj_dparameters_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76850' => {
- 'BaseType' => '69253',
+ '76909' => {
+ 'BaseType' => '23248',
+ 'Name' => 'OPJ_UINT32 const*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '76920' => {
+ 'BaseType' => '69272',
'Name' => 'opj_cparameters_t*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76856' => {
- 'BaseType' => '66835',
+ '76926' => {
+ 'BaseType' => '66854',
'Name' => 'FILE*',
'Size' => '8',
'Type' => 'Pointer'
},
- '76862' => {
- 'BaseType' => '71351',
+ '76932' => {
+ 'BaseType' => '71370',
'Name' => 'opj_codestream_info_v2_t*',
'Size' => '8',
'Type' => 'Pointer'
diff --git a/abi-check/abi_dump/openjpeg/current/2c999/meta.json b/abi-check/abi_dump/openjpeg/current/2c999/meta.json
index c640a624..458fe7f0 100644
--- a/abi-check/abi_dump/openjpeg/current/2c999/meta.json
+++ b/abi-check/abi_dump/openjpeg/current/2c999/meta.json
@@ -1,7 +1,7 @@
{
"Object": "lib/libopenjp2.so.2.2.0",
"Lang": "C",
- "TotalSymbols": "48",
+ "TotalSymbols": "49",
"PublicABI": "1",
"Version": "1.7"
}
\ No newline at end of file
diff --git a/abi-check/changelog/openjpeg/current/log.html b/abi-check/changelog/openjpeg/current/log.html
index 56bb889f..850fe0ba 100644
--- a/abi-check/changelog/openjpeg/current/log.html
+++ b/abi-check/changelog/openjpeg/current/log.html
@@ -20,7 +20,16 @@
Changelog from Git
-
commit 3f0de88c7bf4e56826987aa7d3edb5acdd4399f2
+commit d45ccb048bb2166c5d975f4e1b8acaf8ba3d198d
+Merge: 3f0de88 e17bbde
+Author: Antonin Descampe <antonin@descampe.net>
+Date: 2017-09-26 18:30:20 -0300
+
+ Merge pull request #1022 from rouault/partial_component_decoding
+
+ Add capability to decode only a subset of all components of an image.
+
+commit 3f0de88c7bf4e56826987aa7d3edb5acdd4399f2
Author: Even Rouault <even.rouault@spatialys.com>
Date: 2017-09-22 21:43:09 +0200
@@ -144,6 +153,28 @@ Date: 2017-09-19 18:22:07 +0200
Replace C++ style comments by C ones
+commit e17bbde9066600528ab523adee69d9c9c33ba157
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-19 17:48:07 +0200
+
+ opj_set_decoded_components(): add a provision for a apply_color_transforms parameter in case we support it in the future
+
+commit 7e2b6bebff12eab8bdc17fc9af017e8c11652f4f
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-19 16:52:07 +0200
+
+ Add capability to decode only a subset of all components of an image.
+
+ This adds a opj_set_decoded_components(opj_codec_t *p_codec,
+ OPJ_UINT32 numcomps, const OPJ_UINT32* comps_indices) function,
+ and equivalent "opj_decompress -c compno[,compno]*" option.
+
+ When specified, neither the MCT transform nor JP2 channel transformations
+ will be applied.
+
+ Tests added for various combinations of whole image vs tiled-based decoding,
+ full or reduced resolution, use of decode area or not.
+
commit ce199f42e77f972d6ee782b63492f6d861891053
Author: Even Rouault <even.rouault@spatialys.com>
Date: 2017-09-19 12:48:12 +0200
@@ -393,6 +424,102 @@ Date: 2017-09-01 16:30:50 +0200
Optimize reading/write into sparse array
+commit 0ae3cba3404674bbe2028ea9a801301a4c951b33
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:48 +0200
+
+ Allow several repeated calls to opj_set_decode_area() and opj_decode() for single-tiled images
+
+ * Only works for single-tiled images --> will error out cleanly, as currently
+ in other cases
+ * Save re-reading the codestream for the tile, and re-use code-blocks of the
+ previous decoding pass.
+ * Future improvements might involve improving opj_decompress, and the image writing logic,
+ to use this strategy.
+
+commit 5d07d463fdb0a5eeffa90eba1566cc21697011b8
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:45 +0200
+
+ opj_j2k_decode_tiles(): apply whole single tile image decoding optimization to reading at reduced resolution as well
+
+commit 98b93103613c90753fb6c57696f9403f8ea0b1d6
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:44 +0200
+
+ Various changes to allow tile buffers of more than 4giga pixels
+
+ Untested though, since that means a tile buffer of at least 16 GB. So
+ there might be places where uint32 overflow on multiplication still occur...
+
+commit 008a12d4fce0a7b1eabc51e04ed339be759646e2
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:41 +0200
+
+ TCD: allow tile buffer to be greater than 4GB on 64 bit hosts (but number of pixels must remain under 4 billion)
+
+commit d1299d9670d766006a7a162a770d3b70eaeef9bd
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:39 +0200
+
+ Fix compiler warning in release mode
+
+commit d5153ba404fa13b9c6e7b2c20d4d128aac718fba
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:37 +0200
+
+ Remove limitation that prevents from opening images bigger than 4 billion pixels
+
+ However the intermediate buffer for decoding must still be smaller than 4
+ billion pixels, so this is useful for decoding at a lower resolution level,
+ or subtile decoding.
+
+commit c37e360a5112b5471168e429159f61b74c0c2f58
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:35 +0200
+
+ opj_tcd_init_tile(): fix typo on overflow detection condition (introduced in previous commit)
+
+commit eee5104a8885227167a349b6dabdb1f72a04d9d0
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:32 +0200
+
+ opj_dwt_decode_partial_tile(): avoid undefined behaviour in lifting operation by properly initializing working buffer
+
+commit f9e9942330f476b66ac4a35d0ae521200878f343
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-09-01 16:30:29 +0200
+
+ Sub-tile decoding: only allocate tile component buffer of the needed dimension
+
+ Instead of being the full tile size.
+
+ * Use a sparse array mechanism to store code-blocks and intermediate stages of
+ IDWT.
+ * IDWT, DC level shift and MCT stages are done just on that smaller array.
+ * Improve copy of tile component array to final image, by saving an intermediate
+ buffer.
+ * For full-tile decoding at reduced resolution, only allocate the tile buffer to
+ the reduced size, instead of the full-resolution size.
+
+commit aa7198146b995fe2993ce24f5715057b7da0386d
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 23:21:39 +0200
+
+ opj_compress: reorder checks related to code block dimensions, to avoid potential int overflow
+
+commit 0a25dceca7761ee3f16cbb2ced87b915a948b25e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 23:20:51 +0200
+
+ opj_j2k_setup_encoder(): validate code block width/height
+
+commit 84bbb4a8743a93d567f40d7233d5196105c8d84e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 23:12:45 +0200
+
+ opj_t1_allocate_buffers(): remove useless overflow checks
+
commit 6ce49bf5aebb3c45c464fa82d14cfd4bf7026a28
Author: Even Rouault <even.rouault@spatialys.com>
Date: 2017-09-01 10:26:18 +0200
@@ -464,6 +591,116 @@ Date: 2017-08-24 14:09:31 +0200
imagetopgx(): improve performance in 8 bit case (relates to broken.jpc test case)
+commit fdcd4e6365731cc1015213e424068131bcd1f31f
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-24 13:23:25 +0200
+
+ Remove -NR-DEC-p1_06.j2k-156-decode and NR-DEC-p1_06.j2k-164-decode from knownfailures
+
+ and make them explicit failures. The result images are empty at the requested resolution
+
+commit bc71bd1219269057ea18e6acbc77a96ec37aba82
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-23 18:58:32 +0200
+
+ opj_dwt_decode_partial_97(): perf improvement: limit copy of coefficients at end of horizontal pass to actual range of interest
+
+commit 8180eeace13ffceef5dd7c3f80be156e36181846
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 23:06:53 +0200
+
+ test_tile_encoder: fix checks on argc
+
+commit c97666f72ba26a7ceb64931963b988a6f8f377f9
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 19:02:04 +0200
+
+ j2k.c: fix comment, and remove FIXME
+
+commit 24d069e3ffa2286930a2e7e2638431ea1de6846a
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 17:19:13 +0200
+
+ Add comment
+
+commit e9bbc6d3dde946bdb5195f053f24b91335d5d84c
+Merge: 3eed024 17a7ac4
+Author: Even Rouault <even.rouault@mines-paris.org>
+Date: 2017-08-21 13:02:07 +0200
+
+ Merge pull request #1001 from rouault/subtile_decoding_stage2
+
+ Subtile decoding: only apply IDWT on areas that participate to the window of interest
+
+commit 17a7ac42d581c537cfc1da4324e53047ad82b13e
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-21 12:25:38 +0200
+
+ Add comments for filter_width values
+
+commit f87c5ef7ebef3d7a908e98f2de1b6a0336ae57ae
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-20 22:02:41 +0200
+
+ Subtile decoding: only do 9x7 IDWT computations on relevant areas of tile-component buffer.
+
+commit 3eed024eb45534f86537404e08d08fa572a40782
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-19 15:45:54 +0200
+
+ pgxtoimage(): avoid excessive memory allocation attempt (#999)
+
+commit 5d403250561398f7ba3041d9eb8c893bd680dd72
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-18 15:08:51 +0200
+
+ Subtile decoding: only do 5x3 IDWT computations on relevant areas of tile-component buffer.
+
+ This lowers 'bin/opj_decompress -i ../MAPA.jp2 -o out.tif -d 0,0,256,256'
+ down to 0.860s
+
+commit e5285319229a5d77bf316bb0d3a6cbd3cb8666d9
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-18 13:39:20 +0200
+
+ pgxtoimage(): fix write stack buffer overflow (#997)
+
+commit 028c504a43e962a725c4fd73d6642ee73c653e1b
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-18 12:30:11 +0200
+
+ test_decode_area: fix to make it work with odd image dimensions
+
+commit 5597522cac96b1bc6d48a447751b1c6049248eef
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-18 10:16:38 +0200
+
+ bmp_read_rle8_data(): avoid potential infinite loop (#996)
+
+commit 5d12806091eab0659431fefcefdb797b09f8e884
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-17 19:18:48 +0200
+
+ opj_j2k_update_rates(): grow tile size buffer for some situations
+
+commit 4b0bfbfabc3ce1cc4c6d18dc7113b9f6335372d4
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-17 16:07:19 +0200
+
+ Zero-initialize tile buffer regions of skipped code-blocks, so as to make Valgrind happy
+
+commit fe338a057c39797bf61939471ebaef09e44464c7
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-14 13:23:57 +0200
+
+ Sub-tile decoding: only decode precincts and codeblocks that intersect the window specified in opj_set_decode_area()
+
+commit 17ea17f487a777d14bd322ac06c4e6cb9124a226
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-17 19:05:29 +0200
+
+ Fix -Wconversion warning
+
...
diff --git a/abi-check/compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html b/abi-check/compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html
index 829e0292..f1dcb188 100644
--- a/abi-check/compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html
+++ b/abi-check/compat_report/openjpeg/2.2.0/current/4cd8b/abi_compat_report.html
@@ -1,4 +1,4 @@
-
+
diff --git a/abi-check/installed/openjpeg/current/include/openjpeg-2.2/openjpeg.h b/abi-check/installed/openjpeg/current/include/openjpeg-2.2/openjpeg.h
index 79e0bb4f..f36286eb 100644
--- a/abi-check/installed/openjpeg/current/include/openjpeg-2.2/openjpeg.h
+++ b/abi-check/installed/openjpeg/current/include/openjpeg-2.2/openjpeg.h
@@ -1336,6 +1336,37 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_header(opj_stream_t *p_stream,
opj_codec_t *p_codec,
opj_image_t **p_image);
+
+/** Restrict the number of components to decode.
+ *
+ * This function should be called after opj_read_header().
+ *
+ * This function enables to restrict the set of decoded components to the
+ * specified indices.
+ * Note that the current implementation (apply_color_transforms == OPJ_FALSE)
+ * is such that neither the multi-component transform at codestream level,
+ * nor JP2 channel transformations will be applied.
+ * Consequently the indices are relative to the codestream.
+ *
+ * Note: opj_decode_tile_data() should not be used together with opj_set_decoded_components().
+ *
+ * @param p_codec the jpeg2000 codec to read.
+ * @param numcomps Size of the comps_indices array.
+ * @param comps_indices Array of numcomps values representing the indices
+ * of the components to decode (relative to the
+ * codestream, starting at 0)
+ * @param apply_color_transforms Whether multi-component transform at codestream level
+ * or JP2 channel transformations should be applied.
+ * Currently this parameter should be set to OPJ_FALSE.
+ * Setting it to OPJ_TRUE will result in an error.
+ *
+ * @return OPJ_TRUE in case of success.
+ */
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
+ OPJ_UINT32 numcomps,
+ const OPJ_UINT32* comps_indices,
+ OPJ_BOOL apply_color_transforms);
+
/**
* Sets the given area to be decoded. This function should be called right after opj_read_header and before any tile header reading.
*
@@ -1452,6 +1483,8 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_tile_header(opj_codec_t *p_codec,
* Reads a tile data. This function is compulsory and allows one to decode tile data. opj_read_tile_header should be called before.
* The user may need to refer to the image got by opj_read_header to understand the size being taken by the tile.
*
+ * Note: opj_decode_tile_data() should not be used together with opj_set_decoded_components().
+ *
* @param p_codec the jpeg2000 codec.
* @param p_tile_index the index of the tile being decoded, this should be the value set by opj_read_tile_header.
* @param p_data pointer to a memory block that will hold the decoded data.
diff --git a/abi-check/installed/openjpeg/current/lib/libopenjp2.a b/abi-check/installed/openjpeg/current/lib/libopenjp2.a
index 60e3e60108e305a92efe234cd9403049cc947373..dbbbced9c6da6c142043dcb36e5f3a1c16e20ffb 100644
GIT binary patch
literal 2276694
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
z
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