Re: Interlaced video, VSYNC locking, etc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Tue, Jan 22, 2002 at 06:38:52PM +0000, Stephen Davies wrote:
> 
> HI Brian,

Hi Stephen,

> On Tue, 22 Jan 2002, Brian J. Murrell wrote:
> 
> > What is judder, exactly?
> 
> Without locked sync some frames get displayed for more time than they
> should, some for less time than they should.  So smooth motion becomes not
> so smooth.  Scrolling titles show the effect - instead of scrolling
> smoothly they jerk faster and slower.

OK, this is my #1 peeve with video display on Linux currently -- even
when the output frame rate equals the input frame rate.  I have my
"mplayer playback" machine hooked up to my NTSC TV so the output frame
rate is definately the same as the input frame rate.

I still see judder though.  And I can report with certainty that it is
due to the lack of locking frame changing with the VSYNC.

I determined this because I now have two video cards capable of TV-Out
under Linux: A Matrox G400 and an ATI Radeon.  I have thus far been
reluctant to pull my G400 out of my workstation and put it into my PVR
because it seems an awfully expensive waste of a lot of video hardware
where not-so-expensive hardware should do the trick -- like my
~CAN$100 Radeon.

But because I could experiment with VSYNC locking with the G400 and
not the Radeon, I caved.  I put the G400 into my PVR, and using
mplayer, I tried several mplayer video output drivers, mostly
framebuffer oriented.  Mplayer will use the syncfb driver that is
available around the 'net which gives mplayer the information it needs
about when the card is VSYNCing through a kernel driver.

The results were amazing!  Using my CNN benchmark, even captured and
MPEG1 encoded streams played back with as much smoothness as the
original broadcast.  There was the very occaisonal blip (judder) but I
wrote that off to CPU diversion.  I don't recall witnessing any
"tear"ing effects either.  Very nice!

I also tried the directfb driver as well as mplayer's own mga (with
the mga_vid kernel module) but neither gave results as good as syncfb,
despite the mplayer docs saying that the mga video driver/kernel
module had the syncfb VSYNC functionality in it.

When I put my Radeon back in, it was horrifying.  What I had thought
previously was a good picture, was not so much anymore.  Why not just
keep using the G400?  Well several reasons:

1) using the framebuffer output modes the picture was dark, and the
   geometry did not fill the screen properly.  No amount of fiddling
   with fb.modes values could get it to.  Even if I could, the
   darkness of the picture was just unacceptable.  I don't know why
   the picture was so dark.

2) Using the XFree86 driver yeilds TV-Out but unaccelerated so no
   hardware scaling, etc.

I am assuming there is some proprietary extension in the G400 that
allows the syncfb kernel driver to get the VSYNC signal.  If this is
the case, it is a shame -- it is a great feature.  If not, it would be
nice to see the same kind of support for other video cards, like the
Radeon, etc.

It would seem that Stephen is dead on in his assertion that for the
future of video on Linux, the ability to syncronize playback in
software (like mplayer) to the VSYNC is essential.  What can we do to
realize this goal?

b.

-- 
Brian J. Murrell





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux