Wenn man ohne zusätzlichen Buffer auskommen will, dann muss man eben den Rest (immer <188 Bytes) in ein kurzes Array umkopieren und beim nächsten Pakerl dann als erstes in den Output Buffer schreiben. Und man müsste immer überprüfen, ob dar Offset noch passt. Das kann man aber recht billig lösen und macht das ddci2 Plugin auch.
Die Frage ist, wie lange willst Du da umkopieren? Das Offset dürfte auch über die 188 Bytes hinweg gehen (CAM oft genug neu initialisieren dürfte das ganz schnell bewerkstelligen). Und wenn man das Spielchen heftig genug treibt, hat man irgendwann auch die 512*188 Bytes als Sekundärbuffer ausgeschöpft. Immer weiter Kernel Memory ranholen und bis zur Bewusstlosigkeit das Offset fixen ist Unsinn, irgendwann muss man was droppen. Das kann man 1x beim Init machen, wo's keinen stört, um das Offset glattzuziehen, aber dafür müsste die Hardware bzw. deren Buffer auch resettet werden, sonst wird man das nicht los.