Opus

`sig
exception Buffer_too_small
exception Internal_error
exception Invalid_packet
exception Unimplemented
exception Invalid_state
exception Alloc_fail
val recommended_frame_size : int
val version_string : string
type max_bandwidth =
[ `Full_band
| `Medium_band
| `Narrow_band
| `Super_wide_band
| `Wide_band ]
type bandwidth =
[ `Auto
| `Full_band
| `Medium_band
| `Narrow_band
| `Super_wide_band
| `Wide_band ]
type generic_control =
[ `Get_bandwidth of Opus.bandwidth Stdlib.ref
| `Get_final_range of int Stdlib.ref
| `Get_lsb_depth of int Stdlib.ref
| `Get_pitch of int Stdlib.ref
| `Reset_state
| `Set_lsb_depth of int
| `Set_phase_inversion_disabled of bool ]
module Decoder :
sig
type control =
[ `Get_bandwidth of Opus.bandwidth Stdlib.ref
| `Get_final_range of int Stdlib.ref
| `Get_gain of int Stdlib.ref
| `Get_lsb_depth of int Stdlib.ref
| `Get_pitch of int Stdlib.ref
| `Reset_state
| `Set_gain of int
| `Set_lsb_depth of int
| `Set_phase_inversion_disabled of bool ]
type t
val check_packet : Ogg.Stream.packet -> bool
val create :
?samplerate:int ->
Ogg.Stream.packet -> Ogg.Stream.packet -> Opus.Decoder.t
val comments : Opus.Decoder.t -> string * (string * string) list
val channels : Opus.Decoder.t -> int
val apply_control : Opus.Decoder.control -> Opus.Decoder.t -> unit
val decode_float :
?decode_fec:bool ->
Opus.Decoder.t ->
Ogg.Stream.stream -> float array array -> int -> int -> int
end
module Encoder :
sig
type application = [ `Audio | `Restricted_lowdelay | `Voip ]
type signal = [ `Auto | `Music | `Voice ]
type bitrate = [ `Auto | `Bitrate of int | `Bitrate_max ]
type control =
[ `Get_application of Opus.Encoder.application
| `Get_bandwidth of Opus.bandwidth Stdlib.ref
| `Get_bitrate of Opus.Encoder.bitrate Stdlib.ref
| `Get_complexity of int Stdlib.ref
| `Get_dtx of bool Stdlib.ref
| `Get_final_range of int Stdlib.ref
| `Get_force_channels of bool Stdlib.ref
| `Get_inband_fec of bool Stdlib.ref
| `Get_lookhead of int
| `Get_lsb_depth of int Stdlib.ref
| `Get_max_bandwidth of Opus.max_bandwidth
| `Get_packet_loss_perc of int Stdlib.ref
| `Get_pitch of int Stdlib.ref
| `Get_samplerate of int
| `Get_signal of Opus.Encoder.signal Stdlib.ref
| `Get_vbr of bool Stdlib.ref
| `Get_vbr_constraint of bool Stdlib.ref
| `Reset_state
| `Set_application of Opus.Encoder.application
| `Set_bandwidth of Opus.bandwidth
| `Set_bitrate of Opus.Encoder.bitrate
| `Set_complexity of int
| `Set_dtx of bool
| `Set_force_channels of bool
| `Set_inband_fec of bool
| `Set_lsb_depth of int
| `Set_max_bandwidth of Opus.max_bandwidth
| `Set_packet_loss_perc of int
| `Set_phase_inversion_disabled of bool
| `Set_signal of Opus.Encoder.signal
| `Set_vbr of bool
| `Set_vbr_constraint of bool ]
type t
val create :
?pre_skip:int ->
?comments:(string * string) list ->
?gain:int ->
samplerate:int ->
channels:int ->
application:Opus.Encoder.application ->
Ogg.Stream.stream -> Opus.Encoder.t
val header : Opus.Encoder.t -> Ogg.Stream.packet
val comments : Opus.Encoder.t -> Ogg.Stream.packet
val apply_control : Opus.Encoder.control -> Opus.Encoder.t -> unit
val encode_float :
?frame_size:float ->
Opus.Encoder.t -> float array array -> int -> int -> int
val eos : Opus.Encoder.t -> unit
end
end`