Split out various states so that multi-block stream inputs can be dealt with properly.