mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
Merge "remove some uint64_t casts and use."
This commit is contained in:
commit
29059d5178
@ -30,7 +30,7 @@ static void SmoothSegmentMap(VP8Encoder* const enc) {
|
||||
const int w = enc->mb_w_;
|
||||
const int h = enc->mb_h_;
|
||||
const int majority_cnt_3_x_3_grid = 5;
|
||||
uint8_t* const tmp = (uint8_t*)WebPSafeMalloc((uint64_t)w * h, sizeof(*tmp));
|
||||
uint8_t* const tmp = (uint8_t*)WebPSafeMalloc(w * h, sizeof(*tmp));
|
||||
assert((uint64_t)(w * h) == (uint64_t)w * h); // no overflow, as per spec
|
||||
|
||||
if (tmp == NULL) return;
|
||||
|
@ -89,8 +89,7 @@ VP8LBackwardRefs* VP8LBackwardRefsNew(int max_size) {
|
||||
}
|
||||
ClearBackwardRefs(refs);
|
||||
refs->max_size = 0;
|
||||
refs->refs = (PixOrCopy*)WebPSafeMalloc((uint64_t)max_size,
|
||||
sizeof(*refs->refs));
|
||||
refs->refs = (PixOrCopy*)WebPSafeMalloc(max_size, sizeof(*refs->refs));
|
||||
if (refs->refs == NULL) {
|
||||
WebPSafeFree(refs);
|
||||
return NULL;
|
||||
@ -135,7 +134,7 @@ VP8LHashChain* VP8LHashChainNew(int size) {
|
||||
if (p == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
p->chain_ = (int*)WebPSafeMalloc((uint64_t)size, sizeof(*p->chain_));
|
||||
p->chain_ = (int*)WebPSafeMalloc(size, sizeof(*p->chain_));
|
||||
if (p->chain_ == NULL) {
|
||||
WebPSafeFree(p);
|
||||
return NULL;
|
||||
@ -505,7 +504,7 @@ static int BackwardReferencesHashChainDistanceOnly(
|
||||
const int pix_count = xsize * ysize;
|
||||
const int use_color_cache = (cache_bits > 0);
|
||||
float* const cost =
|
||||
(float*)WebPSafeMalloc((uint64_t)pix_count, sizeof(*cost));
|
||||
(float*)WebPSafeMalloc(pix_count, sizeof(*cost));
|
||||
CostModel* cost_model = (CostModel*)WebPSafeMalloc(1ULL, sizeof(*cost_model));
|
||||
VP8LColorCache hashers;
|
||||
const double mul0 = (recursive_cost_model != 0) ? 1.0 : 0.68;
|
||||
@ -721,7 +720,7 @@ static int BackwardReferencesTraceBackwards(int xsize, int ysize,
|
||||
uint32_t* chosen_path = NULL;
|
||||
int chosen_path_size = 0;
|
||||
uint32_t* dist_array =
|
||||
(uint32_t*)WebPSafeMalloc((uint64_t)dist_array_size, sizeof(*dist_array));
|
||||
(uint32_t*)WebPSafeMalloc(dist_array_size, sizeof(*dist_array));
|
||||
|
||||
if (dist_array == NULL) goto Error;
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
static void HistogramClear(VP8LHistogram* const p) {
|
||||
uint32_t* const literal = p->literal_;
|
||||
const int cache_bits = p->palette_code_bits_;
|
||||
const uint64_t histo_size = VP8LGetHistogramSize(cache_bits);
|
||||
const int histo_size = VP8LGetHistogramSize(cache_bits);
|
||||
memset(p, 0, histo_size);
|
||||
p->palette_code_bits_ = cache_bits;
|
||||
p->literal_ = literal;
|
||||
@ -41,17 +41,17 @@ static void HistogramCopy(const VP8LHistogram* const src,
|
||||
VP8LHistogram* const dst) {
|
||||
uint32_t* const dst_literal = dst->literal_;
|
||||
const int dst_cache_bits = dst->palette_code_bits_;
|
||||
const uint64_t histo_size = VP8LGetHistogramSize(dst_cache_bits);
|
||||
const int histo_size = VP8LGetHistogramSize(dst_cache_bits);
|
||||
assert(src->palette_code_bits_ == dst_cache_bits);
|
||||
memcpy(dst, src, histo_size);
|
||||
dst->literal_ = dst_literal;
|
||||
}
|
||||
|
||||
uint64_t VP8LGetHistogramSize(int cache_bits) {
|
||||
const uint64_t literal_size = VP8LHistogramNumCodes(cache_bits);
|
||||
const uint64_t total_size = (uint64_t)sizeof(VP8LHistogram)
|
||||
+ literal_size * sizeof(int);
|
||||
return total_size;
|
||||
int VP8LGetHistogramSize(int cache_bits) {
|
||||
const int literal_size = VP8LHistogramNumCodes(cache_bits);
|
||||
const size_t total_size = sizeof(VP8LHistogram) + sizeof(int) * literal_size;
|
||||
assert(total_size <= (size_t)0x7fffffff);
|
||||
return (int)total_size;
|
||||
}
|
||||
|
||||
void VP8LFreeHistogram(VP8LHistogram* const histo) {
|
||||
@ -87,7 +87,7 @@ void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits) {
|
||||
|
||||
VP8LHistogram* VP8LAllocateHistogram(int cache_bits) {
|
||||
VP8LHistogram* histo = NULL;
|
||||
const uint64_t total_size = VP8LGetHistogramSize(cache_bits);
|
||||
const int total_size = VP8LGetHistogramSize(cache_bits);
|
||||
uint8_t* const memory = (uint8_t*)WebPSafeMalloc(total_size, sizeof(*memory));
|
||||
if (memory == NULL) return NULL;
|
||||
histo = (VP8LHistogram*)memory;
|
||||
@ -100,9 +100,9 @@ VP8LHistogram* VP8LAllocateHistogram(int cache_bits) {
|
||||
VP8LHistogramSet* VP8LAllocateHistogramSet(int size, int cache_bits) {
|
||||
int i;
|
||||
VP8LHistogramSet* set;
|
||||
const uint64_t total_size = sizeof(*set)
|
||||
+ (uint64_t)size * sizeof(*set->histograms)
|
||||
+ (uint64_t)size * VP8LGetHistogramSize(cache_bits);
|
||||
const size_t total_size = sizeof(*set)
|
||||
+ sizeof(*set->histograms) * size
|
||||
+ (size_t)VP8LGetHistogramSize(cache_bits) * size;
|
||||
uint8_t* memory = (uint8_t*)WebPSafeMalloc(total_size, sizeof(*memory));
|
||||
if (memory == NULL) return NULL;
|
||||
|
||||
@ -710,7 +710,7 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize,
|
||||
// Higher qualities (> 90), to preserve the compression gains at those
|
||||
// quality settings.
|
||||
if (init_histo->size > 2 * BIN_SIZE && quality < 90) {
|
||||
const int bin_map_size = (uint64_t)bin_depth * BIN_SIZE;
|
||||
const int bin_map_size = bin_depth * BIN_SIZE;
|
||||
bin_map = (int16_t*)WebPSafeCalloc(bin_map_size, sizeof(*bin_map));
|
||||
if (bin_map == NULL) goto Error;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ void VP8LHistogramCreate(VP8LHistogram* const p,
|
||||
int palette_code_bits);
|
||||
|
||||
// Return the size of the histogram for a given palette_code_bits.
|
||||
uint64_t VP8LGetHistogramSize(int palette_code_bits);
|
||||
int VP8LGetHistogramSize(int palette_code_bits);
|
||||
|
||||
// Set the palette_code_bits and reset the stats.
|
||||
void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits);
|
||||
|
@ -516,8 +516,7 @@ static int EncodeImageNoHuffman(VP8LBitWriter* const bw,
|
||||
}
|
||||
}
|
||||
|
||||
tokens = (HuffmanTreeToken*)WebPSafeMalloc((uint64_t)max_tokens,
|
||||
sizeof(*tokens));
|
||||
tokens = (HuffmanTreeToken*)WebPSafeMalloc(max_tokens, sizeof(*tokens));
|
||||
if (tokens == NULL) goto Error;
|
||||
|
||||
// Store Huffman codes.
|
||||
@ -561,7 +560,7 @@ static int EncodeImageInternal(VP8LBitWriter* const bw,
|
||||
VP8LBackwardRefs* refs = NULL;
|
||||
VP8LBackwardRefs* best_refs;
|
||||
uint16_t* const histogram_symbols =
|
||||
(uint16_t*)WebPSafeMalloc((uint64_t)histogram_image_xysize,
|
||||
(uint16_t*)WebPSafeMalloc(histogram_image_xysize,
|
||||
sizeof(*histogram_symbols));
|
||||
assert(histogram_bits >= MIN_HUFFMAN_BITS);
|
||||
assert(histogram_bits <= MAX_HUFFMAN_BITS);
|
||||
@ -618,7 +617,7 @@ static int EncodeImageInternal(VP8LBitWriter* const bw,
|
||||
VP8LWriteBits(bw, 1, write_histogram_image);
|
||||
if (write_histogram_image) {
|
||||
uint32_t* const histogram_argb =
|
||||
(uint32_t*)WebPSafeMalloc((uint64_t)histogram_image_xysize,
|
||||
(uint32_t*)WebPSafeMalloc(histogram_image_xysize,
|
||||
sizeof(*histogram_argb));
|
||||
int max_index = 0;
|
||||
uint32_t i;
|
||||
@ -656,7 +655,7 @@ static int EncodeImageInternal(VP8LBitWriter* const bw,
|
||||
max_tokens = codes->num_symbols;
|
||||
}
|
||||
}
|
||||
tokens = (HuffmanTreeToken*)WebPSafeMalloc((uint64_t)max_tokens,
|
||||
tokens = (HuffmanTreeToken*)WebPSafeMalloc(max_tokens,
|
||||
sizeof(*tokens));
|
||||
if (tokens == NULL) goto Error;
|
||||
for (i = 0; i < 5 * histogram_image_size; ++i) {
|
||||
@ -844,11 +843,11 @@ static WebPEncodingError AllocateTransformBuffer(VP8LEncoder* const enc,
|
||||
const int tile_size = 1 << enc->transform_bits_;
|
||||
const uint64_t image_size = width * height;
|
||||
const uint64_t argb_scratch_size = tile_size * width + width;
|
||||
const uint64_t transform_data_size =
|
||||
(uint64_t)VP8LSubSampleSize(width, enc->transform_bits_) *
|
||||
(uint64_t)VP8LSubSampleSize(height, enc->transform_bits_);
|
||||
const int transform_data_size =
|
||||
VP8LSubSampleSize(width, enc->transform_bits_) *
|
||||
VP8LSubSampleSize(height, enc->transform_bits_);
|
||||
const uint64_t total_size =
|
||||
image_size + argb_scratch_size + transform_data_size;
|
||||
image_size + argb_scratch_size + (uint64_t)transform_data_size;
|
||||
uint32_t* mem = (uint32_t*)WebPSafeMalloc(total_size, sizeof(*mem));
|
||||
if (mem == NULL) {
|
||||
err = VP8_ENC_ERROR_OUT_OF_MEMORY;
|
||||
@ -947,7 +946,7 @@ static WebPEncodingError EncodePalette(VP8LBitWriter* const bw,
|
||||
if (err != VP8_ENC_OK) goto Error;
|
||||
dst = enc->argb_;
|
||||
|
||||
row = (uint8_t*)WebPSafeMalloc((uint64_t)width, sizeof(*row));
|
||||
row = (uint8_t*)WebPSafeMalloc(width, sizeof(*row));
|
||||
if (row == NULL) return VP8_ENC_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
ApplyPalette(src, dst, pic->argb_stride, enc->current_width_,
|
||||
@ -975,14 +974,13 @@ static WebPEncodingError EncodePalette(VP8LBitWriter* const bw,
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static int GetHistoBits(int method, int use_palette, int width, int height) {
|
||||
const uint64_t hist_size = VP8LGetHistogramSize(MAX_COLOR_CACHE_BITS);
|
||||
const int hist_size = VP8LGetHistogramSize(MAX_COLOR_CACHE_BITS);
|
||||
// Make tile size a function of encoding method (Range: 0 to 6).
|
||||
int histo_bits = (use_palette ? 9 : 7) - method;
|
||||
while (1) {
|
||||
const uint64_t huff_image_size = VP8LSubSampleSize(width, histo_bits) *
|
||||
VP8LSubSampleSize(height, histo_bits) *
|
||||
hist_size;
|
||||
if (huff_image_size <= MAX_HUFF_IMAGE_SIZE) break;
|
||||
const int huff_image_size = VP8LSubSampleSize(width, histo_bits) *
|
||||
VP8LSubSampleSize(height, histo_bits);
|
||||
if ((uint64_t)huff_image_size * hist_size <= MAX_HUFF_IMAGE_SIZE) break;
|
||||
++histo_bits;
|
||||
}
|
||||
return (histo_bits < MIN_HUFFMAN_BITS) ? MIN_HUFFMAN_BITS :
|
||||
|
Loading…
Reference in New Issue
Block a user