mirror of
https://github.com/webmproject/libwebp.git
synced 2024-11-20 04:18:26 +01:00
add missing YUVA->ARGB automatic conversion in WebPEncode()
user can now call WebPEncode() with any YUVA or ARGB format, for
lossy or lossless compression
also: simplified error reporting, which is done in WebPPictureARGBToYUVA()
and WebPPictureYUVAToARGB()
Change-Id: Ifb68909217175bcf5a050e5c68d06de9849468f7
(cherry picked from commit 07d87bda1b
)
This commit is contained in:
parent
403bfe820c
commit
68111ab02f
@ -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.
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user