[FFmpeg-devel] [PATCH]Fix tiff grayscale palette

Carl Eugen Hoyos cehoyos at ag.or.at
Mon Sep 5 17:03:13 CEST 2011


Michael Niedermayer <michaelni <at> gmx.at> writes:

> > +++ b/libavcodec/tiff.c
> > @@ -294,8 +294,8 @@ static int init_image(TiffContext *s)
> >  } else {
> >      /* make default grayscale pal */
> >      pal = (uint32_t *) s->picture.data[1];
> > -    for (i = 0; i < 256; i++)
> > -        pal[i] = i * 0x010101;
> > +    for (i = 0; i < 1<<s->bpp; i++)
> > +        pal[256 - (1<<s->bpp) + i] = i * 255 / ((1<<s->bpp) - 1) * 0x010101;
> 
> filling the top only looks a bit strange why is it not
> pal[0..(1<<bpp)] ?

That doesn't work / shows wrong colours because TIFF_INVERT triggers "src[i] =
255 - src[i]" in the decode function.

Should the palette be filled from both ends?
Or is there a better solution?

Carl Eugen



More information about the ffmpeg-devel mailing list