From b3f594771f49ba0db6012a03c7a29e87f3eaec0f Mon Sep 17 00:00:00 2001 From: Patrick Vogler Date: Fri, 28 Jun 2024 11:27:58 +0200 Subject: [PATCH] Previously the library accepted a max of 255 threads for compression. The limit has now been extended to 9 223 372 036 854 775 807, which should suffice for the next couple of years. --- src/library/dwt.c | 16 ++++++++++++---- src/library/tier1.c | 19 +++++++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/library/dwt.c b/src/library/dwt.c index 025439a..b22c7f2 100755 --- a/src/library/dwt.c +++ b/src/library/dwt.c @@ -1624,18 +1624,22 @@ forward_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter uint64 rX1, rY1, rZ1; uint64 width, height, depth; uint64 x, y, z; - uint32 buff_size; + + int64 nThreads; int16 i; + + uint32 buff_size; + uint16 incr_TS; uint16 rTS0; uint16 rTS1; uint16 dt; uint16 t; + uint8 id; uint8 filter_tapsX, filter_tapsY, filter_tapsZ; uint8 filter_tapsTS; uint8 level; - uint8 nThreads; /*-----------------------*\ ! DEFINE STRUCTS: ! @@ -2161,18 +2165,22 @@ inverse_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter uint64 rX1, rY1, rZ1; uint64 width, height, depth; uint64 x, y, z; + + int64 nThreads; + int64 i; + uint32 buff_size; - int16 i; + uint16 incr_TS; uint16 rTS0; uint16 rTS1; uint16 dt; uint16 t; + uint8 id; uint8 filter_tapsX, filter_tapsY, filter_tapsZ; uint8 filter_tapsTS; uint8 level; - uint8 nThreads; /*-----------------------*\ ! DEFINE STRUCTS: ! diff --git a/src/library/tier1.c b/src/library/tier1.c index ff160b7..60abda2 100755 --- a/src/library/tier1.c +++ b/src/library/tier1.c @@ -2836,12 +2836,14 @@ t1_encode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const par uint64 c; uint64 cbSizeX, cbSizeY, cbSizeZ; uint64 width, height, depth; + int64 buff_size; - int64 j; + int64 i, j; + int64 nThreads; + uint16 cbSizeTS; uint16 slope_max, slope_min; - int16 i, z; - uint8 nThreads; + int16 z; /*-----------------------*\ ! DEFINE STRUCTS: ! @@ -2921,7 +2923,7 @@ t1_encode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const par ! threads during a parallel run. For a serial run only one ! ! working buffer is allocated. ! \*--------------------------------------------------------*/ - for(i = 0; i < nThreads; ++i) + for(i = 0; i < (int64)nThreads; ++i) { memory[i] = calloc(buff_size, sizeof(bwc_coder_stripe)); if(!memory[i]) @@ -3137,11 +3139,12 @@ t1_decode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const par uint64 c; uint64 cbSizeX, cbSizeY, cbSizeZ; uint64 width, height, depth; + int64 buff_size; - int64 j; + int64 i, j; + int64 nThreads; + uint16 cbSizeTS; - int16 i; - uint8 nThreads; /*-----------------------*\ ! DEFINE STRUCTS: ! @@ -3214,7 +3217,7 @@ t1_decode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const par ! threads during a parallel run. For a serial run only one ! ! working buffer is allocated. ! \*--------------------------------------------------------*/ - for(i = 0; i < nThreads; ++i) + for(i = 0; i < (int64)nThreads; ++i) { memory[i] = calloc(buff_size, sizeof(bwc_coder_stripe)); if(!memory[i])