This is a bit more complicated, to avoid multiple reads/writes.
We'll read as much as possible - possible past frame end. This may
cost an extra copy - or even more complexity for dealing with slices
if we want to save the copy.