[mythtv] Off list: Chroma OSD (again)

Daniel Kristjansson danielk at cat.nyu.edu
Wed Jun 8 01:36:16 UTC 2005


On Tue, 2005-06-07 at 20:29 -0400, Andy Poling wrote:
> On Tue, 7 Jun 2005, J. Donavan Stanley wrote:
> > Andy,
> There are basically four tasks involved:

> 2) make it runtime configurable (I have zero experience here so it's likely to
> be rough going)
> 3) integrate the OSD evaluation and display with the new XV/XvMC code
Sounds about right.

> 1) re-integrate the paint-unused-squares functionality so that the COSD can
> use any chromakey color while still providing a black (or even
> user-configurable color to avoid burn-in) surround (letter- and/or
> pillar-boxes around the video) if necessary
> 4) document how to generate OSD themes compatible with the COSD and provide at
> least one working example (also not a strength for me)
> On #1, there is a decision to be made here.  Presently, the COSD forces 0x01
> as the chromakey color and thus black (0x00) is the "transparent" color in the
> OSD theme.  Daniel suggested using some unlikely color (like pure blue) as the
> transparent color in the OSD theme, and then mapping (re-writing?) that to the
> chromakey color on the fly in the COSD.  I'm concerned that will lead to
> increased cpu usage, and un-do some of the performance gains the COSD
> provides.

After thinking about this a bit, and having more experience with 
the OSD code, I'm not so sure we need special OSD themes. The OSD
code is windowed so that blending is only needed in rectangles 
where the OSD is visible. I wrote a quick ten liner C function to
blend an ARGB buffer to black and it doesn't take much time at
all on a 1920x1440 buffer. Blending to an imaginary chroma keyed
background only be a shade more difficult.

Have a look at BlendToBlack() in OSDSurface. If you still think
it's complicated I can write the BlendToChromaKey() function
for you.

-- 
Daniel Kristjansson <danielk at cat.nyu.edu>



More information about the mythtv-dev mailing list