Even Rouault
6a29f5a9e3
opj_j2k_decode_tile(): avoid 'Stream too short' error in non-strict mode
2022-02-10 15:50:07 +01:00
Even Rouault
1462e9403f
Avoid integer overflows in DWT. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44544
2022-02-10 14:30:13 +01:00
Robert Gabriel Jakabosky
883c31dbe0
Add support for partial bitstream decoding ( #1407 ) ( fixes #715 )
...
Add a -allow-partial option to opj_decompress utility and a opj_decoder_set_strict_mode() option to the API
Co-authored-by: Chris Hafey <chafey@gmail.com>
2022-02-10 14:27:17 +01:00
Even Rouault
1de5fc6c51
opj_encoder_set_extra_options(): add a GUARD_BITS=value option
...
and add a -GuardBits option to opj_compress.
The recently-released SMPTE DCP Bv2.1 Application Profile (link below)
says that the number of guard bits in the QCD marker shall be 1 for 2K
content and 2 for 4K content. This change allows the number of guard bits
to be configured, so that users of openjpeg have the control they need to meet the specification.
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9161348
This is an alternative implementation of https://github.com/uclouvain/openjpeg/pull/1388
that keeps ABI unchanged.
2022-01-23 17:54:44 +01:00
Eric Harvey
241e9e8efe
Fix potential overflow related issues spotted by LGTM code analysis ( #1402 )
2022-01-18 21:55:10 +01:00
Even Rouault
70f5e0a0df
opj_j2k_setup_encoder(): validate number of tiles to avoid illegal values and potential overflow ( fixes #1399 )
2022-01-18 15:44:18 +01:00
Stefan Weil
ef73ad1c97
Fix singular/plural mismatch
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-05 13:32:09 +01:00
Stefan Weil
667149ffa1
Fix some typos (found by codespell)
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-05 13:14:33 +01:00
Even Rouault
0b5d62684f
API: deprecate 'bpp' member in favor of 'prec'
...
in opj_image_comp and opj_image_comptparm structures.
bpp was redundant with prec, and almost never set by the library, except
by opj_image_create(). This change should hopefully not impact existing,
working, users of the API, which should already have used prec to get
things working.
Fixes #1379
2021-10-21 14:13:58 +02:00
Even Rouault
0544a0885b
ht_dec.c: fix likely issue on big endian hosts (untested)
2021-09-25 12:59:04 +02:00
Aous Naman
1e6c925eb5
Added support for high throughput (HTJ2K) decoding.
...
There are a few limitations:
- mixed mode (HT and regular code blocks) is not supported.
- ROI in HT blocks is not supported.
- Placeholder passes are not supported.
- MultiHT sets are not support, only a singleHT set.
- there are known issues with some compliance testing files related to
the parsing of packet header.
2021-09-25 12:26:59 +02:00
Even Rouault
badbd93af9
Avoid integer overflows in DWT. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11700 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30646
2021-09-03 15:17:56 +02:00
Even Rouault
172583ab5b
Merge pull request #1373 from DimitriPapadopoulos/lgtm
...
LGTM warning: Comparison result is always the same
2021-08-30 19:15:32 +02:00
Dimitri Papadopoulos
bea58764ad
LGTM warning: Comparison result is always the same
...
Comparison is always true because pos >= 0.
2021-08-30 18:48:57 +03:00
Anonymous Maarten
5c2053950e
cmake: add install interface include directory
2021-08-01 20:56:40 +02:00
Even Rouault
08ba6a1638
Fix code formatting
2021-07-12 15:59:41 +02:00
Sebastian Rasmussen
e0993d072a
opj_j2k_is_imf_compliant: Fix out of bounds access.
...
Previously when mainlevel was parsed == 12 openjpeg would generate
a warning, but then the sublevel value would be compared to an out
of bounds element in the tabMaxSubLevelFromMainLevel array. From
this commit OpenJPEG will only use mainlevel if in range.
2021-07-12 15:32:39 +02:00
Sebastian Rasmussen
c8ab3e5849
opj_j2k_is_imf_compliant: Fix argument formatting for warnings.
2021-07-12 03:43:30 +02:00
Even Rouault
a36ae03860
Add support for enabling generation of TLM markers in encoder
...
Support was already there, but restricted to Cinema and IMF profiles,
and 255 tiles
* Add -TLM switch added to opj_compress
* Make opj_encoder_set_extra_options() function accept a TLM=YES option.
2021-06-07 15:49:08 +02:00
Even Rouault
7e4e09a7fb
openjpeg.c: avoid casts of function pointers
2021-06-07 12:57:30 +02:00
Even Rouault
85a87cd505
Remove obsolete components JPWL, JP3D and MJ2
2021-05-04 19:21:45 +02:00
Jamaika1
0c2b633992
Change defined WIN32
2020-12-21 07:59:12 +01:00
Even Rouault
8f5aff1dff
pi.c: avoid out of bounds access with POC ( fixes #1302 )
2020-12-04 20:45:25 +01:00
yuan
4ce7d285a5
Encoder: grow again buffer size in opj_tcd_code_block_enc_allocate_data() ( fixes #1283 )
2020-12-04 19:00:22 +08:00
Even Rouault
aaff099b49
Merge pull request #1301 from rouault/fix_1299
...
opj_j2k_write_sod(): avoid potential heap buffer overflow (fixes #1299 ) (probably master only)
2020-12-02 23:56:57 +01:00
Even Rouault
fb9eae5d63
Merge pull request #1300 from rouault/complement_1293
...
pi.c: avoid out of bounds access with POC (refs https://github.com/uclouvain/openjpeg/issues/1293#issuecomment-737122836 )
2020-12-02 23:56:39 +01:00
Even Rouault
73fdf28342
opj_j2k_write_sod(): avoid potential heap buffer overflow ( fixes #1299 ) (probably master only)
2020-12-02 14:10:16 +01:00
Even Rouault
00383e162a
pi.c: avoid out of bounds access with POC (refs https://github.com/uclouvain/openjpeg/issues/1293#issuecomment-737122836 )
2020-12-02 14:03:11 +01:00
Even Rouault
38d661a389
opj_t2_encode_packet(): avoid out of bound access of #1297 , but likely not the proper fix
2020-12-02 13:13:26 +01:00
Even Rouault
18b1138fbe
Merge pull request #1295 from rouault/fix_1293
...
opj_j2k_setup_encoder(): validate POC compno0 and compno1 (fixes #1293 )
2020-12-02 10:05:39 +01:00
Even Rouault
630b485f86
Merge pull request #1296 from rouault/workaround_1294
...
opj_t2_encode_packet(): avoid out of bound access of #1294 , but likely not the proper fix
2020-12-02 10:05:31 +01:00
Even Rouault
c9380ed0f8
opj_j2k_setup_encoder(): validate POC compno0 ( fixes #1293 )
2020-12-01 19:56:44 +01:00
Even Rouault
fbd30b064f
opj_t2_encode_packet(): avoid out of bound access of #1294 , but likely not the proper fix
2020-12-01 19:51:35 +01:00
Even Rouault
6daf5f3e1e
Encoder: avoid global buffer overflow on irreversible conversion when too many decomposition levels are specified ( fixes #1286 )
2020-11-30 23:29:06 +01:00
Even Rouault
1aa3c60859
Decoding: deal with some SPOT6 images that have tiles with a single tile-part with TPsot == 0 and TNsot == 0, and with missing EOC
2020-11-30 17:53:04 +01:00
yuan
4f487798ba
Free p_tcd_marker_info to avoid memory leak
2020-11-26 00:22:49 +08:00
yuan
649298dcf8
Encoder: grow again buffer size in opj_tcd_code_block_enc_allocate_data() ( fixes #1283 )
2020-11-25 20:41:39 +08:00
Even Rouault
15cf3d9581
Encoder: grow again buffer size in opj_tcd_code_block_enc_allocate_data() ( fixes #1283 )
2020-11-23 18:14:02 +01:00
Even Rouault
eaa098b59b
Encoder: grow buffer size in opj_tcd_code_block_enc_allocate_data() to avoid write heap buffer overflow in opj_mqc_flush ( fixes #1283 )
2020-11-23 13:49:05 +01:00
Even Rouault
67ec360f48
Fix typo in internal function name
2020-11-23 13:38:27 +01:00
Even Rouault
491299eb07
Merge pull request #1253 from rouault/floating_point_irreversible_encoding
...
Single-threaded performance improvements in forward DWT for 5-3 and 9-7 (and other improvements)
2020-10-09 13:25:27 +02:00
Even Rouault
0863ccf291
Encoder: avoid uint32 overflow when allocating memory for codestream buffer ( fixes #1243 )
2020-09-16 11:27:53 +02:00
Even Rouault
172c8ae5cf
Merge pull request #1260 from sebras/fix-issue-1259
...
openjp2: Plug image leak when failing to allocate codestream index.
2020-06-22 22:35:44 +02:00
Sebastian Rasmussen
b028e8d1ce
openjp2: Plug image leak when failing to allocate codestream index.
...
This fixes issue #1259 .
2020-06-23 03:42:25 +08:00
Sebastian Rasmussen
79b199a8fe
openjp2: Plug memory leak when setting data as TLS fails.
...
Previously the Tier 1 handle was not freed when setting it as
TLS failed.
This fixes issue #1257 .
2020-06-23 03:21:31 +08:00
Sebastian Rasmussen
93b9f7236c
openjp2: Error out if failing to create Tier 1 handle.
...
Previously when the handle failed to be created (e.g. when
opj_calloc returned NULL due to low memory), the code still
assumed that the t1 handle pointer was valid and dereferenced
NULL, causing a crash. After this commit OpenJPEG will instead
error out under this condition.
This fixes issue #1255 .
2020-06-23 02:32:31 +08:00
szukw000
25fb144c42
Testing for invalid values of width, height, numcomps ( #1254 )
2020-06-10 17:40:50 +02:00
Even Rouault
1c5627ee74
T1 encoder: speed-up by aggressive inlining and more cache friendly data organization
...
~ 9% speed improvement seen on 10980x10980 uint16 image, T36JTT_20160914T074612_B02.tif
opj_compress time from 17.2s to 15.8s
2020-05-24 15:38:48 +02:00
Even Rouault
1e931fdb36
Forward DWT 9-7: major speed up by vectorizing vertical pass
...
`bench_dwt -I -encode` times goes from 8.6s to 2.1s
2020-05-23 01:01:05 +02:00
Even Rouault
a38e970fa5
Forward DWT 5-3: major speed up by vectorizing vertical pass
...
`bench_dwt -encode` times goes from 7.9s to 1.7s
2020-05-23 01:01:05 +02:00