[MPlayer-users] Some questions about "exact rendering" and frame rate

Arpi arpi at thot.banki.hu
Sat Dec 21 02:17:02 CET 2002


Hi,

> Our problem is that we are so far unable to render our test sequences
> without either "tearing" or skipped/doubled frames.  My meager understanding

try -double
and use mga_vid or vidix drivers (and matrox/ati card)

unfortunatelly the current Xv api doesn't provide standard ways to avoid
the tearing issue. an dnone of the Xv drivers support more than 2 hardware
buffers (ie triple buffering).

> is that in linux your can either "blit" the pixels into the framebuffer
> (which can lead to "tearing") or you can "overlay" them which, as I understand
> it, means you are writing into the framebuffer in synchrony with the
> actual display framerate.  This will prevent tearing but will still
no
overlay is something totaly different thing
and tearing can be avoid by both framebuffer rendering and overlay, the key
is the number of buffers _and_ vbi/vsync syncornization

> lead to doubled/skipped frames if the .avi frame rate is not
> exactly the display frame rate.
it's your primary problem. you must have integer multiply or same freq than
your movie.

> First:  is my understanding more or less correct,
>         or am I hopelessly lost?
partially

the main problem is that 2d video support on linux (and actually under
windoze too) is poor, if you look at it with professional requirements (like
perfect sync, high freq&res playback, (de)interlacing etc...)

most of the current vga cards is able to do these by hw, but these are not
supported by their drivers (and actually by teh driver API at all, be it
directx or Xv or whatever - this is why i'm developing mga_vid...)

> Second: If I do understand things, how do I go about getting "exact
>         rendering", namely no tearing, no frame doubling/skipping, and
>         having the frames actually displayed at the desired rate so
>         that our objects and patterns move at the desired
>         spatio-temporal velocities?
1. choose a good vga card for this - i suggest a matrox or ati one
2. choose a driver API with supoprt or these. even svgalib could be ok, with
some VBI patches applied to the kernel. you also need options like -double.

> Third:  In particular, is it sufficent to write, say, a 60Hz
>         (progressive) "mode" within the XF86Config file and then just
>         let `mplayer -noskip' play the .avi at the default 60fps embedded
-noskip is not required (and no such option) as it's the default.
it's not mplayer skipping yoru frames - it's your vga card/driver.
if you configure your modeline to match the movie fps, then mga_vid will
play it perfectly on matrox g200/g4x0/g550, and probably vidix too on any
ati card.

> As always, thanks for your help.  Several in my group are waiting
> to see if Linux can solve a longstanding problem that they cannot
> in M$ Windoze.
the problem is that only a few people is intersted in solving this issue,
including me, Billy "vektor" Bigs (but he's more interested in TV output)
and others. most users are happy with the 'default' quality, mostly because
the skipped/doubled frames of a 24fps movie at their 85/100hz screen isn't
so visible (it's max 25% frametime delay, and teh human eye is slow).
it's the same on windoze. the professionals use special cards (like AVID)
for such purposes, and the avg. users are happy with their nvidia...


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu




More information about the MPlayer-users mailing list