[vdr] possible busy loop in cDvbPlayer::Action?

Udo Richter udo_richter at gmx.de
Sat Jul 2 17:43:36 CEST 2005


Luca Olivetti wrote:
> I also wonder how is it
> possible that vdr hasn't enough data to give to the device: no matter
> how big the buffer, once it is filled it should stay more or less full,
> unless you're at the end of the file.

One guess: On playback start, buffers are empty and can accept lots of
data. This could result in some busy loops until enough data is read to
fill the buffer.

If, for some reason, the disk read requires much CPU time, then the busy
loop will actually slow down the disk reading too.

Maybe, in case of softdevice, this is oscillating: A busy file reader
takes CPU from decoding, causing decoding to stall. And as soon as the
decoder is catching up, maybe by dropping frames, the file buffers run
empty causing the file reader to busy loop again. (speculative, though)

Cheers,

Udo



More information about the vdr mailing list