Opened 4 years ago

Last modified 3 years ago

#2158 new defect

AV out-of-sync with VDPAU fullscreen and (some) deinterlacers

Reported by: tom.ty89@… Owned by: reimar
Priority: normal Component: vo
Version: unspecified Severity: normal
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description (last modified by reimar)

I can have -vf yadif but not -vf yadif=1 or the vdpau deint. If I don't go fullscreen (with deinterlacing enabled) everything goes fine.

I also get the "Your system is too SLOW to play this!" message.
But the spec of computer is Core i7 860 2.8Ghz, 8GB RAM and a Radeon HD5850

I am using the mplayer from ArchLinux?'s repo, with open source ati driver and GNOME shell (but I also tested with xfce4 to see if it's due to compositing, no luck).

Change History (5)

comment:1 Changed 4 years ago by tom.ty89@…

I forgot to tell it actually happens in -vo gl too.

comment:2 Changed 4 years ago by reimar

That is probably due to vsync, your monitor must run at a higher frame rate than the video frame rate to work in all cases.
This should not happen with VDPAU, though it might be a bug in the VDPAU implementation for Radeon cards.
Options to work around it (assuming it isn't that your computer actually is too slow) -framedrop or -vo gl:swapinterval=0 (might cause tearing though).
-vo xv is also supposed to avoid it.

comment:3 Changed 4 years ago by tom.ty89@…

My monitor, actually a HDTV, is at a rate of 60Hz, while the source is a telecined NTSC DVD. (But I remeber it happened in interlaced sources too.)

:swapinterval=0 does not work, while -framedrop has been a known workaround to me. Though it seems to work fine, I just think that -framedrop does not produce a "perfect" playback.

comment:4 Changed 4 years ago by tom.ty89@…

Also, I noticed that the video_out CPU usage is high too.

comment:5 Changed 3 years ago by reimar

  • Analyzed by developer unset
  • Description modified (diff)
  • Reproduced by developer unset

I forgot that the OpenSource? driver ignores MPlayer's swapinterval (for no good reason as far as I can tell).
Instead you have to set vblank_mode.
You can see the effect best with gxlgears, compare:
glxgears
with
vblank_mode=0 glxgears
you should see a much, much higher frame rate with the second.
That is basically the issue MPlayer has.

Note: See TracTickets for help on using tickets.