Antonin Descampe
3aaeea7ce8
renamed USE_THREAD to OPJ_USE_THREAD
...
renaming to be consistent with previous OPJ CMake options
2016-09-16 17:54:12 +02:00
Matthieu Darbois
6e7616c83c
Remove TODO for overflow check ( #842 )
...
The check was already done. It’s been simplified.
Reformat to get consistent style throughout the functions.
2016-09-15 23:51:34 +02:00
Matthieu Darbois
9a07ccb3d0
Add overflow checks for opj_aligned_malloc ( #841 )
...
See
https://pdfium.googlesource.com/pdfium/+/b20ab6c7acb3be1393461eb650ca8fa4660c937e/third_party/libopenjpeg20/0020-opj_aligned_malloc.patch
2016-09-15 01:57:53 +02:00
Matthieu Darbois
f88c9974e2
Flags in T1 shall be unsigned ( #840 )
...
This will remove some conversion warnings
2016-09-14 23:46:46 +02:00
Matthieu Darbois
0954bc11e3
Fix some warnings ( #838 )
...
Fix warnings introduced by uclouvain/openjpeg#786
2016-09-14 00:12:43 +02:00
Antonin Descampe
f66e120452
Merge branch 'bit-fields-type' of https://github.com/smuehlst/openjpeg into smuehlst-bit-fields-type
2016-09-13 21:21:11 +02:00
Antonin Descampe
d6d0f070e1
Merge pull request #786 from rouault/tier1_optimizations_multithreading
...
T1 & DWT multithreading decoding optimizations
2016-09-13 16:39:26 +02:00
Matthieu Darbois
b21a8317e5
Fix coverity 113065 (CWE-484) ( #824 )
2016-09-08 22:14:19 +02:00
Even Rouault
48c16b2c19
Merge branch 'master' of https://github.com/uclouvain/openjpeg into tier1_optimizations_multithreading_2
...
Conflicts:
src/lib/openjp2/t1.c
2016-09-08 10:30:09 +02:00
Even Rouault
ab22c5bad5
opj_thread_pool: fix potential deadlock at thread pool destruction
2016-09-08 09:43:36 +02:00
Matthieu Darbois
ef01f18dfc
Cast to size_t before multiplication
...
Need to cast to size_t before multiplication otherwise overflow check is useless.
2016-09-08 07:34:46 +02:00
Matthieu Darbois
e078172b1c
Add sanity check for tile coordinates ( #823 )
...
Coordinates are casted from OPJ_UINT32 to OPJ_INT32
Add sanity check for negative values and upper bound becoming lower
than lower bound.
See also
https://pdfium.googlesource.com/pdfium/+/b6befb2ed2485a3805cddea86dc7574510178ea9
2016-09-08 00:24:15 +02:00
Stephan Mühlstrasser
8750e183c6
Moved type OPJ_BITFIELD from openjpeg.h to opj_includes.h
...
OPJ_BITFIELD is used only in internal headers and must not
appear in the public openjpeg.h header.
2016-09-07 08:41:01 +02:00
Stephan Mühlstrasser
6c83f1468c
Merge branch 'master' into bit-fields-type
2016-09-07 08:35:19 +02:00
Matthieu Darbois
734d57d5f7
fix incrementing of "l_tcp->m_nb_mcc_records" in opj_j2k_read_mcc ( #820 )
2016-09-06 22:33:26 +02:00
trylab
c16bc057ba
Fix an integer overflow issue ( #809 )
...
Prevent an integer overflow issue in function opj_pi_create_decode of
pi.c.
2016-09-06 07:55:49 +02:00
Matthieu Darbois
ea320dab8b
Add overflow check in opj_tcd_init_tile ( #819 )
2016-09-06 07:54:29 +02:00
Matthieu Darbois
d7e6b7de8a
Fix leak & invalid behavior of opj_jp2_read_ihdr ( #818 )
...
In case multiple ihdr box are present, only the first one shall be
taken into account.
2016-09-06 01:31:15 +02:00
Matthieu Darbois
ccd9ced49e
Add overflow check in opj_j2k_update_image_data ( #817 )
2016-09-06 00:50:44 +02:00
Matthieu Darbois
9f24b078c7
Change 'restrict' define to 'OPJ_RESTRICT' ( #816 )
...
Visual Studio 2015 does not pass regression tests with `__restrict` so kept disabled for MSVC.
Need to check proper usage of OPJ_RESTRICT (if correct then there’s
probably a bug in vc14)
Closes #661
2016-09-06 00:49:53 +02:00
Even Rouault
4f9abb9a45
[Win32] Use _beginthreadex instead of CreateThread()
2016-08-11 21:59:28 +02:00
Stephan Mühlstrasser
54874194a8
Unified bit-field declaration, removed tabs.
2016-07-27 10:09:54 +02:00
Stephan Mühlstrasser
d2d35bf6c2
Create separate type for bit-fields.
...
The definition of bit-fields with type OPJ_UINT32 caused complilation errors
on IBM iSeries, because OPJ_UINT32 is defined as uint32_t, and
uint32_t is defined as unsigned long in <stdint.h>. The definition of
bit-fields with an integer type of a specific size doesn't make sense
anyway.
2016-07-25 20:46:11 +02:00
Stefan Weil
e40c28c2e8
jpwl: Remove non-portable data type u_int16_t (fix issue #796 ) ( #797 )
...
The type casts which used this data type can be removed by changing
the signature of function swap16. As this function is called with
unsigned variables, this change is reasonable.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-07-14 10:49:17 +02:00
Stefan Weil
18da6155b2
Fix dependency for pkg-config (issue #594 ) ( #795 )
...
openjpeg provides libopenjp2.pc, so the require statements must refer to
libopenjp2 instead of openjp2.
Fixes #594
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-07-12 00:45:51 +02:00
maddin200
cb72c08472
Update tcd.c ( #790 )
...
cppcheck unitialized variable
2016-06-21 22:13:57 +02:00
Even Rouault
7d3c7a345f
Be robust to failed allocations of job structures
2016-05-26 23:51:32 +02:00
Even Rouault
69497d35c0
opj_decompress: use clock_gettime() instead of getrusage() so as to get the time spent, and not to the total CPU time
2016-05-25 21:59:43 +02:00
Even Rouault
d67cd2220a
opj_decompress: add a -threads <num_threads> option
2016-05-25 21:02:07 +02:00
Even Rouault
57b216bb58
Use thread pool for DWT decoding
2016-05-25 21:02:07 +02:00
Even Rouault
5fbb8b2645
Use thread-pool for T1 decoding
2016-05-25 21:02:07 +02:00
Even Rouault
d4b7f03cfa
Add opj_codec_set_threads() in public API and propagate resulting thread pool to tcd level
...
By default, only the main thread is used. If opj_codec_set_threads() is not used,
but the OPJ_NUM_THREADS environment variable is set, its value will be
used to initialize the number of threads. The value can be either an integer
number, or "ALL_CPUS". If OPJ_NUM_THREADS is set and this function is called,
this function will override the behaviour of the environment variable.
2016-05-25 21:02:07 +02:00
Even Rouault
54179fe1d5
Add threading and thread pool API
2016-05-25 21:02:07 +02:00
Even Rouault
7092f7ea11
Fix MSVC210 build issue (use of C99 declaration after statement) introduced in ba1edf6cd4
2016-05-23 16:00:28 +02:00
Even Rouault
107eb31531
Improve perf of opj_t1_dec_sigpass_mqc_vsc() and opj_t1_dec_refpass_mqc_vsc() with loop unrolling
2016-05-23 13:45:15 +02:00
Even Rouault
8371491a99
Better inlining of opj_t1_updateflagscolflags() w.r.t. flags_stride
2016-05-23 11:53:54 +02:00
Even Rouault
956c31d5a6
opj_t1_dec_clnpass(): remove useless test in the runlen decoding path (of the non VSC case)
2016-05-23 11:53:54 +02:00
Even Rouault
93f7f90711
opj_t1_decode_cblks(): tiny perf increase when loop unrolling
2016-05-23 11:53:53 +02:00
Even Rouault
1da397e94a
Tier 1 decoding: add a colflags array
...
Addition flag array such that colflags[1+0] is for state of col=0,row=0..3,
colflags[1+1] for col=1, row=0..3, colflags[1+flags_stride] for col=0,row=4..7, ...
This array avoids too much cache trashing when processing by 4 vertical samples
as done in the various decoding steps.
2016-05-23 11:53:53 +02:00
Even Rouault
31882ad7f4
Const'ify lut arrays so they are in the read-only data section
2016-05-22 00:54:06 +02:00
Even Rouault
ba1edf6cd4
Reduce number of occurrences of orient function argument
...
This is essentially used to shift inside the lut_ctxno_zc, which we
can precompute at the beginning of opj_t1_decode_cblk() /
opj_t1_encode_cblk()
2016-05-22 00:50:34 +02:00
Even Rouault
23a01dfdef
Specialize decoding passes for 64x64 code blocks
2016-05-21 16:27:35 +02:00
Even Rouault
d8fef96f23
Improve code generation in opj_t1_dec_clnpass()
...
Add a opj_t1_dec_clnpass_step_only_if_flag_not_sig_visit() method that
does the job of opj_t1_dec_clnpass_step_only() assuming the conditions
are met. And use it in opj_t1_dec_clnpass(). The compiler generates
more efficient code.
2016-05-21 15:52:02 +02:00
Even Rouault
c539808d09
opj_t1_updateflags(): tiny optimization
...
We can avoid using a loop-up table with some shift arithmetics.
2016-05-21 15:46:56 +02:00
Kal Conley
426bf8d337
Move some MQC functions into a header for speed
...
Allow these hot functions to be inlined. This boosts decode performance by ~10%.
2016-05-21 15:18:07 +02:00
Stefan Weil
4d2b6a671a
Update implementation of opj_calloc ( #705 )
2016-05-10 22:08:49 +02:00
Stefan Weil
aae066debc
Add missing source for the JPIP library and executables (issue #658 ) ( #659 )
...
They all need opj_malloc and other functions from opc_malloc.c.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-05-10 22:02:49 +02:00
mayeut
1a8318f6c2
Fix Out-of-Bounds Access in function opj_tgt_reset
...
Fix uclouvain/openjpeg#775
2016-05-08 20:10:13 +02:00
mayeut
162f6199c0
Fix Heap Buffer Overflow in function color_cmyk_to_rgb
...
Fix uclouvain/openjpeg#774
2016-05-08 19:18:05 +02:00
mayeut
8f9cc62b3f
Fix division by zero
...
Fix uclouvain/openjpeg#733
2016-05-08 18:40:12 +02:00