[FFmpeg-devel] [PATCH]lavc/pgssubdec: Fix palette colourspace

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun Apr 17 21:36:47 CEST 2016


On Sun, Apr 17, 2016 at 09:24:29PM +0200, Reimar Döffinger wrote:
> On Sun, Apr 17, 2016 at 09:08:45PM +0200, Carl Eugen Hoyos wrote:
> > -        YUV_TO_RGB1(cb, cr);
> > -        YUV_TO_RGB2(r, g, b, y);
> > +        if (ctx->hdtv > 0) {
> > +            YUV_TO_RGB1_CCIR(cb, cr);
> > +            YUV_TO_RGB2_CCIR(r, g, b, y);
> > +        } else {
> > +            YUV_TO_RGB1(cb, cr);
> > +            YUV_TO_RGB2(r, g, b, y);
> > +        }
> 
> That is actually more wrong :)
> YUV_TO_RGB1_CCIR is Rec.609, so what should be used for SD.

Rec.601 I meant here.

> For HD, it still should use the *255.0/224.0, but the other
> coefficients need to be tweaked.

To Rec.709 values.

> MPlayer seems to be a bit off, plus we already have fixed-point
> coefficients in libswscale we might want to match, but something
> like:
>     r_add = FIX(1.5701*255.0/224.0) * cr + ONE_HALF;\
>     g_add = - FIX(0.1870*255.0/224.0) * cb - FIX(0.4664*255.0/224.0) * cr + \
>             ONE_HALF;\
>     b_add = FIX(1.8556*255.0/224.0) * cb + ONE_HALF;\


More information about the ffmpeg-devel mailing list