I've been investigating the YUV overlays used by Picasa and it seems like it would be a huge problem to tackle this sort of support without some sort of external YUV conversion library and/or hardware support.
SDL has great support for transparent hardware/software YUV support; it might be possible to adopt some of the YUV hw/sw implementation code from SDL into Wine. Both projects are LGPL.
Whatever the implementation, getting support into the DirectDraw layer for scaling YUV surfaces is a fairly large job.
Matt.
On Sun, Mar 06, 2005 at 03:18:53PM -0700, Matthew Mastracci wrote:
I've been investigating the YUV overlays used by Picasa and it seems like it would be a huge problem to tackle this sort of support without some sort of external YUV conversion library and/or hardware support.
SDL has great support for transparent hardware/software YUV support; it might be possible to adopt some of the YUV hw/sw implementation code from SDL into Wine. Both projects are LGPL.
Whatever the implementation, getting support into the DirectDraw layer for scaling YUV surfaces is a fairly large job.
We had that in very early versions (as ddraw was just one pretty large X hack ;)
I would suggest using the Xv extensions again if possible.
Software YUV conversion is not hard either.
Just someone needs to do it :/
Ciao, Marcus
On Mon, Mar 07, 2005 at 01:09:34PM +0100, Marcus Meissner wrote:
We had that in very early versions (as ddraw was just one pretty large X hack ;)
Those were the days :-)
I would suggest using the Xv extensions again if possible.
Yes, and it will provide hardware-based scaling for free too... I wonder if GL exports any YUV-like texture formats on modern hardware.
Software YUV conversion is not hard either.
Yes, I have some code lying around that does it. Even wrote in in ARM assembly for my iPAQ movie player :-)
Lionel (back from vacation and catching up with his mails)
Lionel Ulmer wrote:
I would suggest using the Xv extensions again if possible.
Yes, and it will provide hardware-based scaling for free too... I wonder if GL exports any YUV-like texture formats on modern hardware.
Not really. :( There's an apple-specific extension for it. On the other hand, YUV->RGB conversion should be really easy to write as a fragment program (either NV_texture_shader, ARB_fragment_shader [GLSL], ARB_fragment_program, NV_fragment_program) on any gf3-era card or later, which I'm guessing is why not many implementors are rushing to standardise YUV textures.
--Adam