Legend:
Library
Module
Module type
Parameter
Class
Class type
exception Mad_error of string
exception Read_error of string
exception End_of_stream
exception Openfile_error of string
exception Closefile_error of string
type mad_file
type mpeg_layer =
  1. | Layer_I
  2. | Layer_II
  3. | Layer_III
type emphasis =
  1. | None
  2. | MS_50_15
  3. | CCITT_J_17
  4. | Reserved
type channel_mode =
  1. | Single_channel
  2. | Dual_channel
  3. | Joint_stereo
  4. | Stereo
type frame_format = {
  1. layer : mpeg_layer;
  2. mode : channel_mode;
  3. emphasis : emphasis;
  4. bitrate : int;
  5. samplerate : int;
  6. channels : int;
  7. samples_per_channel : int;
  8. original : bool;
  9. copyright : bool;
  10. private_bit : bool;
}
val openfile : string -> mad_file
val openstream : (int -> string * int) -> mad_file
val skip_id3tags : read:(int -> string * int) -> seek:(int -> int) -> tell:(unit -> int) -> unit
val close : mad_file -> unit
val get_current_position : mad_file -> int
type time_unit =
  1. | Hours
  2. | Minutes
  3. | Seconds
  4. | Deciseconds
  5. | Centiseconds
  6. | Milliseconds
val get_current_time : mad_file -> time_unit -> int
val decode_frame : mad_file -> string
val decode_frame_float : mad_file -> float array array
val skip_frame : mad_file -> unit
val get_frame_format : mad_file -> frame_format
val get_output_format : mad_file -> int * int * int
val duration : string -> float