Merge "add missing YUVA->ARGB automatic conversion in WebPEncode()"

This commit is contained in:
James Zern 2013-03-29 11:39:04 -07:00 committed by Gerrit Code Review
commit 2aaa423b20

View File

@ -374,11 +374,8 @@ 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->y == NULL || pic->u == NULL || pic->v == NULL) {
if (pic->argb != NULL) { // Make sure we have YUVA samples.
if (!WebPPictureARGBToYUVA(pic, WEBP_YUV420)) return 0; if (!WebPPictureARGBToYUVA(pic, WEBP_YUV420)) return 0;
} else {
return WebPEncodingSetError(pic, VP8_ENC_ERROR_NULL_PARAMETER);
}
} }
enc = InitVP8Encoder(config, pic); enc = InitVP8Encoder(config, pic);
@ -405,8 +402,10 @@ int WebPEncode(const WebPConfig* config, WebPPicture* pic) {
} }
ok &= DeleteVP8Encoder(enc); // must always be called, even if !ok ok &= DeleteVP8Encoder(enc); // must always be called, even if !ok
} else { } else {
if (pic->argb == NULL) // Make sure we have ARGB samples.
return WebPEncodingSetError(pic, VP8_ENC_ERROR_NULL_PARAMETER); if (pic->argb == NULL && !WebPPictureYUVAToARGB(pic)) {
return 0;
}
ok = VP8LEncodeImage(config, pic); // Sets pic->error in case of problem. ok = VP8LEncodeImage(config, pic); // Sets pic->error in case of problem.
} }