Klaus Schmidinger wrote:
If this "auto sized ringbuffers" change (which, from what I can see so far - haven't tried it myself - looks like a good idea) is ever to make its way into the official VDR source, you'll need to get rid of the above waiting. It says in receiver.h:
...the call must return as soon as possible, without any unnecessary delay.
Maybe I should change this to
...the call must return immediately.
or "must not sleep".
I did mention in the patch description, which you snipped, that this was just a debugging tool. IOW that change can be dropped entirely, the condition that makes it sleep has never triggered since I made the buffers grow faster anyway.
I'd be great if somebody with a FF card could test the patch, the code has worked flawlessly on my vdr server, not a single overflow since v2. However on the streamdev/softdevice client I had two transfer buffer overflows (153 bytes each) just after switching to a new channel, while both machines were under significant (io) load, cutting aot. I don't think this is reason enough to introduce a minsize rb parameter, but if it also happens w/ a simple FF setup, that would be an option. I don't want to raise the default minimum, because 128k is often enough and i'd like to avoid shrinking, to keep things simple. The patch is for 1.4.6, but applies also, with a few harmless offsets, to 1.5.2.
artur