mirror of
https://github.com/webmproject/libwebp.git
synced 2025-08-11 02:20:33 +02:00
Regression fix for alpha channels using color cache:
Considering the fact that insert to/lookup from the color cache is always 32
bit, use DecodeImageData() variant in that case.
Conflicts:
src/dec/vp8l.c
Change-Id: I6c665a6cfbd9bd10651c1e82fa54e687cbd54a2b
(cherry picked from commit a37eff47d6
)
This commit is contained in:
@ -1142,11 +1142,12 @@ int VP8LDecodeAlphaImageStream(int width, int height, const uint8_t* const data,
|
|||||||
dec->action_ = READ_HDR;
|
dec->action_ = READ_HDR;
|
||||||
if (!DecodeImageStream(width, height, 1, dec, NULL)) goto Err;
|
if (!DecodeImageStream(width, height, 1, dec, NULL)) goto Err;
|
||||||
|
|
||||||
// Special case: if alpha data contains only the color indexing transform
|
// Special case: if alpha data uses only the color indexing transform and
|
||||||
// (a frequent case), we will use DecodeAlphaData() method that only needs
|
// doesn't use color cache (a frequent case), we will use DecodeAlphaData()
|
||||||
// allocation of 1 byte per pixel (alpha channel).
|
// method that only needs allocation of 1 byte per pixel (alpha channel).
|
||||||
if (dec->next_transform_ == 1 &&
|
if (dec->next_transform_ == 1 &&
|
||||||
dec->transforms_[0].type_ == COLOR_INDEXING_TRANSFORM) {
|
dec->transforms_[0].type_ == COLOR_INDEXING_TRANSFORM &&
|
||||||
|
dec->hdr_.color_cache_size_ == 0) {
|
||||||
bytes_per_pixel = sizeof(uint8_t);
|
bytes_per_pixel = sizeof(uint8_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user