diff options
Diffstat (limited to 'src/enc/alpha.c')
-rw-r--r-- | src/enc/alpha.c | 13 |
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_; |