aboutsummaryrefslogtreecommitdiff
path: root/src/enc/alpha.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/enc/alpha.c')
-rw-r--r--src/enc/alpha.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/enc/alpha.c b/src/enc/alpha.c
index c34ad17c..376f786c 100644
--- a/src/enc/alpha.c
+++ b/src/enc/alpha.c
@@ -79,17 +79,18 @@ static int EncodeLossless(const uint8_t* const data, int width, int height,
WebPConfigInit(&config);
config.lossless = 1;
config.method = effort_level; // impact is very small
- // Set a moderate default quality setting for alpha.
- config.quality = 6.f * effort_level;
- assert(config.quality >= 0 && config.quality <= 100.f);
+ // Set moderate default quality setting for alpha. Higher qualities (80 and
+ // above) could be very slow.
+ config.quality = 10.f + 15.f * effort_level;
+ if (config.quality > 100.f) config.quality = 100.f;
ok = VP8LBitWriterInit(&tmp_bw, (width * height) >> 3);
ok = ok && (VP8LEncodeStream(&config, &picture, &tmp_bw) == VP8_ENC_OK);
WebPPictureFree(&picture);
if (ok) {
- const uint8_t* const buffer = VP8LBitWriterFinish(&tmp_bw);
- const size_t buffer_size = VP8LBitWriterNumBytes(&tmp_bw);
- VP8BitWriterAppend(bw, buffer, buffer_size);
+ const uint8_t* const data = VP8LBitWriterFinish(&tmp_bw);
+ const size_t data_size = VP8LBitWriterNumBytes(&tmp_bw);
+ VP8BitWriterAppend(bw, data, data_size);
}
VP8LBitWriterDestroy(&tmp_bw);
return ok && !bw->error_;