Index: third_party/libwebp/dec/io.c |
diff --git a/third_party/libwebp/dec/io.c b/third_party/libwebp/dec/io.c |
index 8094e44f632ed4338c31d7225c5bde8af209d852..b2e72f0b2612d4a60d99c736cf3425a5b5fbeec7 100644 |
--- a/third_party/libwebp/dec/io.c |
+++ b/third_party/libwebp/dec/io.c |
@@ -322,37 +322,31 @@ static int InitYUVRescaler(const VP8Io* const io, WebPDecParams* const p) { |
const size_t work_size = 2 * out_width; // scratch memory for luma rescaler |
const size_t uv_work_size = 2 * uv_out_width; // and for each u/v ones |
size_t tmp_size; |
- int32_t* work; |
+ rescaler_t* work; |
tmp_size = (work_size + 2 * uv_work_size) * sizeof(*work); |
if (has_alpha) { |
tmp_size += work_size * sizeof(*work); |
} |
- p->memory = WebPSafeCalloc(1ULL, tmp_size); |
+ p->memory = WebPSafeMalloc(1ULL, tmp_size); |
if (p->memory == NULL) { |
return 0; // memory error |
} |
- work = (int32_t*)p->memory; |
+ work = (rescaler_t*)p->memory; |
WebPRescalerInit(&p->scaler_y, io->mb_w, io->mb_h, |
buf->y, out_width, out_height, buf->y_stride, 1, |
- io->mb_w, out_width, io->mb_h, out_height, |
work); |
WebPRescalerInit(&p->scaler_u, uv_in_width, uv_in_height, |
buf->u, uv_out_width, uv_out_height, buf->u_stride, 1, |
- uv_in_width, uv_out_width, |
- uv_in_height, uv_out_height, |
work + work_size); |
WebPRescalerInit(&p->scaler_v, uv_in_width, uv_in_height, |
buf->v, uv_out_width, uv_out_height, buf->v_stride, 1, |
- uv_in_width, uv_out_width, |
- uv_in_height, uv_out_height, |
work + work_size + uv_work_size); |
p->emit = EmitRescaledYUV; |
if (has_alpha) { |
WebPRescalerInit(&p->scaler_a, io->mb_w, io->mb_h, |
buf->a, out_width, out_height, buf->a_stride, 1, |
- io->mb_w, out_width, io->mb_h, out_height, |
work + work_size + 2 * uv_work_size); |
p->emit_alpha = EmitRescaledAlphaYUV; |
WebPInitAlphaProcessing(); |
@@ -375,9 +369,9 @@ static int ExportRGB(WebPDecParams* const p, int y_pos) { |
WebPRescalerHasPendingOutput(&p->scaler_u)) { |
assert(p->last_y + y_pos + num_lines_out < p->output->height); |
assert(p->scaler_u.y_accum == p->scaler_v.y_accum); |
- WebPRescalerExportRow(&p->scaler_y, 0); |
- WebPRescalerExportRow(&p->scaler_u, 0); |
- WebPRescalerExportRow(&p->scaler_v, 0); |
+ WebPRescalerExportRow(&p->scaler_y); |
+ WebPRescalerExportRow(&p->scaler_u); |
+ WebPRescalerExportRow(&p->scaler_v); |
convert(p->scaler_y.dst, p->scaler_u.dst, p->scaler_v.dst, |
dst, p->scaler_y.dst_width); |
dst += buf->stride; |
@@ -425,7 +419,7 @@ static int ExportAlpha(WebPDecParams* const p, int y_pos) { |
while (WebPRescalerHasPendingOutput(&p->scaler_a)) { |
int i; |
assert(p->last_y + y_pos + num_lines_out < p->output->height); |
- WebPRescalerExportRow(&p->scaler_a, 0); |
+ WebPRescalerExportRow(&p->scaler_a); |
for (i = 0; i < width; ++i) { |
const uint32_t alpha_value = p->scaler_a.dst[i]; |
dst[4 * i] = alpha_value; |
@@ -458,7 +452,7 @@ static int ExportAlphaRGBA4444(WebPDecParams* const p, int y_pos) { |
while (WebPRescalerHasPendingOutput(&p->scaler_a)) { |
int i; |
assert(p->last_y + y_pos + num_lines_out < p->output->height); |
- WebPRescalerExportRow(&p->scaler_a, 0); |
+ WebPRescalerExportRow(&p->scaler_a); |
for (i = 0; i < width; ++i) { |
// Fill in the alpha value (converted to 4 bits). |
const uint32_t alpha_value = p->scaler_a.dst[i] >> 4; |
@@ -495,7 +489,7 @@ static int InitRGBRescaler(const VP8Io* const io, WebPDecParams* const p) { |
const int uv_in_width = (io->mb_w + 1) >> 1; |
const int uv_in_height = (io->mb_h + 1) >> 1; |
const size_t work_size = 2 * out_width; // scratch memory for one rescaler |
- int32_t* work; // rescalers work area |
+ rescaler_t* work; // rescalers work area |
uint8_t* tmp; // tmp storage for scaled YUV444 samples before RGB conversion |
size_t tmp_size1, tmp_size2, total_size; |
@@ -506,30 +500,26 @@ static int InitRGBRescaler(const VP8Io* const io, WebPDecParams* const p) { |
tmp_size2 += out_width; |
} |
total_size = tmp_size1 * sizeof(*work) + tmp_size2 * sizeof(*tmp); |
- p->memory = WebPSafeCalloc(1ULL, total_size); |
+ p->memory = WebPSafeMalloc(1ULL, total_size); |
if (p->memory == NULL) { |
return 0; // memory error |
} |
- work = (int32_t*)p->memory; |
+ work = (rescaler_t*)p->memory; |
tmp = (uint8_t*)(work + tmp_size1); |
WebPRescalerInit(&p->scaler_y, io->mb_w, io->mb_h, |
tmp + 0 * out_width, out_width, out_height, 0, 1, |
- io->mb_w, out_width, io->mb_h, out_height, |
work + 0 * work_size); |
WebPRescalerInit(&p->scaler_u, uv_in_width, uv_in_height, |
tmp + 1 * out_width, out_width, out_height, 0, 1, |
- io->mb_w, 2 * out_width, io->mb_h, 2 * out_height, |
work + 1 * work_size); |
WebPRescalerInit(&p->scaler_v, uv_in_width, uv_in_height, |
tmp + 2 * out_width, out_width, out_height, 0, 1, |
- io->mb_w, 2 * out_width, io->mb_h, 2 * out_height, |
work + 2 * work_size); |
p->emit = EmitRescaledRGB; |
if (has_alpha) { |
WebPRescalerInit(&p->scaler_a, io->mb_w, io->mb_h, |
tmp + 3 * out_width, out_width, out_height, 0, 1, |
- io->mb_w, out_width, io->mb_h, out_height, |
work + 3 * work_size); |
p->emit_alpha = EmitRescaledAlphaRGB; |
if (p->output->colorspace == MODE_RGBA_4444 || |