Mailing List archive

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

[linux-dvb] Re: EOVERFLOW




Wolfgang Thiel wrote:
Sorry for doing a probably very silly reply (without having had a look
at the source as well):

On Mon, Jun 28, 2004 at 01:09:50AM +0200, Vincent Bernat wrote:

OoO En cette soirée bien amorcée du dimanche 27 juin 2004, vers 22:49,
Vincent Bernat <bernat@free.fr> disait:


In a system with 4 DVB cards, I sometimes get a EOVERFLOW error when
trying to read from the card. I have raised MAX_EVENTS with no
success. How can I prevent this ?
I have slightly modified the kernel to get some debug output :

dmxdev: buffer overflow (len: 188, free: 188)
dvb_dmxdev_ts_callback [415]: overflow
...
The first line happens because len>=free in dvb_dmxdev_buffer_write in
dmxdev.c. The second line happens when coming back in
dvb_dmxdev_ts_callback.

Have you tried len>free in dvb_dmxdev_buffer_write, not >=?


don't do that - the ring buffer implementation has the fill-state on the next
free byte. Killing the "==" might make the buffer look empty. The current
implementation asserts that atleast one 188 block is never going to be
used, that's why the buffer overrun message comes up at 188'free. You
have to change the ring buffer implementation semantics to allow for full
usage without a gap.

-- guido                                  http://google.de/search?q=guidod
GCS/E/S/P C++/++++$ ULHS L++w- N++@ s+:a d(+-) r+@>+++ y++






Home | Main Index | Thread Index