- if (s->write_flag && s->buf_ptr > s->buffer) {
- writeout(s, s->buffer, s->buf_ptr - s->buffer);
+ s->buf_ptr_max = FFMAX(s->buf_ptr, s->buf_ptr_max);
+ if (s->write_flag && s->buf_ptr_max > s->buffer) {
+ writeout(s, s->buffer, s->buf_ptr_max - s->buffer);