Changeset 3194
- Timestamp:
- 2007-08-16 00:38:00 (1 year ago)
- Files:
-
- oogg/trunk/Makefile (modified) (1 diff)
- oogg/trunk/granules.ml (modified) (1 diff)
- oogg/trunk/oogg_dump_packets.ml (modified) (1 diff)
- oogg/trunk/packet.ml (modified) (5 diffs)
- oogg/trunk/packet.mli (modified) (1 diff)
- oogg/trunk/streamSort.ml (added)
- oogg/trunk/streamSort.mli (added)
- oogg/trunk/types.ml (modified) (1 diff)
- oogg/trunk/types.mli (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
oogg/trunk/Makefile
r3186 r3194 28 28 ocamlopt $(PROF) -o oogg_rip $(LIBINCS) $(LIBS) oogg_rip.ml 29 29 30 oogg.cmxa: types.cmx crc.cmx file.cmx granules.cmx page.cmx page_util.cmx \31 mediaStream.cmx packet.cmx packet_util.cmx 30 oogg.cmxa: types.cmx crc.cmx file.cmx granules.cmx streamSort.cmx page.cmx \ 31 page_util.cmx mediaStream.cmx packet.cmx packet_util.cmx 32 32 ocamlopt $(PROF) -a -o oogg.cmxa -i $^ 33 33 oogg/trunk/granules.ml
r3193 r3194 100 100 *) 101 101 let theora_last_gp bos prevpack thispack thisgp = 102 if thisgp = Some (0,0,0,0) then Some (0,0,0,0) else 102 103 match thisgp with 103 104 | None -> None oogg/trunk/oogg_dump_packets.ml
r3187 r3194 4 4 let pps = Packet.to_packetStream ps;; 5 5 let ppps = Packet.reconstruct_timing pps;; 6 Packet_util.print_packetStream ppps;; 6 let all_streams = Packet.sort ppps;; 7 Packet_util.print_packetStream 8 (*ppps;;*) 9 (snd (List.nth all_streams (int_of_string Sys.argv.(2))));; oogg/trunk/packet.ml
r3192 r3194 1 1 open Types 2 2 3 let new_packet oc page data isLast =3 let new_packet oc page data n isLast = 4 4 { 5 5 p_data = (match oc with None -> data | Some d -> d ^ data) ; 6 6 p_granulepos = if isLast then page.raw.granulepos else None ; 7 7 p_time = if isLast then page.time else None ; 8 p_page = page 8 p_page = page ; 9 p_pageno = n 9 10 };; 10 11 … … 15 16 if page.raw.bos then 16 17 cont := (sn, {cont_packet = None})::!cont; 17 let rec _ptp raw_data =18 let rec _ptp raw_data n = 18 19 let pcont = List.assoc sn !cont in 19 20 let oc = pcont.cont_packet in … … 21 22 match raw_data with 22 23 | h::[l] when not page.raw.last_packet_complete -> 23 (pcont.cont_packet <- Some l; [< 'new_packet oc page h true >])24 (pcont.cont_packet <- Some l; [< 'new_packet oc page h n true >]) 24 25 | [h] when not page.raw.last_packet_complete -> 25 26 ((match oc with … … 29 30 ) 30 31 | h::[] when page.raw.last_packet_complete -> 31 [< 'new_packet oc page h true >]32 | h::t -> [< 'new_packet oc page h false; _ptp t>]32 [< 'new_packet oc page h n true >] 33 | h::t -> [< 'new_packet oc page h n false; _ptp t (n+1) >] 33 34 | [] -> [< >] in 34 _ptp page.raw.raw_data ;;35 _ptp page.raw.raw_data 0;; 35 36 36 37 let to_packetStream pstream = … … 107 108 | [< >] -> [< >] in 108 109 _rt pstream;; 110 111 module PacketInput = 112 struct 113 type k = serialNo 114 type s = packet 115 let eq = (=) 116 let get_key p = p.p_page.raw.serialno 117 let is_first p = p.p_page.raw.bos && p.p_pageno = 0 118 let is_last p = p.p_page.raw.eos 119 end;; 120 121 module PacketSort = StreamSort.StreamSort (PacketInput);; 122 123 let sort = PacketSort.sort;; oogg/trunk/packet.mli
r3187 r3194 2 2 3 3 val reconstruct_timing : Types.packetStream -> Types.packetStream;; 4 5 val sort : Types.packetStream -> (Types.serialNo * Types.packetStream) list;; oogg/trunk/types.ml
r3187 r3194 106 106 mutable p_granulepos : granulePos ; 107 107 mutable p_time : float option ; 108 p_page : page 108 p_page : page ; 109 p_pageno : int 109 110 };; 110 111 oogg/trunk/types.mli
r3187 r3194 69 69 mutable p_granulepos : granulePos ; 70 70 mutable p_time : float option ; 71 p_page : page 71 p_page : page ; 72 p_pageno : int 72 73 };; 73 74