Changeset 7101

Show
Ignore:
Timestamp:
01/14/10 22:09:01 (8 months ago)
Author:
metamorph68
Message:

Finer-grained decoding loop for duration computation

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/ocaml-mad/src/mad.ml

    r6910 r7101  
    6565  try 
    6666    let duration =  
    67       try 
    68         (* Decode some data *) 
    69         let decode_samples () =  
    70           let data = decode_frame_float mf in 
    71           Array.length data.(0) 
    72         in 
    73         let samples = decode_samples () in 
    74         (* Get data information *) 
    75         let (samplefreq,_,_) = get_output_format mf in 
    76         (* The decoding loop *) 
    77         let rec decode_loop samples = 
    78           try 
    79             let samples = samples + decode_samples () in 
    80             decode_loop samples 
    81           with _ -> samples 
    82         in 
    83         let decoded_samples = decode_loop samples in 
    84         (float decoded_samples) /. (float samplefreq) 
    85       with _ -> 0. 
     67      (* Decode some data *) 
     68      let decode_samples () =  
     69      let data = decode_frame_float mf in 
     70        Array.length data.(0) 
     71      in 
     72      let samples = decode_samples () in 
     73      (* Get data information *) 
     74      let (samplefreq,_,_) = get_output_format mf in 
     75      (* The decoding loop *) 
     76      let rec decode_loop samples = 
     77        try 
     78          let samples = samples + decode_samples () in 
     79          decode_loop samples 
     80        with _ -> samples 
     81      in 
     82      let decoded_samples = decode_loop samples in 
     83      (float decoded_samples) /. (float samplefreq) 
    8684    in 
    8785    close ();