CR schrieb:

> To add nVidia alpha-blending support to softdevice for the OSD seems
> straightforward.
>
I fear that it is not that simple... But I wont stop you if you want to
try ;-)


> - Create an OSD buffer and store VDR's OSD with appropriate color weight
> 
> (i.e. if VDR uses 6-6-6 for RGB, left-shift RGB components into upper 6
> bits of each XRGB 8-bit color component)
> 
> - Store alpha value (menu settable?) in buffer
>
VDR uses ARGB32 for the OSD, but conversion routines exist. However you
will loose the alpha channel for the pixels (there seems to be no mode
with an alpha channel). _Every_ pixel has it's own alpha value, and this
is needed for most of the skins. I'm also not sure how one could get
transparent pixels with your method.. I doubt that colorkeys will work
in this case.


> - Call XvPutImage with second blitter port for OSD updates
> 
> - To clear or blank OSD perhaps use a second OSD buffer with alpha set to
> zero (0) and just call XvPutImage
> 
> Although this seems logical and easy in theory, I am having a very very
> hard time following softdevice's code.  I do not understand the
> partitioning of functions among files (video.c, video-xv.c, etc) and the
> lack of many comments makes it hard for me to reverse engineer the logic.
> 
Sorry, it is true that it is not simple to understand the code... If you
have specific questions just go on and ask them.

> I tried adding a menu item for "nv_hardware", but immediately after
> setting that softdevice crashes.  That's about as far as I've gone.
> 
> Is there anyone on the list willing to work with me to add or test this
> theory out?
> 
I would rather suggest to try to use OpenGL. I know that most modern
graphics cards support YUV modes in 2D textures. Unfortunately this is
not standardized :-(. If one could solve these problems (either by using
extensions of the standard, or by doing the conversion in the pixel
shaders), it should be quite simple to add an other layer with ARGB32
format for the OSD.
In fact I have running code which does this for Mac OS X which I could
make available. This code uses an extension of OpenGL which is only
available for Mac OS X for the YUV modes, so this would have to be
changed...

Bye,
Martin
_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel

Reply via email to