On 14.7.2011 19:23, Udo Richter wrote:
Unlimited buffers tend to get unlimited big, crashing your app with out-of-memory. Huge buffers also add lag to the signal. With no bandwidth issues, buffers are usually almost empty, with bandwidth issues, buffers are usually almost full.
In the end you set them as big as necessary, and as small as possible. And giving them a fixed size (possibly configurable) is less complicated, especially in a multi-threaded environment.
I such case I would suggest to give the buffer an initial and maximum size, but I'm not sure if that's worth implementing. But the initial size should definitely be configurable.
My problem is really related to bandwidth problems. More specifically, ffmpeg/x264 seems to sometimes exceed the constant bitrate I specified using -br -minrate -maxrate.
With ffmpeg, having a 128kbps audio + 1050kbps CBR video sometimes gives bitrate over 2048kbps!
Instability on the client side (e.g. on a WiFi) can also cause the ring buffer to overflow...