mplayer-git: problems with vdpau playback

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

 



Hello,

On Mon, May 24, 2010 at 01:01:45PM +0300, Uoti Urpala wrote:
> On Mon, 2010-05-24 at 00:26 +0400, Stanislav Maslovski wrote:

[skipped]

> > [   vdpau] Error when calling vdp_video_surface_create: The system does not have enough resources to complete the requested operation at this time.
> 
> This error normally means that you're running out of graphics card RAM.
> How much memory does your card have? From what I've seen several people
> have had problems with 256 MiB cards but few with 512 MiB ones.

First of all, thanks for a quick reply! My card has 256 MB of video RAM.

> Is the problem specific to that file? Generally you'd expect videos with
> small resolution to require less memory and large resolution to require
> more memory.

Currently, this is the only file with which I can notice this problem.
But I doubt that the source of the problem is simply the low amount of
video RAM, for the reasons that I give belov.

[skipped] 

> > It seems that the bug is somehow related to the X server, or to the
> > nvidia driver (or maybe even to the hardware).
> 
> It doesn't necessarily count as a real bug - could be just inefficient
> RAM use by the driver so that the card has barely enough free to work
> even in the best case, and arbitrary small things could use up a bit
> more RAM so it stops working.

My random guess is that maybe under some conditions such a situation
appears that the video surfaces (or some other related resources in X
or in the nvidia driver) are allocated but not freed later. This could
explain why this video can be played normally on the first run but
cannot be on the second. But read also below...

> >  However, because the
> > mplayer from SVN does not trigger this bug, there is a probability
> > that some kind of workaround in the vdpau driver is possible. That is
> 
> Well the driver could minimize RAM use; if you're right at the edge then
> arbitrary small things could make the difference. However I'd expect
> that to help in limited cases only - slightly smaller videos would
> always play fine anyway, and more resource-hungry ones fail no matter
> what.
> 
> You could test "-vo vdpau:output_surfaces=2". This allocates one less
> output surface than the default which should reduce RAM use a bit. Note
> however that lowering it to 2 has performance drawbacks and hurts timing
> functionality so it's not recommended for normal use.

Thanks for this note, I could actually find this option myself in the
man page... Nevertheless, I tried this option and found a surprising
result: while I cannot play that video now with a simple command like
this

mplayer -vo vdpau ....

I can play it normally with no problems at all with this command:

mplayer -vo vdpau:output_surfaces=N

where N can be any value in the range 2 <= N <= 9! The manpage says
that the default is 3, and if I set N explicitly to 3 I do not observe
any problems, the video plays perfectly!

With N > 9 I can see lots of memory related errors in the log, and
also the video stutters, but interestingly enough the distortions in
the picture look quite different. With, let me say, "my bug" in action,
the playback looks much alike a playback of a damaged video file (with
typical MPEG-4 artifacts), while with an explicit output_surfaces
option with N > 9 the frames just flicker back and forth, and there is
no artifacts in them (to be precise, sometimes in the beginning of a
playback I see unfinished video frames but they disappear in a half a
second after which the picture just flicker).

> If you can do anything to reduce other video RAM use that could help. At
> least disabling any compositing manager if you're using one would be

I do not have any. I am on a very simplistic setup with a light-weight
WM (IceWM) and without any DE.

> worth testing (and preferably also disabling the composite X extension,

This option is also currently disabled. BTW, I played with this
setting some time ago, and I noticed that this my bug could be
observed in both cases: with the composite extension enabled and also
without it.

-- 
Stanislav


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux