Hi all, I've just implemented output for ffmpeg to opengl using rectangular ycbcr textures, and the speed is quite good (compared to non-ycbcr mipmapped textures :-), but now I've noticed of course I can't use it on the NVIDIA (*evil*) closed source drivers... (a couple of developers using NV cards...)
I don't mind that much and maybe NVIDIA will pickup the MESA extension at some stage, but I've spotted an extension called GL_NVX_ycrcb in my extension list and I wonder has anyone here heard of it? I know go ask NVIDIA and I will just thought someone on this list might have seen or heard of it (google turns up nought)..
I asked NVIDIA about the extension a while back and got some info. Basically, GL_NVX_ycrcb defines two new image formats (GL_CRYCBY_422_NV and GL_YCRYCB_422_NV) that can be passed to glRead/DrawPixels, glTexImage, etc. that specify the image data is stored in 4:2:2 format. The 4:2:2 data is unpacked into (Y, Cr, Cb) triplets prior to pixel transfer.
It's up to you, then, to transform these triplets into RGB by setting up an appropriate GL_COLOR_MATRIX. My testing indicated, unfortunately, that the color matrix transformation is a software path in their driver and is pretty slow.
Depending on your NVIDIA hardware you can efficiently do YCbCr -> RGB conversion using register combiners or fragment programs.
It would be nice if NVIDIA would support Mesa's GL_MESA_ycbcr_texture extension, but I don't expect that to happen.
-Brian
------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel