[mythtv-commits] Ticket #2649: Opengl video renderer

MythTV mythtv at cvs.mythtv.org
Wed Jan 24 10:39:44 UTC 2007

#2649: Opengl video renderer
 Reporter:  mark_kendall at btinternet.com  |        Owner:  danielk
     Type:  enhancement                  |       Status:  new    
 Priority:  minor                        |    Milestone:  unknown
Component:  mythtv                       |      Version:  head   
 Severity:  medium                       |   Resolution:         
Comment (by mark_kendall at btinternet.com):

 Version 2 of the OpenGL renderer(substantially re-written).

 * Major changes
     * Implements a simple, multipass filtering structure utilising
 multiple framebuffer objects and/or multiple fragment programs.
     * Includes opengl versions of each of the existing deinterlacers
 (onefield, kernel, linearblend, bob) (N.B. these will deinterlace normal
 softblend osd)
     * Adds 3 new progressive scan versions of onefield, linearblend and
     * Mix and match software and opengl deinterlacers for main/fallback
     * Adds an opengl rendered OSD. This uses the existing YUV osd frame
 and alpha mask but does utilise the full screen size and resolution.
     * Software yuv2rgb fallback if fragment programs are not available on
 the graphics hardware.
     * Added a seperate opengl class to handle the window/context and all
 opengl resources (textures, fragment programs, framebuffers and 'non-
 standard' function calls)
     * Resizing of interactive tv is now handled in hardware if using the
 opengl osd.

 * Issues
     * Xrandr support is at least partially broken.
     * Some deinterlacers assume topfield first field ordering.
     * Small off-by-one rendering innacuracies of interactive tv(MHEG) when
 using opengl osd.

 * Performance/quality
     * NVidia 62XX series seems to be about the minimum needed for standard
 definition progressive scan (using progressive kerneldeint - which is by
 far the most GPU hungry) (FX5200 cannot cope with more then basic opengl
     * NVidia 7600GS copes well with SD main video, pip and opengl osd
 rendered at 720P
     * Quality of the progressive scan deinterlacers is pretty good. They
 cope very well with low to moderate movement but less well with fast
 motion. (Also seem to handle frame rate discrepancies better than bobdeint
 - eg PAL at 60Hz)
     * If the GPU cannot handle the demands, CPU utilisation seems to go
 through the roof...

 * To Do
     * Additional filters (lanczos and/or kaiser, denoise) - needs some
 upstream intergration (also need some help with lanczos)
     * More advanced deinterlacers (I've started to look at edge detection)
     * Framerate conversions e.g. PAL to NTSC rates
     * Performance improvements (minimise opengl state changes, does pip
 need deinterlacing)
     * Offscreen rendering for use by preview pip (ie hardware color
 conversion and scaling) and maybe transcode?

Ticket URL: <http://cvs.mythtv.org/trac/ticket/2649#comment:2>
MythTV <http://www.mythtv.org/>

More information about the mythtv-commits mailing list