On Sat, Sep 16, 2006 at 05:59:57PM +0200, Stefan Lucke wrote:
> On Samstag 16 September 2006 16:42, Heikki Lindholm wrote:
> > la, 2006-09-16 kello 15:25 +0200, Stefan Lucke kirjoitti:
> > > On Samstag 16 September 2006 13:38, Heikki Lindholm wrote:
> > > > YV12 has different U/V plane order compared to I420. This patch fixes 
> > > > the YUV() method in the dfb driver accordingly. Without the patch YV12 
> > > > has wrong colours.
> > > 
> > > So you get wrong colors when YV12 is selected.
> > 
> > Yes.
> > 
> > > Do you get wrong colors too when I420 is selected ?
> > 
> > No. By the spec the U/V ordering is not the same for the I420 and YV12
> > color spaces, hence we need to swap pointers somewhere if the source
> > data (the video) is always in the same format. When looking at different
> > sources of information, there might well be some inconsistency in what
> > exactly is the U/V order for the YV12 (or I420.) Anyway, if my patch
> > works correctly for other hw (I have g400) then it's probably correct.
> > 
> 
> >From naming that would be correct.
> 
> I want to explain my argumentation again.
> We get some date from the decoder. Ffmpeg's name for that is YV12.
> - If we select X11-Xv with YV12 we get correct colors.
> - We get correct colors if we convert YV12 -> YUY2 and allocate an
>   X11-Xv surface for format YUY2.
> - We get correct colors (same decoder + same YV12 -> YUY2 converter) when
>   we use a YUY2 surface of directfb.
> - Our software OSD converter (RGB -> YV12) produces correct colors too.
> 
> By this, it is proven to my opinion that our interpertation of decoded
> planes is correct. First plane Y, second plane U and third plane V.
> 
> - We have to specify I420 insteadof YV12 for most DirectFB drivers. So
> DirectFB does something bad.

just to add some more information into the pool,
here is a list of some good urls to get a feeling
for those formats ...

http://www.fourcc.org/yuv.php
http://wiki.multimedia.cx/index.php?title=I420

HTH,
Herbert

> Quoted code from DirectFB is a prove for the fact that they have mixed
> I420 and YV12, as it is not executed in case of I420. With I420 we
> get correct colors. If they would swap chroma components in case of
> DSPF_I420 every thing would be fine.
>
> It should be an acceptable action for users to toggle between I420 and
> YV12 to get the correct colors.
> 
> We could rename the OSD option to some less technical term if thats an issue.
> 
> But I definitly vote against touching a swap in this place.
> 
> > > In DirectFB is I420 vs YV12 is swapped. I know that video is YV12. But
> > > we have to specify I420 in DirectFB. With X11 it is YV12 :-).
> > > 
> > > Look at the code of gfxdriver/radeon/radeon_overlay.c, (line 661):
> > > 
> > > 661                     if (surface->format == DSPF_YV12) {
> > > 662                          __u32 tmp  = offsets[1];
> > > 663                          offsets[1] = offsets[2];
> > > 664                          offsets[2] = tmp;
> > > 665                     }
> > > 
> > > They swap U/V in case of YV12 :-( .
> > > 
> > > There is to my optinion no need to swap again.
> > > 
> 
> 
> -- 
> Stefan Lucke
> _______________________________________________
> Softdevice-devel mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/softdevice-devel
_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel

Reply via email to