Mad* Functions for decoding mp3 files using the libmad. * *
type frame_format = {layer : mpeg_layer;mode : channel_mode;emphasis : emphasis;bitrate : int;samplerate : int;channels : int;samples_per_channel : int;original : bool;copyright : bool;private_bit : bool;}val openfile : string -> mad_file* Open an mp3 file. * *
* openstream read_func opens a stream where read_func n should be a * function which returns n bytes of data or less, the second component of * the result being the number of bytes to read in the fist component.
val skip_id3tags : read:read -> seek:(int -> int) -> tell:(unit -> int) -> unit* Skip ID3 tags that may be present at * the beginning of a stream. This function * may be used to a mp3 file opened using openstream. * ID3 tags are always skipped when using openfile. * * seek is a callback to seek to an absolute * position on the encoded data, and tell a callback * to fetch the current position. read is the reading * callback.
val close : mad_file -> unit* Close an mp3 file previously opened with openfile. * *
val get_current_position : mad_file -> int* Get the current position (in bytes) of the decoder in the mp3 file which * should have been opened with openfile.
* Get the current time position (in the given unit) of the decoder.
val decode_frame : mad_file -> stringDecode an mp3 frame. * Returned data in interleaved when * there are two channels, and mono data * when there is only one.
val decode_frame_float : mad_file -> float array arrayDecode an mp3 frame.
val decode_frame_floatarray : mad_file -> floatarray arrayDecode an mp3 frame.
val decode_frame_float_ba :
mad_file ->
(float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t
arrayval skip_frame : mad_file -> unitSkip one frame. The current time/position is * updated but the frame is not decoded.
val get_frame_format : mad_file -> frame_formatval get_output_format : mad_file -> int * int * int