mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-13 14:34:33 +02:00
WEBP_REDUCE_CSP: restrict colorspace support
only supported ones are: RGBA/BGRA/rgbA/bgrA (decoder)
as well as: WebPPictureImportRGB/RGBX/RGBA (encoder).
(note: extras/get_disto is affected too)
Change-Id: If6c4f95054ca15759c4e289fb3b4c352b3521c2c
(cherry picked from commit 6de20df02c
)
This commit is contained in:
committed by
James Zern
parent
a289d8e774
commit
f66955de5f
@ -1134,12 +1134,7 @@ static int Import(WebPPicture* const picture,
|
||||
|
||||
// Public API
|
||||
|
||||
int WebPPictureImportRGB(WebPPicture* picture,
|
||||
const uint8_t* rgb, int rgb_stride) {
|
||||
return (picture != NULL && rgb != NULL)
|
||||
? Import(picture, rgb, rgb_stride, 3, 0, 0)
|
||||
: 0;
|
||||
}
|
||||
#if !defined(WEBP_REDUCE_CSP)
|
||||
|
||||
int WebPPictureImportBGR(WebPPicture* picture,
|
||||
const uint8_t* rgb, int rgb_stride) {
|
||||
@ -1148,13 +1143,6 @@ int WebPPictureImportBGR(WebPPicture* picture,
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportRGBA(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
return (picture != NULL && rgba != NULL)
|
||||
? Import(picture, rgba, rgba_stride, 4, 0, 1)
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportBGRA(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
return (picture != NULL && rgba != NULL)
|
||||
@ -1162,12 +1150,6 @@ int WebPPictureImportBGRA(WebPPicture* picture,
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportRGBX(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
return (picture != NULL && rgba != NULL)
|
||||
? Import(picture, rgba, rgba_stride, 4, 0, 0)
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportBGRX(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
@ -1176,4 +1158,27 @@ int WebPPictureImportBGRX(WebPPicture* picture,
|
||||
: 0;
|
||||
}
|
||||
|
||||
#endif // WEBP_REDUCE_CSP
|
||||
|
||||
int WebPPictureImportRGB(WebPPicture* picture,
|
||||
const uint8_t* rgb, int rgb_stride) {
|
||||
return (picture != NULL && rgb != NULL)
|
||||
? Import(picture, rgb, rgb_stride, 3, 0, 0)
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportRGBA(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
return (picture != NULL && rgba != NULL)
|
||||
? Import(picture, rgba, rgba_stride, 4, 0, 1)
|
||||
: 0;
|
||||
}
|
||||
|
||||
int WebPPictureImportRGBX(WebPPicture* picture,
|
||||
const uint8_t* rgba, int rgba_stride) {
|
||||
return (picture != NULL && rgba != NULL)
|
||||
? Import(picture, rgba, rgba_stride, 4, 0, 0)
|
||||
: 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
@ -270,9 +270,11 @@ size_t NAME(const uint8_t* in, int w, int h, int bps, float q, \
|
||||
}
|
||||
|
||||
ENCODE_FUNC(WebPEncodeRGB, WebPPictureImportRGB)
|
||||
ENCODE_FUNC(WebPEncodeBGR, WebPPictureImportBGR)
|
||||
ENCODE_FUNC(WebPEncodeRGBA, WebPPictureImportRGBA)
|
||||
#if !defined(WEBP_REDUCE_CSP)
|
||||
ENCODE_FUNC(WebPEncodeBGR, WebPPictureImportBGR)
|
||||
ENCODE_FUNC(WebPEncodeBGRA, WebPPictureImportBGRA)
|
||||
#endif // WEBP_REDUCE_CSP
|
||||
|
||||
#undef ENCODE_FUNC
|
||||
|
||||
@ -283,9 +285,11 @@ size_t NAME(const uint8_t* in, int w, int h, int bps, uint8_t** out) { \
|
||||
}
|
||||
|
||||
LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessRGB, WebPPictureImportRGB)
|
||||
LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGR, WebPPictureImportBGR)
|
||||
LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessRGBA, WebPPictureImportRGBA)
|
||||
#if !defined(WEBP_REDUCE_CSP)
|
||||
LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGR, WebPPictureImportBGR)
|
||||
LOSSLESS_ENCODE_FUNC(WebPEncodeLosslessBGRA, WebPPictureImportBGRA)
|
||||
#endif // WEBP_REDUCE_CSP
|
||||
|
||||
#undef LOSSLESS_ENCODE_FUNC
|
||||
|
||||
|
Reference in New Issue
Block a user