Changeset 3190
- Timestamp:
- 2007-08-14 16:37:24 (1 year ago)
- Files:
-
- oogg/trunk/packet.ml (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
oogg/trunk/packet.ml
r3189 r3190 38 38 rc_tf : granulePos -> float option; 39 39 mutable rc_cache : packet list; 40 rc_lgp : granulePos option; 40 mutable rc_lgp : granulePos 41 (*rc_ngpf : string -> string -> granulePos -> granulePos;*) 41 42 } ;; 42 43 43 let packet_from_last_gp crec pack gp = 44 (* reconstruct packet given a previous gp *) 45 let packet_from_last_gp crec pack = 46 let gp = crec.rc_lgp in 44 47 let new_gp = Granules.calculate_next_gp pack.p_page.identity gp in 48 crec.rc_lgp <- new_gp; 45 49 [< '{ pack with p_granulepos = new_gp; p_time = crec.rc_tf new_gp } >] 46 50 51 (* flush the non-timestamped packets from the context record now that we 52 have a real granulepos *) 47 53 let new_gp_and_flush crec pack = 48 54 let rec _ngaf l gp = match l with … … 54 60 let l = crec.rc_cache in 55 61 crec.rc_cache <- []; 62 crec.rc_lgp <- pack.p_granulepos; 56 63 [< _ngaf l pack.p_granulepos; 'pack >] 57 64 … … 76 83 | None -> (match crec.rc_lgp with 77 84 | None -> (crec.rc_cache <- pack::crec.rc_cache; [< >]) 78 | Some gp -> packet_from_last_gp crec pack gp)85 | Some _ -> packet_from_last_gp crec pack) 79 86 | Some gp -> [< new_gp_and_flush crec pack >];; 80 87