Agh! No more about the damned buffer size, please!! Not only can you not control it, but the size you get may not actually be the same for every callback - the value in prepareToPlay is only a vague maximum size. The audio device or whatever is calling might decide to suddenly throw you a different sized block for its own random reasons.
Basically, stop trying to control it, and just get on with writing a decent bit of code that handles whatever data arrives. If your algorithm can only accept a fixed block length, then use a reservoir of samples to buffer what you send to it.