Module: libav Branch: master Commit: c6698dfe7cdbc7634f33245875488ed3fa4a8ced
Author: Justin Ruggles <[email protected]> Committer: Justin Ruggles <[email protected]> Date: Thu Jul 3 11:28:17 2014 -0400 webpdec: Fix decoding of the huffman group indices. Per the specification, "The red and green components of a pixel define the meta Huffman code used in a particular block of the ARGB image." --- libavcodec/webp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/webp.c b/libavcodec/webp.c index f9f8bfc..b98fa4d 100644 --- a/libavcodec/webp.c +++ b/libavcodec/webp.c @@ -476,7 +476,9 @@ static int decode_entropy_image(WebPContext *s) max = 0; for (y = 0; y < img->frame->height; y++) { for (x = 0; x < img->frame->width; x++) { - int p = GET_PIXEL_COMP(img->frame, x, y, 2); + int p0 = GET_PIXEL_COMP(img->frame, x, y, 1); + int p1 = GET_PIXEL_COMP(img->frame, x, y, 2); + int p = p0 << 8 | p1; max = FFMAX(max, p); } } @@ -561,7 +563,9 @@ static HuffReader *get_huffman_group(WebPContext *s, ImageContext *img, if (gimg->size_reduction > 0) { int group_x = x >> gimg->size_reduction; int group_y = y >> gimg->size_reduction; - group = GET_PIXEL_COMP(gimg->frame, group_x, group_y, 2); + int g0 = GET_PIXEL_COMP(gimg->frame, group_x, group_y, 1); + int g1 = GET_PIXEL_COMP(gimg->frame, group_x, group_y, 2); + group = g0 << 8 | g1; } return &img->huffman_groups[group * HUFFMAN_CODES_PER_META_CODE]; _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
