Lame* Bindings to the lame library to encode mp3 files. * *
Get the lame version number (shorter than get_lame_version).
Get the lame version number (shorter than get_lame_short_version).
val create_encoder : unit -> encoderCreate a new lame encoder.
val frame_size : encoder -> intFrame size. All audio frames submitted to the encoder should have this number of samples per channel.
val set_in_samplerate : encoder -> int -> unitInput sample rate in Hz (default: 44100).
val set_num_channels : encoder -> int -> unitNumber of channels in input stream (default: 2).
val set_out_samplerate : encoder -> int -> unitOutput sample rate in Hz (default: 0, which means LAME picks best value based on the amount of compression). MPEG only allows:
val set_quality : encoder -> int -> unitInternal algorithm selection. True quality is determined by the bitrate but this variable will effect quality by selecting expensive or cheap algorithms. The quality is an integer between 0 and 9, where 0=best (very slow) and 9=worst. More precisely:
val set_disable_reservoir : encoder -> bool -> unitVBR (Variable BitRate) mode.
val set_bWriteVbrTag : encoder -> bool -> unitWrite a Xing VBR header frame. (default:
ue
}
)
val set_vbr_quality : encoder -> int -> unitSet the VBR quality level (0:highest, 9: lowest).
val set_vbr_mean_bitrate : encoder -> int -> unitSet the VBR mean birate in kbps. Only used by Vbr_abr mode.
val set_vbr_min_bitrate : encoder -> int -> unitSet the minimal VBR bitrate in kbps.
val set_vbr_max_bitrate : encoder -> int -> unitSet the maximal VBR bitrate in kbps.
val set_vbr_hard_min : encoder -> bool -> unitIf true, enforce the minimal VBR bitrate. Normally it will be violated for analog silence.
val set_brate : encoder -> int -> unitSet the bitrate of compressed data. You can either set this or use set_compression_ratio.
val set_compression_ratio : encoder -> float -> unitSet the compression ratio (default: 11).
val set_private : encoder -> bool -> unitGet/set private bit.
val get_private : encoder -> boolval set_copyright : encoder -> bool -> unitGet/set copyright bit.
val get_copyright : encoder -> boolval set_original : encoder -> bool -> unitGet/set original bit.
val get_original : encoder -> boolval init_params : encoder -> unitInitialize lame's parameters. Should be called before encoding (and after having set the parameters). Raises Init_params_failed on error.
val init_bitstream : encoder -> unitWrite id3v2 and Xing headers into the front of the bitstream, and set frame counters and bitrate histogram data to 0. Normally, this is called by init_params. You can call this after encode_flush_nogap.
val encode_buffer_part : encoder -> string -> int -> int -> stringencode_buffer_part enc buf ofs smpl encodes samples samples (per channel) of buf starting at position ofs.
val encode_buffer : encoder -> string -> int -> stringSame as encode_buffer_part but with ofs = 0.
val encode_buffer_float_part :
encoder ->
float array ->
float array ->
int ->
int ->
stringencode_buffer_float_part enc left right ofs smpl encodes samples samples of left and right channels starting at position ofs. Floats are expected to range over -1;1.
val encode_buffer_float :
encoder ->
float array ->
float array ->
int ->
stringSame as encode_buffer_float_part but with ofs = 0.
val encode_buffer_float_ba :
encoder ->
(float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t ->
(float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t ->
stringEncode a buffer of samples. The samples follow here lame's convention of having floats in the range -32768.,32768. (yes, this is crazy but that's the way things are).
val encode_flush : encoder -> stringFlush the PCM buffers, padding with zeros if needed to make a complete frame. Will also write id3v1 tags (if any) into the bitstream.
val encode_flush_nogap : encoder -> stringFlush the PCM buffers, padding with zeros if needed to make a complete frame. This function will not write id3v1 tags into the bitstream.
module Id3tag : sig ... endval get_version : encoder -> mpeg_versionThe MPEG version used by the encoder.
val get_encoder_delay : encoder -> intGet the encoder delay.
val get_framesize : encoder -> intSize of an mpeg frame in bytes.
val get_nb_samples_to_encode : encoder -> intNumber of PCM samples buffered, but not yet encoded to mp3 data.
val get_nb_encoded_frames : encoder -> intNumber of frames encoded so far.
val get_nb_frames : encoder -> intEstimate of the total number of frames to be encoded (only valid if set_nb_samples was called).