[mythtv-commits] Ticket #7650: Use libmythui to draw the OSD

MythTV mythtv at cvs.mythtv.org
Thu Jan 14 14:59:31 UTC 2010


#7650: Use libmythui to draw the OSD
-------------------------------------+--------------------------------------
 Reporter:  markk                    |       Owner:  markk   
     Type:  task                     |      Status:  accepted
 Priority:  minor                    |   Milestone:  0.23    
Component:  MythTV - Video Playback  |     Version:  head    
 Severity:  medium                   |     Mlocked:  0       
-------------------------------------+--------------------------------------

Comment(by markk):

 (In [23135]) Branch libmythui-osd: Enable OSD painting using libmythui.

 This is a limited implementation and provides the basic OSD functions
 only.

 What's missing (that you might expect to still be there)
 - the OSD menu
 - OSD dialogues
 - all forms of subtitles, teletext, itv (MHEG) and dvd menu buttons
 - the edit bar
 - no movement during fade
 - other stuff that I never use and haven't even thought about yet...

 What's broken (that I know of)
 - OpenGL playback (see below)
 - proper scaling/positioning when using the XvMC IA44 or normal alpha
 blended OSD (i.e. XVideo/XvMC)
 - some OSD behaviour is broken (e.g. can't clear av sync or picture
 attribute adjustments)
 - (relatively minor) breakage in frame ordering for software decoded
 VDPAU playback (pause frame issue)

 What's not working as well as it used to
 - some minor/occasional on-screen garbage (i.e some windows not being
 cleared when they should)
 - a small but significant performance regression in VDPAU playback (not
 OSD related)
 - alpha blending (i.e. normal XVideo) performance has taken a noticeable
 hit
 - fade times are ALL hard coded to 5 seconds
 - there are some minor inconsistencies between painters in how alpha
 blending is working.

 What's new/different/better
 - sizeable performance improvement for VDPAU, OpenGl and Direct3D. Fade
 is just about smooth with a 1920x1080 sized OSD and 1080i h264 playback
 on an Ion system - will hopefully be totally smooth once I've ironed out
 the performance issue noted above.
 - it's themeable in line with the main UI theme/s. alpha pulse,
 animations, shapes, rects etc
 - some small changes to allow theming of the status info (which will
 break translations as well)

 What didn't make it (yet)
 - theming of the fade values and fade movement (possibly down to the
 element level)
 - more flexible OSD theming - i.e. let the themer decide on the number
 and 'features' of each OSD window.
 - context sensitive theming (e.g. video vs live tv)
 - more themeable attributes such as video/audio properties, recording
 status etc

 Implementation wise, I've taken a scythe to much of the OSD code with a
 view to adding back what is still needed/usefull to re-enable missing
 functionality. All data is now passed via QString pairs and in the short
 to medium term it is likely that the OSD class will be re-implemented
 (again) as a MythScreenStack or sub-class thereof to ensure maximum
 continuity between the OSD and main UIs.

 OpenGL

 OpenGL playback is totally broken on windows and will result in frequent
 lock ups and/or segmentation faults on linux (OS X untested). This is
 because we are creating and using QGlWidgets outside of the main UI
 thread. Clearly this needs fixing before we can move forward.

 I've included one basic, widescreen theme that doesn't really do justice
 to what can be achieved.

 Refs #7650.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/7650#comment:47>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list