[mythtv-users] New video renderers/Suggestions

Mark Kendall mark.kendall at gmail.com
Tue Sep 25 16:28:16 UTC 2007

On 9/25/07, Brian Walter <blwalter at gmail.com> wrote:
> Greetings,
> Trying to understand the new play back profiles (which I like the
> concept of).
> After a quick search, I don't find any information on say xv-blit renderer.
> Is there a resource I can read/search/etc to get a handle on the
> relative merits and weaknesses of the various renderers?


As far as I'm aware, there is no documentation for playback profiles.

In a nutshell (largely from memory, definitely incomplete and likely
to be innacurate!):-

 - define a resolution/range of resoltions for which you would like a
specific playback profile.

 - pick a decoder
    - select from software decoders (nuppeldecoder, ffmpeg, libmpeg2)
or hardware assisted decoders (ivtv/pvr350, xvmc, mac, via-xvmc). Your
choice is dependant on your hardware and will determine which
renderers are available.

- pick a renderer
    - for a typical Xorg setup with drivers installed, you'll be able
to pick from:-
        - xlib - all scaling, colour conversion etc will be done in
software. This should probably be your renderer of last resort (and
the code assumes it is, if it has to fall back to something).
       - xshm - (slightly?) better than xlib and makes use of shared
memory to speed up memory transfers.
      - xv-blit - this is the standard xvideo that most people will be
familiar with. Colour conversion and scaling are handled by the gpu
and colour/hue/contrast adjustments may be available (dependant on
your graphics card and drivers)
      - xvmc-blit - xvmc that many people know and love. The gpu
handles certain elements of the mpeg2 decoding process to lower cpu
usage. There are implications for the onscreen display which is
typically only rendered in grayscale.
      - xvmc-opengl - this takes advantage of a feature only available
through the nvidia proprietry drivers. The partially decoded/xvmc
frames are rendered directly into an openl window. The main advantage
is that opengl can be used to render a colour osd at the resolution of
the display.
     - opengl. The opengl framework is used to render the video. The
gpu can be used to assist in colourspace conversion, scaling, osd
rendering, displaying PiP and deinterlacing. At the moment, the
advantages are; osd rendered at the screen resolution and a wider
range of frame rate doubling deinterlacers. You will probably need a
fairly recent graphics card to take advantage of all of these

- other renderers are platform/hardware dependant:-
    - directfb - accesses the framebuffer directly where
driver/hardware support is available. Some acceleration may be
available (e.g. scaling)
    - ivtv - specific to users of PVR350s
    - directx - for a windows frontend...
    - quartz  - mac related but I know nothing about these.

- pick an osd rendering method
    - softblend - this is the standard approach where the osd is
blended into the video frame in software. Main disadvantages are
flickering when using a bob deinterlacer and osd is generated at the
resolution of the video source.
    - chromakey/ia44blend - from memory both are specific to
generating a colour osd when using xvmc (but I've never used them)
   - opengl. The various opengl osd renderers (which one depends on
your video renderer) should all show the osd at the display resolution
and shouldn't flicker when using bob.

 - then pick a primary and secondary deinterlacer (I won't go into
those now - must do some work)

Bear in mind that there is also an interaction between playback
profiles and xrandr if you are using it (e.g. you might switch to a
1080i/p mode to play back 1080i/p mpeg2 material and use xvmc as the
decoder/renderer combination at this resolution to assist with the
extra decoding burden)

Does that give you a start?



More information about the mythtv-users mailing list