Hi,
while reading through the driver sources, I found that the free byte
count of the ring buffers is not calculated correctly.
In the current implementation, code like this is used (example taken
from dmxdev.c):
Obviously a ring buffer of size <n> cannot hold more than <n-1> bytes.
Otherwise you cannot distinguish between an empty and a full buffer.
OMG you're a genius. I think this explains the numerous "buffer empty"
messages we've been seeing in vdr without having been able to fix them with
a higher buffer. It also looks like the UK tuning problems / ring buffer
overflows with BBC2 / BBC News 24 and some other channels are related to
this and the new head driver. Why the bug would only be exposed primarily
with those two channels in transfer mode to a full featured DVB-s card -
who knows...