[MPlayer-dev-eng] [PATCH] vobsub custom colors rgb->yuv fix.

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Mon Dec 3 11:54:57 CET 2007


Hello,
On Mon, Dec 03, 2007 at 03:43:25PM +0800, Ulion wrote:
> 2007/12/3, Reimar Döffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de>:
> > On Mon, Dec 03, 2007 at 11:31:27AM +0800, Ulion wrote:
> > > 2007/12/2, Ulion <ulion2002 at gmail.com>:
> > > > Hello,
> > > >
> > > > the custom colors in .idx file, is same with palette in .idx, all in
> > > > rgb format, spudec all use them as yuv format, and in vobsub.c,
> > > > palette has rgb->yuv convert code, but custom palette was not
> > > > converted.
> > > > Although spudec only use the 'y' part of palette, this bug will still
> > > > make spudec use wrong 'y' value of custom palette. Here's the fix, if
> > > > there are no objections, I will commit it tomorrow.
> > >
> > > Done.
> > >
> > > Same problem also happens in demux_mkv.c, here's a patch for it, if
> > > there's no objections, I will commit it tomorrow.
> >
> > Are you really sure about this? I thought there was some reason it was
> > like this...
> 
> I'm sure because spudec use the second byte of the cuspal, it thought
> it was 'Y'.

Actually I meant if you have checked the specification or a different
implementation that the mkv file does not actually store the yuv values.
I had assumed it was intentional since the conversion was only missing
in that case.

> But just now I fount the formulae has problem to convert from rgb->yuv.
> Indeed I should use macro RGB_TO_Y_CCIR, RGB_TO_U_CCIR, RGB_TO_V_CCIR
> to get the yuv in correct yuv color space range, should I, Reimar?

You can't use stuff from libavcodec unconditionally. Also we do not
really care about full or non-full range elsewhere so I'd consider the
current formula "good enough" for now.
But as I can see this would be the fourth case or so where that exactly
same code is use, I'd say it is high time to make it an extra function.

Greetings,
Reimar Döffinger



More information about the MPlayer-dev-eng mailing list