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 <[EMAIL PROTECTED]> 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++
