summaryrefslogtreecommitdiff
path: root/src/lib
AgeCommit message (Collapse)Author
2017-07-28Fix null pointer dereference in opj_j2k_add_mct() (#895)Even Rouault
Fixes openjeg-crashes-2017-07-27/issue879-poc1.j2k of #895
2017-07-28Avoid use-after-free when a MCT marker is found after a MCC one (#895)Even Rouault
Fixes openjeg-crashes-2017-07-27/issue880-poc2.j2k of #895
2017-07-27Avoid undefined shift behaviour if bit depth == 32 (#895)Even Rouault
Fixes openjeg-crashes-2017-07-27/id:000000,sig:11,src:003798,op:ext_AO,pos:128.jp2
2017-07-27opj_j2k_update_image_data / opj_tcd_update_tile_data: fix unaligned ↵Even Rouault
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
2017-07-27opj_pi_next_rpcl / opj_pi_next_pcrl / opj_pi_next_cprl: avoid int overflow ↵Even Rouault
(#895) Fixes int overflow on openjeg-crashes-2017-07-27/id:000000,sig:08,src:000879,op:flip2,pos:128.jp2
2017-07-27opj_jp2_check_color(): replace assertion regarding mtyp by runtime check ↵Even Rouault
(#672, #895) Fixes test case openjeg-crashes-2017-07-27/id:000000,sig:06,src:000001,op:flip1,pos:808.jp2 of #895
2017-07-27Avoids undefined shift behaviour in m_dc_level_shift computationEven Rouault
Fixes warning found on clusterfuzz-testcase-minimized-5146316340461568 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2495 Credit to OSS Fuzz
2017-07-26Fix various undefined shift behaviour in pi.cEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2496 Credit to OSS Fuzz
2017-07-26Avoid potential undefined shift behaviour in opj_bio_read() from ↵Even Rouault
opj_t2_read_packet_header() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2485 Credit to OSS Fuzz
2017-07-26T1 decoder: check code stream errors when predictable termination is enabled ↵Even Rouault
and emit a warning when errors are found
2017-07-26Spelling fixes (patch by ka7, #890, rebased on top of master)Even Rouault
2017-07-26Fix assertion / memory leak in opj_j2k_merge_ppt() on corrupted images (#939)Even Rouault
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.
2017-07-26Avoid division by zero in opj_pi_next_rpcl, opj_pi_next_pcrl, ↵Even Rouault
opj_pi_next_cprl (#938) Fixes crash on id_000004,sig_06,src_000679,op_arith8,pos_49,val_-17
2017-07-26Avoid index out of bounds access to pi->include[] (#938)Even Rouault
Fix id:000098,sig:11,src:005411,op:havoc,rep:2 test case
2017-07-26Avoid division by zero in opj_pi_next_rpcl, opj_pi_next_pcrl and ↵Even Rouault
opj_pi_next_cprl (#938) 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
2017-07-13install static librariesJeroen
2017-07-06Comment fixEven Rouault
2017-07-05Remove unused m_DA_x0, m_DA_y0, m_DA_x1, m_DA_y1 members from opj_j2k_dec ↵Even Rouault
structure
2017-07-03opj_j2k_read_header_procedure(): validate marker size to avoid excessive ↵Even Rouault
memory allocation attempt
2017-07-03Merge pull request #954 from jeroen/staticEven Rouault
build both shared and static library
2017-06-30IDWT 5x3: fix bug in AVX2 implementation (#953, #957)Even Rouault
2017-06-26Merge pull request #957 from rouault/idwt_53_improvementsEven Rouault
IDWT 5x3 single-pass lifting and SSE2/AVX2 implementation
2017-06-21Fix mingw related warningsEven Rouault
2017-06-21Fix clang warning about extraneous parenthesesEven Rouault
2017-06-21IDWT 5x3: generalize SSE2 version for AVX2Even Rouault
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.
2017-06-21dwt.c: small cleanupEven Rouault
2017-06-20Enable __SSE__ / __SSE2__ with Visual StudioEven Rouault
2017-06-20Improve performance of inverse DWT 5x3 (#953)Even Rouault
* 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.
2017-06-20Add bench_dwt program (compiled only if BUILD_BENCH_DWT=ON)Even Rouault
2017-06-17Remove OPJ_NOSANITIZE in opj_bio_read() and opj_bio_write() (#761)Even Rouault
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.
2017-06-17Fix astyle issueEven Rouault
2017-06-17Fix warnings with recent GCC versionsEven Rouault
2017-06-16only build both static and dynamic on non-windowsJeroen Ooms
2017-06-16build both shared and static libraryJeroen Ooms
2017-06-13Merge branch 't1_flag_optimizations'Even Rouault
2017-06-12Packet header writing: set empty packet header bit to 0 when appropriate ↵fix_bypass_pterm_termall_and_lossless_decomposition_issueEven Rouault
(small optimization)
2017-06-12Encoder: fix packet writing of empty sub-bands (#891, #892)Even Rouault
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.
2017-06-09T1: fix BYPASS/LAZY, TERMALL/RESTART and PTERM/ERTERM encoding modes. (#674)fix_bypass_pterm_termallEven Rouault
There were a number of defects regarding when and how the termination of passes had to done and the computation of their rate.
2017-06-02opj_t1_dec_sigpass_raw/opj_t1_dec_refpass_raw: harmonize style with mqc methodsEven Rouault
2017-06-02MQC/RAW decoder: use an artificial 0xFF 0xFF terminating marker.Even Rouault
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.
2017-06-02Fix documentation of opj_t1_decode_cblks()Even Rouault
2017-06-02Simplify VSC handling: instead of masking out bits when reading the 4th row.Even Rouault
Do not set them when updating flags of the 1st row
2017-06-02Force inlining of mqc decoding and pass steps through heavy use of macros, ↵Even Rouault
so as to get better register allocation
2017-06-02t1_generate_luts.c: fix compiler warningsEven Rouault
2017-06-02Optimize opj_t1_update_flags()Even Rouault
2017-06-02T1: remove use of neghalf variable. It is useless since bpno is always > 0Even Rouault
2017-06-02T1: avoid pointer indirection for mqc and raw members of opj_t1_tEven Rouault
2017-06-02T1: remove flags_stride variable from opj_t1_tEven Rouault
2017-06-02Inline opj_raw_decode()Even Rouault
2017-06-02T1: loop unrolling in dec_sigpass_raw and dec_refpass_rawEven Rouault