[mythtv] underscan OSD only

Bruce Markey bjm at lvcm.com
Mon Jan 5 01:20:18 EST 2004


Jim Paris wrote:
>>SMACK! ;-)
> 
> 
> Right back at you :)

I earned that. I was in such a hurry to delve into what I
though was GUI size confusion that missed your real concern
over On Screen Display.

> I've set the GUI position just fine.  The problem is that the OSD
> (during video playback) matches the video playback size, not the GUI
> size.  Set the Gui* sizes to, say 320x240, and you'll see what I mean
> (the OSD still covers the full screen while playing video).  With
> GuiSizeForTV=0, there's no way to change OSD size, so that's what I
> want to add.

Another place that could use some help with code manage the
OSD sizing is in the aspect ration modes. Try hitting "W"
and check out the OSD in each mode.

> You might not be noticing this since you say your TV is only slightly
> overscanned; the OSD is already positioned in slightly from the edges.

Ya, I've noticed it but here I have no sympathy for some of
the OSD theme designs. There is absolutely on excuse to not
follow the NTSC "action safe" and 'text safe" areas. All text
should be 10% in from the edge. There is no reason you
shouldn't be able to see everything on your screen with typical
overscan. Just yesterday I was playing with CC which assumes
that it can draw text within 8 pixels of the edge. I was able
to shrink it but not really going about it the right way.

I think if you could set parameters for the OSD rectangle
independently from (or I guess it would be more like 'scaled
to' =) the playback overscan settings or the aspect ratio
mode, that could be used as a common solution for aspect mode,
CC position and OSD in general.

> All the dispx/dispw/imgx/imgw/XJ_width/winw/etc stuff is confusing;

Agreed, but actually you may want to start at the other end
and work your way back. Check out osdtypes.cpp and osd.cpp
to see how sizes and positions are determined for OSD objects.

Part of the confusion is that there is a set of sizes and
position for the window area and another set for the Xv
display area. The OSD stuff is poked into to the Xv frames
so the only way to scale the OSD to the window is to do some
calculations of where the Xv frames are in relation to the
window size and position. VideoOutput::MoveResize(void) in
videooutbase.cpp may give your some idea of how these relate.

--  bjm
 


More information about the mythtv-dev mailing list