bufferのデータの保持の仕方が少々まずいみたいです。
きちんと計算しなおさないとだめだけど、とりあえず、余分にとるようにしたら動作した。
これで一安心かな。