method private get_frame frame =
if must_fail then begin
Frame.add_break frame (Frame.position frame) ;
remaining <- track_size ;
must_fail <- false
end else
let off = Frame.position frame in
let len =
match remaining with
| None -> Lazy.force Frame.size - off
| Some r ->
let len = min (Lazy.force Frame.size - off) r in
remaining <- Some (r-len) ;
len
in
self#synthesize frame off len ;
Frame.add_break frame (off+len) ;
if VFrame.is_partial frame then begin
assert (remaining = Some 0) ;
remaining <- track_size
end