Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Massimino <pascal.massimino@gmail.com>2014-09-16 19:01:07 +0400
committerMichael Niedermayer <michaelni@gmx.at>2014-09-19 18:33:05 +0400
commit4fd21d58a72c38ab63c3a4483b420db260fa7b8d (patch)
treed1ccabe211e3a960fd1288c33081e0cbb448dc46 /libavcodec/webp.c
parent59af5383c18c8cf3fe2a4b5cc1ebf2f3300bdfe5 (diff)
libavcodec/webp: treat out-of-bound palette index as translucent black
See https://code.google.com/p/webp/issues/detail?id=206 for a description of the problem/fix. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> This patch makes the decoder follow the recommendation of the spec. There is some disagreement (see "[FFmpeg-devel] [PATCH]: libavcodec/webp") about what would be best to be written in the spec, so in case the spec is changed again, this potentially would need to be amended or reverted
Diffstat (limited to 'libavcodec/webp.c')
-rw-r--r--libavcodec/webp.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/webp.c b/libavcodec/webp.c
index c737f5492d..66c2d57c84 100644
--- a/libavcodec/webp.c
+++ b/libavcodec/webp.c
@@ -1028,7 +1028,7 @@ static int apply_color_indexing_transform(WebPContext *s)
ImageContext *img;
ImageContext *pal;
int i, x, y;
- uint8_t *p, *pi;
+ uint8_t *p;
img = &s->image[IMAGE_ROLE_ARGB];
pal = &s->image[IMAGE_ROLE_COLOR_INDEXING];
@@ -1066,11 +1066,11 @@ static int apply_color_indexing_transform(WebPContext *s)
p = GET_PIXEL(img->frame, x, y);
i = p[2];
if (i >= pal->frame->width) {
- av_log(s->avctx, AV_LOG_ERROR, "invalid palette index %d\n", i);
- return AVERROR_INVALIDDATA;
+ AV_WB32(p, 0xFF000000);
+ } else {
+ const uint8_t *pi = GET_PIXEL(pal->frame, i, 0);
+ AV_COPY32(p, pi);
}
- pi = GET_PIXEL(pal->frame, i, 0);
- AV_COPY32(p, pi);
}
}