summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-08Add some more errno to debug 'failed to start J2K encoding'carl-2-rebased-on-masterCarl Hetherington
2020-06-08Fix deprecated cscript bits.Carl Hetherington
2020-06-08Revert "Packet header writing: set empty packet header bit to 0 when ↵Carl Hetherington
appropriate (small optimization)" This reverts commit 2609fb8077125b5b31f1bcc2f98c12ff1e6572d7. I am testing this reversion to see if it fixes problems with DCP playback on various systems (DCP-o-matic bug #1136).
2020-06-08Fix from Aaron to match v1's threshold value.Carl Hetherington
2020-06-08use tolerance to bail out early from rate control : much fasterAaron Boxer
2020-06-08Add some error codes to debug failure in opj_j2k_start_compress.Carl Hetherington
2020-06-08Compile with -fPIC so we can build shared libdcp with static openjp2.Carl Hetherington
2020-06-08Add cscriptCarl Hetherington
2020-05-20Merge pull request #1211 from sebras/masterEven Rouault
Add check to validate SGcod/SPcoc/SPcod parameter values.
2020-05-20Merge pull request #1246 from rouault/write_pltEven Rouault
Add support for generation of PLT markers in encoder
2020-04-21Add support for generation of PLT markers in encoderEven Rouault
* -PLT switch added to opj_compress * Add a opj_encoder_set_extra_options() function that accepts a PLT=YES option, and could be expanded later for other uses. ------- Testing with a Sentinel2 10m band, T36JTT_20160914T074612_B02.jp2, coming from S2A_MSIL1C_20160914T074612_N0204_R135_T36JTT_20160914T081456.SAFE Decompress it to TIFF: ``` opj_uncompress -i T36JTT_20160914T074612_B02.jp2 -o T36JTT_20160914T074612_B02.tif ``` Recompress it with similar parameters as original: ``` opj_compress -n 5 -c [256,256],[256,256],[256,256],[256,256],[256,256] -t 1024,1024 -PLT -i T36JTT_20160914T074612_B02.tif -o T36JTT_20160914T074612_B02_PLT.jp2 ``` Dump codestream detail with GDAL dump_jp2.py utility (https://github.com/OSGeo/gdal/blob/master/gdal/swig/python/samples/dump_jp2.py) ``` python dump_jp2.py T36JTT_20160914T074612_B02.jp2 > /tmp/dump_sentinel2_ori.txt python dump_jp2.py T36JTT_20160914T074612_B02_PLT.jp2 > /tmp/dump_sentinel2_openjpeg_plt.txt ``` The diff between both show very similar structure, and identical number of packets in PLT markers Now testing with Kakadu (KDU803_Demo_Apps_for_Linux-x86-64_200210) Full file decompression: ``` kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp.tif Consumed 121 tile-part(s) from a total of 121 tile(s). Consumed 80,318,806 codestream bytes (excluding any file format) = 5.329697 bits/pel. Processed using the multi-threaded environment, with 8 parallel threads of execution ``` Partial decompresson (presumably using PLT markers): ``` kdu_expand -i T36JTT_20160914T074612_B02.jp2 -o tmp.pgm -region "{0.5,0.5},{0.01,0.01}" kdu_expand -i T36JTT_20160914T074612_B02_PLT.jp2 -o tmp2.pgm -region "{0.5,0.5},{0.01,0.01}" diff tmp.pgm tmp2.pgm && echo "same !" ``` ------- Funded by ESA for S2-MPC project
2020-04-18struct opj_j2k: remove unused fields, and add some documentationEven Rouault
2020-04-17Merge pull request #1244 from rouault/fix_pi_warningsEven Rouault
Fix warnings about signed/unsigned casts in pi.c
2020-04-17color_apply_icc_profile: add checks on the number of components (#1236)szukw000
2020-04-17jp3d/jpwl/mj2/jpip: Fix resource leaks (#1226)Eduardo Barretto
This issues were found by cppcheck and coverity.
2020-04-16Fix warnings about signed/unsigned casts in pi.cEven Rouault
2020-04-16Rename mis-named function opj_tcd_get_encoded_tile_size() to ↵Even Rouault
opj_tcd_get_encoder_input_buffer_size()
2020-04-01Merge pull request #1240 from rouault/fix_crash_opj_decompressEven Rouault
opj_decompress: add sanity checks to avoid segfault in case of decoding error
2020-04-01opj_decompress: add sanity checks to avoid segfault in case of decoding errorEven Rouault
Prevent crashes like: opj_decompress -i 0722_5-1_2019.jp2 -o out.ppm -r 4 -t 0 where 0722_5-1_2019.jp2 is https://drive.google.com/file/d/1ZxOUZg2-FKjYwa257VFLMpTXRWxEoP0a/view?usp=sharing
2020-02-13opj_compress: improve help message regarding new IMF switchEven Rouault
2020-02-13Merge pull request #1235 from rouault/imfEven Rouault
Implement writing of IMF profiles
2020-02-12Implement writing of IMF profilesEven Rouault
Add -IMF switch to opj_compress as well
2020-02-12openjpeg.h: fix values of OPJ_PROFILE_IMF_ constantsEven Rouault
2020-02-10Merge pull request #1234 from rouault/md5_libtiff_4_1Even Rouault
tests: add alternate checksums for libtiff 4.1
2020-02-07tests: add alternate checksums for libtiff 4.1Even Rouault
Fixes #1233 libtiff 4.1 slightly modifies the way it generates files. So add the new expected md5sum. Not super elegant solution admitedly.
2020-01-30Merge pull request #1232 from rouault/fix_1231Even Rouault
opj_tcd_init_tile(): avoid integer overflow
2020-01-30opj_tcd_init_tile(): avoid integer overflowEven Rouault
That could lead to later assertion failures. Fixes #1231 / CVE-2020-8112
2020-01-13tests/fuzzers: link fuzz binaries using $LIB_FUZZING_ENGINE. (#1230)Max Moroz
This was changed some time ago (https://google.github.io/oss-fuzz/getting-started/new-project-guide/) but the build didn't fail as there is a fallback mechanism. The main advantage of the new approach is that for libFuzzer this produces more performant binaries (as `$LIB_FUZZING_ENGINE` expands into `-fsanitize=fuzzer`, which links libFuzzer from the compiler-rt, allowing better optimization tricks). I'm also experimenting with dataflow (https://github.com/google/oss-fuzz/issues/1632) on your project, and the dataflow config doesn't have a fallback (as it's a new configuration), therefore I'm proposing a change to migrate from `-lFuzzingEngine` to `$LIB_FUZZING_ENGINE`.
2020-01-11Merge pull request #1229 from rouault/fix_1228Even Rouault
opj_j2k_update_image_dimensions(): reject images whose coordinates are beyond INT_MAX (fixes #1228)
2020-01-11opj_j2k_update_image_dimensions(): reject images whose coordinates are ↵Even Rouault
beyond INT_MAX (fixes #1228)
2019-11-17Merge pull request #1217 from rouault/fix_ossfuzz_18979Even Rouault
pi.c: avoid integer overflow, resulting in later invalid access to memory in opj_t2_decode_packets()
2019-11-17JPWL: convert: Fix buffer overflow reading an image file less than four ↵Robert Ancell
characters (#1196) Fixes #1068
2019-11-17Merge pull request #1218 from rouault/fix_broken_abi_checkEven Rouault
abi-check.sh: fix false postive ABI error, and display output error log
2019-11-17abi-check.sh: fix false postive ABI error, and display output error logEven Rouault
There is currently a false positive ABI check failure between v2.3.1 and current. It disappears when removing the generated reports of v2.3.1 and recreating them. It is likely that some tooling has evolved since the initial v2.3.1 report generation.
2019-11-17pi.c: avoid integer overflow, resulting in later invalid access to memory in ↵Even Rouault
opj_t2_decode_packets(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18979
2019-10-03opj_tcd_mct_decode()/opj_mct_decode()/opj_mct_encode_real()/opj_mct_decode_r ↵Even Rouault
eal(): proper deal with a number of samples larger than 4 billion (refs #1151)
2019-09-04openjp2/j2k: Validate all SGcod/SPcod/SPcoc parameter values.Sebastian Rasmussen
Previously the multiple component transformation SGcod(C) and wavelet transformation SPcod(H)/SPcoc(E) parameter values were never checked, allowing for out of range values. The lack of validation allowed the bit stream provided in issue #1158 through. After this commit an error message points to the marker segments' parameters as being out of range. input/nonregression/edf_c2_20.jp2 contains an SPcod(H) value of 17, but according to Table A-20 of the specification only values 0 and 1 are valid. input/nonregression/issue826.jp2 contains a SGcod(B) value of 2, but according to Table A-17 of the specification only values 0 and 1 are valid. input/nonregression/oss-fuzz2785.jp2 contains a SGcod(B) value of 32, but it is likewise limited to 0 or 1. These test cases have been updated to consistently fail to parse the headers since they contain out of bounds values. This fixes issue #1210.
2019-09-04openjp2/j2k: Make comments adhere to specification.Sebastian Rasmussen
The function is used to read both SPcod and SPcoc, so all comments should refer to both marker segments' parameter names.
2019-09-03Merge pull request #1164 from sebras/masterEven Rouault
openjp2/j2k: Report error if all wanted components are not decoded.
2019-06-15opj_decompress_fuzzer: remove checks regarding input dimensions (fixes #1079)Even Rouault
2019-05-26test_decode_area.c: assign tdy to *ptileh instead of *ptilew (fixes #1195)Even Rouault
2019-04-26Merge pull request #1185 from Young-X/fixEven Rouault
Fix several potential vulnerabilities
2019-04-25Merge pull request #1192 from rouault/poc_fixesEven Rouault
compression: emit POC marker when only one single POC is requested (f…
2019-04-25Change opj_j2k_check_poc_val() to take into account tile numberEven Rouault
2019-04-25Add test for previous commitEven Rouault
2019-04-25Fix POC in multi-tile scenarios: avoid almost endless loop when a tile has ↵Even Rouault
no POC settings
2019-04-25Add test for previous commitEven Rouault
2019-04-25opj_j2k_check_poc_val(): prevent potential write outside of allocated arrayEven Rouault
2019-04-25opj_j2k_check_poc_val(): fix starting index for checking layer dimensionEven Rouault
The standard mandates that the layer index always starts at zero for every progression.
2019-04-25compression: emit POC marker when only one single POC is requested (fixes #1191)Even Rouault