Okay, so with the BASS_CONFIG_NET_BUFFER left alone, overnight, one of the engines reported a stall. The others didn't. I was expecting them all to report a stall at the same time, but they didn't. In fact all night it's been fine, except one instance of the engine. So that's a little puzzling. Again, everything is on the same PC, even the engine that's doing the streaming.
However, I want to address the RecordStart because that's playing silly beggars too. I did try to combat that problem by doing a RecordStart and using my own RECORDPROC, which was fine, but I couldn't add this into a DECODE mixer. So I did a StreamCopy and added it to the mixer that way. This seemed fine, until yesterday I noticed that there was a difference between the VU meter which was being fed from the RecordStart id and the VU meter on the mixer it was plugged into. So I muted the input device and the RecordStart meter dropped immediately, but the mixer one was at least a second behind it. Same when I unmuted.
I've gone back to taking an actual input device because I can guarantee at least where that audio will be up to, plus I can do the mute test on the input device and watch the vu meters.
So yesterday I've removed the RECORDPROC and the StreamCopy and I've gone back to the original way of adding it into the DECODE mixer. This is of course returned the original problem where the meters are now in sync, the RecordStart meter and the mixer meter, but the whole input audio goes out of sync by at least a second - and there's no reason from what I can see.
I think it may be best to explain what I'm trying to do because there doesn't seem to be a way to do what I want to do in BASS properly due to limitations surrounding Splits and Decode channels / mixers etc.
I have 16 output buses A to P. Each of these are independent from each other and can either go to a physical device output or they stream out to shoutcast or are sent to a file for recording or they create a 0.0.0.0 stream. There is a 17th output bus (BUS X) which doesn't go anywhere except to No Sound. The use of this will be explained shortly.
I have 8 input buses. Each of these are independent from each other and can either take a physical device input or a stream from 0.0.0.0.
So you set Input 1 up to take a physical input and you can map Input 1 to Output Bus A. You can map it to any output bus. If you choose not to map it to an output bus then it is assigned bus 17. This is the No Sound bus (BUS X) mentioned before.
In this case though, we will map it to bus A. Input 1 is now feeding into Bus A and this bus is outputting to an internet stream or output device. One or the other.
This is all I want to do. I don't think this should be as difficult as it has become.
I've attached a diagram that shows how it is laid out.