WebPEncode: Support encoding same pic twice (even if modified)

This wasn't working for this specific scenario:
- Encode an RGBA 'pic' (with trivial alpha) using lossy encoding.
(so that pic->a == NULL after import happens).
- Modify the 'pic->argb' so that it has non-trivial alpha.
- Encode the same 'pic' again.
This used to fail to encode alpha data as pic->a == NULL.

(cherry picked from commit e4f4dddba3)

Change-Id: Ieaaa7bd09825c42f54fbd99e6781d98f0b19cc0c
This commit is contained in:
Urvang Joshi 2014-11-06 13:52:48 -08:00 committed by James Zern
parent 4426f50179
commit 046732ca65

View File

@ -326,7 +326,7 @@ int WebPEncode(const WebPConfig* config, WebPPicture* pic) {
if (!config->lossless) { if (!config->lossless) {
VP8Encoder* enc = NULL; VP8Encoder* enc = NULL;
if (pic->y == NULL || pic->u == NULL || pic->v == NULL) { if (pic->use_argb || pic->y == NULL || pic->u == NULL || pic->v == NULL) {
// Make sure we have YUVA samples. // Make sure we have YUVA samples.
if (config->preprocessing & 4) { if (config->preprocessing & 4) {
#if WEBP_ENCODER_ABI_VERSION > 0x0204 #if WEBP_ENCODER_ABI_VERSION > 0x0204