<br/>
<h1>Changelog from Git</h1><br/><br/>
<div class='changelog'>
-<pre class='wrap'>commit 68832af20e3b3710424947e12762b6b52d3b6ac0
+<pre class='wrap'>commit 113e0976e232ac2110d50405f8629787f3f53cfc
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-30 15:22:24 +0200
+Date: 2017-09-21 14:14:32 +0200
- opj_tcd_dc_level_shift_decode: avoid int32 overflow when prec == 31. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2799. Credit to OSS Fuzz
+ Comment dead code (Coverity CID 94681)
-commit 517bf6fd86dae18b62390a03533d30da0e5bb701
+commit 39082fc6654553f43f6f3a73e0eeaedebc4bdf9f
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 21:11:23 +0200
+Date: 2017-09-21 14:13:16 +0200
- src/bin/jpwl/convert.c: fix memleak (fix suggested by maddin200, #631)
+ Workaround Coverity CID 113061
-commit 51eb86d8f7a6297a4f0e8ca44977b72532de0353
+commit 7711307d865d46ca1bb8bb152071178b10066d05
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 19:43:23 +0200
+Date: 2017-09-21 14:10:49 +0200
- Fix warnings in pi.c raised by VS11 analyze (#190)
+ Workaround Coverity CID 169392
-commit 397f62c0a838e15d667ef50e27d5d011d2c79c04
+commit 19e157871ff28bb5e8296f9e9f9aee6a17a37ace
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 19:13:49 +0200
+Date: 2017-09-21 14:06:03 +0200
- Fix write heap buffer overflow in opj_mqc_byteout(). Discovered by Ke Liu of Tencent's Xuanwu LAB (#835)
+ opj_j2k_get_default_thread_count(): validate value of OPJ_NUM_THREADS to fix Coverity 179465 and 179463
-commit 11445eddad7e7fa5b273d1c83c91011c44e5d586
+commit 68e596dada2ee38a66b01494e5a425e623688300
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 19:03:13 +0200
+Date: 2017-09-21 13:54:14 +0200
- opj_pi_update_decode_poc(): limit layno1 to the number of layers (CVE-2016-1626 and CVE-2016-1628, #850)
-
- This has been recently fixed in a less elegant way per
- 80818c39f5bfbac37768fcee95b0ffeceaa77264
-
-commit 3fbe71369019df0b47c7a2be4fab8c05768f2f32
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 18:38:16 +0200
-
- opj_tcd_get_decoded_tile_size(): fix potential UINT32 overflow (#854, CVE-2016-5152)
-
- Fix derived from https://pdfium.googlesource.com/pdfium.git/+/d8cc503575463ff3d81b22dad292665f2c88911e/third_party/libopenjpeg20/0018-tcd_get_decoded_tile_size.patch
-
-commit 5a3e7aaf339943bc988adbada39a1fc8f5046899
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 17:56:12 +0200
-
- color_cielab_to_rgb(): reject images with components of different dimensions to void read heap buffer overflow (#909)
-
-commit 784d4d47e97b5d0fccccbd931349997a0e2074cc
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 17:51:10 +0200
-
- Fix breakage of 2fa0fc61f2d546c8b67e7c5a9cbc61d98e1f7af0 (#970)
-
-commit 2fa0fc61f2d546c8b67e7c5a9cbc61d98e1f7af0
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 17:28:55 +0200
-
- imagetopnm(): make sure the alpha component has same dimension as other components to avoid read heap buffer overflow (#970)
+ Fix copy&paste error (Coverity CID 169394)
-commit db9ef99f6dd054a84fa8382c02869fb0656abfc8
+commit 16b701659d7d9f72aade1d695818a645e2f603a6
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 16:34:35 +0200
+Date: 2017-09-20 01:06:02 +0200
- opj_t1_decode_cblk(): avoid undefined shift behaviour. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2487. Credit to OSS Fuzz
+ opj_decompress: add a warning when -d and -t are used together (#693)
-commit f6551f822fe020843299bd807ec6989abd070b2c
+commit b8c4b450c4b5bec649463573f57235c4f41c57cd
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 16:29:11 +0200
+Date: 2017-09-20 00:55:22 +0200
- opj_t1_clbl_decode_processor(): avoid undefined behaviour if roishift >= 31. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2506. Credit to OSS Fuzz
+ Use a #define J2K_MAX_POCS 32 to avoid hard-coded constant (#349)
-commit 9906fbf737692486cebabe98169988d818e2e66a
+commit 9cba05762ded66b803df94b00adbd5a97727da95
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 16:22:36 +0200
+Date: 2017-09-20 00:43:54 +0200
- Avoid assertion in opj_j2k_merge_ppt() in case premature EOC is encountered in opj_j2k_read_tile_header(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2785. Credit to OSS Fuzz
+ Avoid index-out-of-bounds access when invoking opj_compress with -n 11 or higher. But not a proper fix itself (refs #493)
-commit 71b4f5b124d14ed609763b11e19d2d480bc32f58
+commit 8df07d5866c9e3517bf04a7abee4a07a04735df4
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-29 15:52:11 +0200
+Date: 2017-09-19 18:35:52 +0200
- opj_pi_next_pcrl(): avoid undefined shift behaviour. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2787. Credit to OSS Fuzz
+ Avoid relying on operator precedence (raised by cppcheck)
-commit d6654d906c1ae66590b6d600458a91f1ee923de5
+commit c22ea12219c711031ef9b5823f2d9eb1081261e9
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-28 22:15:47 +0200
+Date: 2017-09-19 18:35:31 +0200
- opj_int_ceildiv(): fix int32 overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2494. Credit to OSS Fuzz
+ Workaroudn cppcheck (correct) warning about same code in then and else branches
-commit 361c4506fdfb9b6f0e41d86d5d0ea1efb5704ecf
+commit c84e594cffb181b96f522becf1ba0302e2cc6da7
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-28 22:06:26 +0200
+Date: 2017-09-19 18:35:07 +0200
- opj_tcd_dc_level_shift_decode(): avoid int overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2516. Credit to OSS Fuzz
+ Fix badly named variable in function prototype (raised by cppcheck)
-commit 7bdbe490cba9990916f94a40379cc787434340ff
+commit 82ab7effe3e65b989ee8e97719ceca71908b16ed
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-28 21:55:22 +0200
+Date: 2017-09-19 18:34:49 +0200
- Fix null pointer dereference in opj_jp2_apply_pclr(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2558. Credit to OSS Fuzz
+ Remove redundant test (raised by cppcheck)
-commit 16aeb9282f6b3877aa8365c461ba8d3d1338adae
+commit ce8edf9bffb8caae5480b862a04b66e0e355394b
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-28 21:39:30 +0200
+Date: 2017-09-19 18:25:55 +0200
- Fix null pointer dereference in opj_j2k_add_mct() (#895)
-
- Fixes openjeg-crashes-2017-07-27/issue879-poc1.j2k of #895
+ Replace C++ style comments by C ones
-commit c5bf5ef4d6552e9159aaad29cb27826acd1a3389
+commit d415723fd9f2ee415e506e94ee8be8127680fdcd
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-28 21:29:55 +0200
+Date: 2017-09-19 18:22:07 +0200
- Avoid use-after-free when a MCT marker is found after a MCC one (#895)
-
- Fixes openjeg-crashes-2017-07-27/issue880-poc2.j2k of #895
+ Replace C++ style comments by C ones
-commit e03e9474667e5117341351699f0b1dbb06f93346
+commit ce199f42e77f972d6ee782b63492f6d861891053
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-27 22:29:17 +0200
+Date: 2017-09-19 12:48:12 +0200
- Avoid undefined shift behaviour if bit depth == 32 (#895)
-
- Fixes openjeg-crashes-2017-07-27/id:000000,sig:11,src:003798,op:ext_AO,pos:128.jp2
+ src/bin/jp3d/convert.c: add missing fclose() in error code path (#1018)
-commit 820fcfe8bb101a2862c076b02c9b6b636ce39d2f
+commit fdef69b43ce5222ac0f2a87f2fad1442ece340e8
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-27 19:34:54 +0200
+Date: 2017-09-19 12:46:20 +0200
- opj_j2k_update_image_data / opj_tcd_update_tile_data: fix unaligned load/store (#895)
-
- When components don't have the same width, unaligned load/store are possible.
-
- Fixes openjeg-crashes-2017-07-27/id:000000,sig:11,src:001342,op:flip4,pos:162.jp2 of #895
+ Fix warnings and errors when compiling with a c++ compiler (#1021)
-commit 6c4e5bacb9d9791fc6ff074bd7958b3820d70514
+commit 18f6696372f4c32334385f8dcc8d39ad8ac24601
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-27 19:22:14 +0200
+Date: 2017-09-19 12:13:34 +0200
- opj_pi_next_rpcl / opj_pi_next_pcrl / opj_pi_next_cprl: avoid int overflow (#895)
-
- Fixes int overflow on openjeg-crashes-2017-07-27/id:000000,sig:08,src:000879,op:flip2,pos:128.jp2
+ Fix compilation with AppleClang 8.1.0.8020042 (#1020)
-commit 178194c093422c9564efc41f9ecb5c630b43f723
+commit 3dfc6ca2bcf06fd1adb6b6b4cecc6c092f08ba0b
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-27 18:51:51 +0200
+Date: 2017-09-17 12:17:49 +0200
- opj_jp2_check_color(): replace assertion regarding mtyp by runtime check (#672, #895)
-
- Fixes test case openjeg-crashes-2017-07-27/id:000000,sig:06,src:000001,op:flip1,pos:808.jp2
- of #895
+ Build: make sure that -DBUILD_SHARED_LIBS:bool=off is honoured to build only the static lib (#1019)
-commit d6fa30099797c68c6a67decf58571dd59dbf734b
+commit 28094e1ebfa420f9a0bdc7a11b8d4ee5f154db35
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 23:25:38 +0200
+Date: 2017-09-08 10:56:49 +0200
- Avoids undefined shift behaviour in m_dc_level_shift computation
-
- Fixes warning found on clusterfuzz-testcase-minimized-5146316340461568
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2495
-
- Credit to OSS Fuzz
+ opj_tcd_mct_decode(): avoid heap buffer overflow when components have not the same number of resolutions. Also fixes an issue with subtile decoding. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3331. Credit to OSS Fuzz
-commit a88cbb6a0b3539461dfb29922102953b7a7fc3a7
+commit 33167ddc13fd20313ccfcdc64141000407b68b8f
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 22:53:59 +0200
+Date: 2017-09-08 09:53:52 +0200
- Fix various undefined shift behaviour in pi.c
-
- Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2496
- Credit to OSS Fuzz
+ opj_j2k_update_image_data(): restrict optimized path
-commit 6c5fe9407b7768eb2ac55b83511bc103551d207a
+commit b73ce715d2a484d7355639d863d0418a0e5b8858
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 22:22:44 +0200
+Date: 2017-09-08 09:16:51 +0200
- Avoid potential undefined shift behaviour in opj_bio_read() from opj_t2_read_packet_header()
-
- Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2485
- Credit to OSS Fuzz
-
-commit dbf527bf2a53bc88e6cf1373991002ec0e8e22a1
-Merge: 5e795d9 94c4b73
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-07-26 22:05:32 +0200
+ Use opj_image_data_free() where appropriate (adapted from https://github.com/uclouvain/openjpeg/pull/1015/commits/dab9db0723a5bb9f3d745f9dd7a0b8b3b18b8054, #1014)
- Merge pull request #800 from rouault/tier1_optimizations_multithreading_pterm_check
-
- Implement predictive termination check
-
-commit 94c4b7300cc515330bf798bb45eb0d68e2c84aa0
+commit 5abd86b14bb26d1882ee1c07b03f809f85162a5d
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 21:39:50 +0200
+Date: 2017-09-07 18:01:33 +0200
- T1 decoder: check code stream errors when predictable termination is enabled and emit a warning when errors are found
+ Properly fix cc893a4ebfaf8c42cf1221ac82c83df91e77340b to avoid heap-buffer-overflow when numcomps < 3
-commit 5e795d90a1e47616e0c7a2e39381c13ccf7fd6dd
+commit 51a1dcaa6ed5713520dca36fc58cd9240c08b7ca
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 21:06:38 +0200
+Date: 2017-09-07 17:52:59 +0200
- Spelling fixes (patch by ka7, #890, rebased on top of master)
+ Avoid malloc poisoning issue when including <pthread.h> of uclibc (#1013)
-commit 2be20ce7d9996e960d79f3ad6ec439a9895849ed
+commit cc893a4ebfaf8c42cf1221ac82c83df91e77340b
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 21:04:01 +0200
+Date: 2017-09-07 15:32:54 +0200
- Reformat src/bin/wx/OPJViewer/source/OPJThreads.cpp src/bin/wx/OPJViewer/source/imagjpeg2000.cpp wrapping/java/openjp2/JavaOpenJPEG.c
+ opj_tcd_mct_decode(): fix checks to verify MCT can be done safely. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3305 (master only)
-commit 94cc97c58acfa574e734fac5eb673c516c0ac469
+commit c67e1cd73f6c1fca081f5445af4f65b240c40edc
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 20:13:09 +0200
+Date: 2017-09-06 17:33:38 +0200
- opj_decompress: fix null pointer dereference on comps[].data on id_000167,sig_11,src_006079,op_havoc,rep_4 (#939)
+ Fix invalid access out of bounds, and bad behaviour, when calling repeatdly opj_get_decoded_tile() on an image with a color palette
-commit 8d2e69e37d01bf6a0440d3109d92235c3c586ffe
+commit 297f202104fc0ff6b0627e15e7e6883c915f80bf
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 19:49:38 +0200
+Date: 2017-09-06 16:49:28 +0200
- Fix assertion / memory leak in opj_j2k_merge_ppt() on corrupted images (#939)
+ Fix 2.2.0 regression when reading codestream with reperated calls to opj_get_decoded_tile() where tile parts of a same tile are not consecutive
- Fixes issue on id:000020,sig:06,src:001958,op:flip4,pos:149 that has two
- SOT markers for the same tile with the same tile part number, causing
- opj_j2k_merge_ppt() to be called several times.
+ This check was introduced per #939, but relied on the incorrect assumption
+ we decode all the tile parts of all tiles.
-commit 5c5319984b81e2aa32d1d83abdef0cdb8dbe7b18
+commit 003759a4829f3f1baa5a2292956618fecf314818
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 18:05:56 +0200
+Date: 2017-09-06 15:59:19 +0200
- Avoid division by zero in opj_pi_next_rpcl, opj_pi_next_pcrl, opj_pi_next_cprl (#938)
-
- Fixes crash on id_000004,sig_06,src_000679,op_arith8,pos_49,val_-17
+ Fix null pointer dereference on partial tile decoding when they are empty. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3297 (master only)
-commit 80818c39f5bfbac37768fcee95b0ffeceaa77264
+commit e656822f927c869f31f2685c67644eacb75fc5d2
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 12:24:26 +0200
+Date: 2017-09-05 23:32:03 +0200
- Avoid index out of bounds access to pi->include[] (#938)
+ Add knownfailures-Ubuntu12.04-gcc4.6.3-x86_64-Release-3rdP.txt
- Fix id:000098,sig:11,src:005411,op:havoc,rep:2 test case
-
-commit d27ccf01c68a31ad62b33d2dc1ba2bb1eeaafe7b
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-26 11:30:56 +0200
-
- Avoid division by zero in opj_pi_next_rpcl, opj_pi_next_pcrl and opj_pi_next_cprl (#938)
+ For some reason, the OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
+ configuration fails once PR1010 has been merged in master
+ ( https://travis-ci.org/uclouvain/openjpeg/jobs/272219011 ) whereas (almost) the same
+ code in my branch didn't fail per https://travis-ci.org/rouault/openjpeg/jobs/271738113
- Fixes issues with id:000026,sig:08,src:002419,op:int32,pos:60,val:+32 and
- id:000019,sig:08,src:001098,op:flip1,pos:49
+ The errors we get are the same as with the other x86_64 compilers, so nothing alarming here.
-commit 39e962a0ca5e53722f6badda8e93681aad412cf1
-Merge: 60f8ddf 90ced71
+commit 968e36bbd989fdf789c6a02c80c747346bb851c5
+Merge: 3a382d3 579b893
Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-07-13 13:33:21 +0200
+Date: 2017-09-05 22:18:58 +0200
- Merge pull request #969 from jeroen/staticlibs
+ Merge pull request #1010 from rouault/subtile_decoding_stage3
- install static libraries
+ Subtile decoding: memory use reduction and perf improvements
-commit 90ced71601f05e87b4fa922261554eeeb11118b9
-Author: Jeroen <jeroenooms@gmail.com>
-Date: 2017-07-13 11:34:15 +0200
-
- install static libraries
-
-commit 60f8ddf577b20ccbb3dc0559b624115b9ba522ba
+commit 579b8937eae7e6b6868b8b5c6286a742c10a5130
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-06 12:11:37 +0200
+Date: 2017-09-04 17:35:52 +0200
- Comment fix
+ Replace uses of size_t by OPJ_SIZE_T
-commit a38c4496b631bb5d3f8d5ea42d394544523a9bc6
+commit 3a382d312306f45853b3ad78b770754d4bc7e440
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-05 21:33:42 +0200
+Date: 2017-09-03 00:30:36 +0200
- Remove unused m_DA_x0, m_DA_y0, m_DA_x1, m_DA_y1 members from opj_j2k_dec structure
+ opj_getopt.c: avoid crash on invalid input (#301)
-commit 1a8eac6a90ca61f3703f9b97afc2ec4918f0ab55
+commit e5ab1682a1bf52c203b16720011d869901929ac9
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-03 14:14:03 +0200
+Date: 2017-09-02 09:10:53 +0200
- Add tests/fuzzers for OSS Fuzz (#965)
+ Improve error message when specifying a too big cp_reduce parameter (#474)
-commit c308de39edc1697efbd5c10dc4852a58f9b86558
+commit c1e0fba0c46cb528a08b89b986e86ff0f4792558
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-03 14:33:57 +0200
-
- opj_j2k_read_header_procedure(): validate marker size to avoid excessive memory allocation attempt
+Date: 2017-09-01 22:09:58 +0200
-commit 5736b1a3683261a5b31fc19a691731dc9fce5920
-Merge: ecbfcbc a0839cc
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-07-03 12:03:29 +0200
-
- Merge pull request #954 from jeroen/static
-
- build both shared and static library
-
-commit ecbfcbc2764ff1b09e693d57e3ef5764518f1e1c
-Merge: e673c8b 96d757c
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-07-01 13:51:52 +0200
-
- Merge pull request #964 from rouault/remove_useless_knownfailures
-
- Remove useless knownfailures (since LAZY encoding is fixed)
-
-commit e673c8bd4da9f0414da472ac5f3d8e03e5102982
-Merge: 8fa405e b992376
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-07-01 12:54:39 +0200
+ opj_v4dwt_decode_step1_sse(): rework a bit to improve code generation
- Merge pull request #963 from rouault/travis_avx2
-
- Enable AVX2 at runtime on Travis-CI and AppVeyor
-
-commit b9923764da198742c635ad7dff9de158c3dbb60d
+commit 676d4c807f0162877f9f32e4cdda2e242788d410
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-01 04:15:36 +0200
+Date: 2017-09-01 21:36:35 +0200
- Add tools/travis-ci/knownfailures-Ubuntu14.04-clang3.8.0-x86_64-Release-3rdP.txt (copied from knownfailures-Ubuntu12.04-clang3.9.0-x86_64-Release-3rdP.txt)
+ opj_j2k_update_image_data(): avoid allocating image buffer if we can just reuse the tile buffer one
-commit f194ff32ac3fd5bab88607ea6bf09a73adb99758
+commit 4c7effa6bc37beb2a8e2f29ecf5845cde93f6b88
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-01 02:53:55 +0200
+Date: 2017-09-01 21:17:26 +0200
- appveyor.yml: add a /arch:AVX2 config on Windows
-
- Try running the tests if the CPU supports AVX2.
+ opj_t1_clbl_decode_processor(): use SSE2 in subtile decoding code path, for irreversible
-commit 96d757cb8e6c3fb0e133817e5057ee5eae6a594d
+commit 2c365fe0ecc8c6597db491a953a91308b1d0d4b1
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-01 04:24:46 +0200
+Date: 2017-09-01 20:43:39 +0200
- Remove useless knownfailures (since LAZY encoding is fixed)
+ Replace error message 'Not enough memory for tile data' by 'Size of tile data exceeds system limits' (refs https://github.com/uclouvain/openjpeg/pull/730#issuecomment-326654188)
-commit 69a001819c9ac36bb3210e475d099cc2abbbf89f
+commit 559d16e8f43a0cd090d217d7d111820989299b85
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-07-01 01:46:55 +0200
+Date: 2017-09-01 16:31:13 +0200
- .travis.yml: try to run tests in -mavx2 mode if the CPU supports it
-
- And modify settings so as to hae a AVX2 compatible CPU
+ opj_t1_decode_cblk(): move some code to codeblock processor for (theoretical) better multi-threading in subtile decoding
-commit 8fa405ee15b5151df40d8d96460257ee5b510135
+commit 7017e67a01c378a7a1ee5e34dd544c793b5c23e4
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-30 00:03:05 +0200
+Date: 2017-09-01 16:31:10 +0200
- IDWT 5x3: fix bug in AVX2 implementation (#953, #957)
+ sparse_array: optimizations for lossy case
-commit 6239ed7be41d370c537ca43e198cf2fdc6eb9a60
+commit b428b8c7e7227cf96c83229df4d7bf009b6d2172
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-26 13:13:26 +0200
-
- INSTALL.md: add section discussing how to enable CPU specific optimizations
-
-commit 533fa2fdee4f69a5d7bb8f0b1c0a8f432dad334f
-Merge: 6026786 4fe7620
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-06-26 12:45:34 +0200
+Date: 2017-09-01 20:01:39 +0200
- Merge pull request #957 from rouault/idwt_53_improvements
+ opj_tcd_rateallocate(): make sure to use all passes for a lossless layer (#1009)
- IDWT 5x3 single-pass lifting and SSE2/AVX2 implementation
-
-commit 60267860698b86e215bee584857e6b4f2f08b693
-Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 13:20:35 +0200
+ And save a useless loop, which should be a tiny faster.
- Style fix
-
-commit 93aca84731bfffb20e968af10055a8cd0401806e
+commit 7aa071aa273aa0b8fafbf055e5eb99b9cb8600a8
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 12:54:40 +0200
+Date: 2017-09-01 19:49:01 +0200
- Fix mingw related warnings
+ opj_j2k_setup_encoder(): emit warnings if tcp_rates are not decreasing or tcp_distoratio are not increasing (#1009)
-commit cdd3e83bae71e1e023c4c2bdd5e52d082576e550
+commit a538815c774db94a0d3fa323c9ca4f456ef04903
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 12:49:01 +0200
+Date: 2017-09-01 19:27:56 +0200
- Fix clang warning about extraneous parentheses
+ opj_j2k_setup_encoder(): avoid potential int overflow in computations related to max_cs_size
-commit 4fe7620d4adc131c3ff93bb47bb8d138d69c9cbd
+commit 09929bb615bd6bf2a9f7703fc7b04a12096b091e
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 12:28:51 +0200
+Date: 2017-09-01 19:16:35 +0200
- .travis.yml: add a configuration to test compilation of AVX2 (but disable tests since Travis doesn't have AVX2 compatible machines)
+ opj_compress help: revert 32572617765cb9d77302384653a48d793b8f657f and indicate 1 again as being the value to get lossless for -r. In opj_j2k_setup_encoder(), make sure that ll rates[] <= 1.0 are set to 0. Document 0 as being lossless for -q / tcp_distoratio (#1009)
-commit fd0dc535ad9ae0d369d1039aaf56235583ca64ea
+commit 32572617765cb9d77302384653a48d793b8f657f
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 12:12:58 +0200
+Date: 2017-09-01 17:32:54 +0200
- IDWT 5x3: generalize SSE2 version for AVX2
-
- Thanks to our macros that abstract SSE use, the functions can use
- AVX2 when available (at compile time)
-
- This brings an extra 23% speed improvement on bench_dwt in 64bit builds
- with AVX2 compared to SSE2.
+ opj_compress help: indicate 0 value, instead of 1, for -r parameter to get lossless encoding (#1009)
-commit f6e3475cc9328e5378e96e72b5adf29fb07c5feb
+commit 8a17be8945f6f8fcae3f9e5c7c4988e971d245ee
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-21 01:07:56 +0200
+Date: 2017-09-01 16:31:08 +0200
- dwt.c: small cleanup
+ opj_v4dwt_decode_step2_sse(): loop unroll
-commit f06cfadef8e2b1ad9008957cc6bc80a27c53f2eb
+commit 83b5a168ec0e89210671d60670c9a1143ce8776b
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-20 18:24:21 +0200
+Date: 2017-09-01 16:31:06 +0200
- Enable __SSE__ / __SSE2__ with Visual Studio
+ opj_dwt_decode_partial_97(): simplify/more efficient use of sparse arrays in vertical pass
-commit fa55b52d19f39765d7f108d654a8f87035a5772f
+commit ae19001ba425a9b396a29fba3417dccc746bd2ef
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-20 17:56:25 +0200
+Date: 2017-09-01 16:31:04 +0200
- Improve performance of inverse DWT 5x3 (#953)
-
- * Use single-pass lifting inverse wavelet transform.
- * For vertical pass, use SSE2 when available so as to process 8 columns
- in parallel. This is the most beneficial improvement, since the
- vertical pass involves a lot of cache trashing.
-
- With the bench_dwt utility with default arguments (16383x16383 image),
- time goes from 4.064 s to 1.212 s.
+ opj_tcd_dc_level_shift_decode(): optimize lossy case
-commit 919ed5f8b8681aeae54ce3884b3ecca56cadc2e0
+commit 470f3ed416a8cc3618b2c04000ea7b4694043f34
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-20 17:56:19 +0200
-
- Add bench_dwt program (compiled only if BUILD_BENCH_DWT=ON)
+Date: 2017-09-01 16:31:02 +0200
-commit 5c56933daf1da88aa6f2a8c8dc5fcc7b1d76cb00
-Merge: 32b20b9 8df2521
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-06-18 00:49:20 +0200
-
- Merge pull request #955 from rouault/remove_opj_nosanitize
-
- Remove OPJ_NOSANITIZE in opj_bio_read() and opj_bio_write() (#761)
+ opj_dwt_decode_partial_1_parallel(): add SSE2 optimization
-commit 8df2521a6015af7f69a378811986ddb0b3bfbd3a
+commit 873004c615b1bed3ce780e869288602af86fdee5
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-17 19:15:00 +0200
+Date: 2017-09-01 16:31:00 +0200
- Remove OPJ_NOSANITIZE in opj_bio_read() and opj_bio_write() (#761)
-
- Commit 29313eb5 introduced those flags to avoid issues with
- -fsanitize=unsigned-integer-overflow
- However it is better just to rewrite the loop to avoid such condition
- to occur.
+ Sub-tile decoding: speed up vertical pass in IDWT5x3 by processing 4 cols at a time
-commit 32b20b93e04d38303f736e975eb5f483fda01ca5
+commit ccac773556070ede24ea3dfbdec47c2b3c5be5c4
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-17 16:37:56 +0200
+Date: 2017-09-01 16:30:58 +0200
- Fix astyle issue
+ Tiny perf improvement in T1 stage for subtile decoding
-commit 5f596cb2833d5ea7a4d04d22af551731bd770f05
+commit 18635df518602265b71da3c70c4d3b774bc3dfc2
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-17 14:10:15 +0200
-
- Fix warning about unused arguments
-
-commit a0839cca24e19f1f0906e30ee1009ce89e4942b4
-Author: Jeroen Ooms <jeroenooms@gmail.com>
-Date: 2017-06-16 13:58:25 +0200
+Date: 2017-09-01 16:30:56 +0200
- only build both static and dynamic on non-windows
+ test_decode_area: accept user bounds in -strip_height mode
-commit 1329b3240aafb1b31328091eb6f7720787b391be
-Author: Jeroen Ooms <jeroenooms@gmail.com>
-Date: 2017-06-16 13:27:19 +0200
-
- build both shared and static library
-
-commit 36dd87cea80ad56e0e3178221aa579a28f02a549
-Merge: 9cbc990 5f1e380
-Author: Antonin Descampe <antonin@descampe.net>
-Date: 2017-06-14 17:23:06 +0200
-
- Merge pull request #928 from RussellMcOrmond/master
-
- Quiet mode for opj_decompress via -quiet long parameter.
-
-commit 9cbc9903c3034d1a101d0521402503ead0abcff0
-Merge: 2609fb8 9a9b069
+commit 82a43d8035ca5f43e198e15faef6c9ac44b39541
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-13 12:09:52 +0200
+Date: 2017-09-01 16:30:54 +0200
- Merge branch 't1_flag_optimizations'
+ Optimize opj_dwt_decode_partial_1() when cas == 0
-commit 2609fb8077125b5b31f1bcc2f98c12ff1e6572d7
+commit 1644665a9105e2d761e8b29f43af602560e6bcf9
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-12 17:15:23 +0100
+Date: 2017-09-01 16:30:52 +0200
- Packet header writing: set empty packet header bit to 0 when appropriate (small optimization)
+ opj_j2k_update_image_data(): avoid zero-ing the buffer if not needed
-commit 73d1510d473b7dcfccfdee57e0e511e6791d5091
+commit b2cc8f7f81242f967b65e76de043e5e31663d793
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-12 11:23:55 +0100
+Date: 2017-09-01 16:30:50 +0200
- Encoder: fix packet writing of empty sub-bands (#891, #892)
-
- There are situations where, given a tile size, at a resolution level,
- there are sub-bands with x0==x1 or y0==y1, that consequently don't have any
- valid codeblocks, but the other sub-bands may be non-empty.
- Given that we recycle the memory from one tile to another one, those
- ghost codeblocks might be non-0 and thus candidate for packet inclusion.
+ Optimize reading/write into sparse array
-commit 81c5311758a0ae1f1aea349a6ee0bca2a238fa79
+commit 0ae3cba3404674bbe2028ea9a801301a4c951b33
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-09 10:47:13 +0200
+Date: 2017-09-01 16:30:48 +0200
- T1: fix BYPASS/LAZY, TERMALL/RESTART and PTERM/ERTERM encoding modes. (#674)
+ Allow several repeated calls to opj_set_decode_area() and opj_decode() for single-tiled images
- There were a number of defects regarding when and how the termination of
- passes had to done and the computation of their rate.
+ * 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 9a9b06911e164bdc854cf6b9c3bc5b6e751bf46d
+commit 5d07d463fdb0a5eeffa90eba1566cc21697011b8
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 19:22:15 +0200
+Date: 2017-09-01 16:30:45 +0200
- opj_t1_dec_sigpass_raw/opj_t1_dec_refpass_raw: harmonize style with mqc methods
+ opj_j2k_decode_tiles(): apply whole single tile image decoding optimization to reading at reduced resolution as well
-commit 532243f1fd9997db63ea7f6b199d21138ccf58a3
+commit 98b93103613c90753fb6c57696f9403f8ea0b1d6
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 16:49:26 +0200
+Date: 2017-09-01 16:30:44 +0200
- MQC/RAW decoder: use an artificial 0xFF 0xFF terminating marker.
+ Various changes to allow tile buffers of more than 4giga pixels
- This saves comparing the current pointer with the end of buffer pointer.
- This results at least in tiny speed improvement for raw decoding, and
- smaller code size for MQC as well.
-
- This kills the remains of the raw.h/.c files that were only used for
- decoding. Encoding using the mqc structure already.
+ 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 9b39fc4bccb3e9e4e9a9f61c4dc672fb7f05d865
+commit 008a12d4fce0a7b1eabc51e04ed339be759646e2
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 14:32:12 +0200
+Date: 2017-09-01 16:30:41 +0200
- Fix documentation of opj_t1_decode_cblks()
+ TCD: allow tile buffer to be greater than 4GB on 64 bit hosts (but number of pixels must remain under 4 billion)
-commit dde6cbabc0cb93102c2091c15d11dec1267d0fd8
+commit 6ce49bf5aebb3c45c464fa82d14cfd4bf7026a28
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 14:25:57 +0200
+Date: 2017-09-01 10:26:18 +0200
- Simplify VSC handling: instead of masking out bits when reading the 4th row.
-
- Do not set them when updating flags of the 1st row
+ Fix undefined shift behaviour in opj_dwt_is_whole_tile_decoding(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3255. Credit to OSS Fuzz
-commit 3d9940a35b8c566c1fb41db56018c91b511a976a
+commit 04b70908a7ada29481d2e1903b76f44a68d4d268
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 11:52:16 +0200
+Date: 2017-08-29 11:40:53 +0200
- Force inlining of mqc decoding and pass steps through heavy use of macros, so as to get better register allocation
+ Use IDWT whole tile decoding if the area of interest equals to the image bounds, taking into account the reduced resolution factor
-commit 7e8b502842075738c9a062a2f06dace3f35dd7cd
+commit 4776b15fa7ec2afa74f65cd471f94513ea08205a
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-02 09:36:25 +0200
+Date: 2017-08-28 18:07:44 +0200
- t1_generate_luts.c: fix compiler warnings
+ Add test for fix of a55c024fc6b917a409b85aeafd7326421c4aea34
-commit 2ba861c37cb5032d1fa90a7c9298f6e08a0f5413
+commit a55c024fc6b917a409b85aeafd7326421c4aea34
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-06-01 19:42:03 +0200
-
- Optimize opj_t1_update_flags()
+Date: 2017-08-28 17:18:33 +0200
-commit 53d46fc7330ed652db66aa37b498fbfa27be625c
-Merge: 6e97d87 a8ca7c5
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-05-23 16:15:55 +0200
-
- Merge pull request #936 from rouault/master_warnings
-
- CMake: add stronger warnings for openjp2 lib/bin by default, and error out on declaration-after-statement
+ Subtile decoding: fix overflows in subband coordinate computation that cause later buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3115. Credit to OSS Fuzz. master only
-commit a8ca7c51f38a4cbdcb4a541137478df03e5eb76d
+commit 8f92fc97913bec7ffa2dc10d062c0cdd19da20e4
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-23 15:12:19 +0200
+Date: 2017-08-28 14:57:49 +0200
- CMake: add stronger warnings for openjp2 lib/bin by default, and error out on declaration-after-statement
+ Make opj_set_decode_area() and opj_decode() take into account opj_set_decoded_resolution_factor() (#1006, affect API use)
- And remove occurences of unused arguments in src/lib/openjp2
+ * Better document usage of opj_set_decode_area(), ie expecting coordinates
+ in full resolution/reference grid even if requesting at a lower resolution
+ factor
+ * Make sure that image->comps[].factor is set by opj_set_decode_area() and
+ opj_decode() from the value specified in opj_set_decoded_resolution_factor()
+ * opj_decompress: add 2 environmenet variables to test alternate ways of
+ using the API, namely USE_OPJ_SET_DECODED_RESOLUTION_FACTOR=YES to use
+ opj_set_decoded_resolution_factor() instead of parameters.cp_reduce, and
+ SKIP_OPJ_SET_DECODE_AREA=YES to not call opj_set_decode_area() if -d is
+ not specified.
-commit 6e97d877b155aff55d1ae1fef4a36fa56d51e472
-Merge: 8728cfb 2d2c368
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-05-23 14:49:38 +0200
-
- Merge pull request #935 from rouault/add_compress_vsc_test
-
- Tests: test opj_compress in VSC mode (related to #172)
-
-commit 2d2c368b19ee59cba7470c94bcc2c06ca6db1d80
+commit 5a4a10120a648848de7522245f8671c3ce285dbc
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-23 13:46:04 +0200
+Date: 2017-08-24 14:38:24 +0200
- Tests: test opj_compress in VSC mode (related to #172)
+ Another cleanup in knownfailures-* files
-commit 8728cfbc799a61dd0600ee04aa64d829937d8710
+commit e0a5d148f7e84d18a52c97bd08b21b1dffa9570a
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-23 13:54:28 +0200
-
- t1.c: fix compiler warnings
-
-commit 5f1e380b5155577864a84c1e64f213b6d9f83334
-Author: Russell McOrmond <russell.mcormond@canadiana.ca>
-Date: 2017-05-16 09:31:07 -0400
+Date: 2017-08-24 14:32:36 +0200
- Fixed formatting issues ASTYLE
+ Remove test steps from specialized knownfailures- that are already in knownfailures-all.txt
-commit 9d8e1ecdeb99b1e4b4ffd19feb152c88fe4f83ba
-Author: Russell McOrmond <russell.mcormond@canadiana.ca>
-Date: 2017-05-15 14:39:54 -0400
-
- Quiet mode for opj_decompress via -quiet long parameter.
-
-commit 83d7a6d4a44833e78321bfd367dc0f822a8d0945
+commit 79aa0b54ddd3e4e3ca09374cb82bd3302a65783a
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-15 14:11:47 +0200
+Date: 2017-08-24 14:31:13 +0200
- MQC: remove disabled MQC_PERF_OPT mode, which brings no performance improvements (see #923)
+ issue104_jpxstream.jp2 decompresses just fine (and like Kakadu). Update md5refs.txt and remove from knownfailures
-commit 4431fa72657b6c4a92c3cf29cfc5c8df69424a0e
+commit c059f431e6262fe5ce296e8137dd478dfe4d1af1
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-15 14:09:51 +0200
-
- Add comments about non successfull attempt of implementing alternate INITDEC, DECODE and BYTEIN procedures (refs #921)
+Date: 2017-08-24 14:09:34 +0200
-commit f7a126af61877cd4623327142521d82a0c19430d
-Merge: 28d2eab 3c2972f
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-05-15 13:08:03 +0200
-
- Merge pull request #926 from rouault/reformat_h_files
-
- Reformat: apply reformattin on .h files (#128)
+ Remove broken.jpc test from known failures, by avoiding too long processing time
-commit 3c2972f924857016bb454201c7e92f25de9105ee
+commit 5146abc02ebd871aa1e737373cdc7654e8e4b07f
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-15 12:21:30 +0200
+Date: 2017-08-24 14:09:31 +0200
- Reformat: apply reformattin on .h files (#128)
+ imagetopgx(): improve performance in 8 bit case (relates to broken.jpc test case)
-commit 28d2eabca79d06378843d1e94fecfb4a5e22178d
-Merge: 0ecac46 cde210b
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-05-15 12:09:45 +0200
+commit fdcd4e6365731cc1015213e424068131bcd1f31f
+Author: Even Rouault <even.rouault@spatialys.com>
+Date: 2017-08-24 13:23:25 +0200
- Merge pull request #919 from rouault/reformat
+ Remove -NR-DEC-p1_06.j2k-156-decode and NR-DEC-p1_06.j2k-164-decode from knownfailures
- Add mechanisms to reformat and check code style, and reformat whole codebase (#128)
+ and make them explicit failures. The result images are empty at the requested resolution
-commit 0ecac46a1db911cbe340c4467000e91cea82c96d
+commit bc71bd1219269057ea18e6acbc77a96ec37aba82
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-11 20:18:42 +0200
+Date: 2017-08-23 18:58:32 +0200
- perf_test.py: implement -i option
+ opj_dwt_decode_partial_97(): perf improvement: limit copy of coefficients at end of horizontal pass to actual range of interest
-commit cde210be392d60fbcd8a3e7cacfa62660a95e8d9
+commit 8180eeace13ffceef5dd7c3f80be156e36181846
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-11 11:21:37 +0200
+Date: 2017-08-21 23:06:53 +0200
- astyle.options: use non deprecated option name
+ test_tile_encoder: fix checks on argc
-commit 563bd8499e63db976ca8358216138647593354bc
+commit c97666f72ba26a7ceb64931963b988a6f8f377f9
Author: Even Rouault <even.rouault@spatialys.com>
-Date: 2017-05-09 15:44:46 +0200
-
- Reformat whole codebase with astyle.options (#128)
+Date: 2017-08-21 19:02:04 +0200
-commit 8650b70e06408d394c1708846b6fc2d86cf14079
-Author: Even Rouault <even.rouault@mines-paris.org>
-Date: 2017-05-09 13:16:53 +0200
-
- Merge pull request #918 from rouault/profile
-
- Add profiling of CPU and memory usage (#912)
+ j2k.c: fix comment, and remove FIXME
...</pre></div>