sig
  type t
  exception Error of int
  exception Failed
  val error_message : int -> string
  val min_bytes_per_channel : int
  val create : unit -> Faad.t
  val init : Faad.t -> Stdlib.Bytes.t -> int -> int -> int * int * int
  val decode :
    Faad.t -> Stdlib.Bytes.t -> int -> int -> int * float array array
  val post_sync_reset : Faad.t -> unit
  val find_frame : string -> int
  module Mp4 :
    sig
      type decoder = Faad.t
      type t
      type track = int
      type sample = int
      val is_mp4 : string -> bool
      val openfile :
        ?write:(Stdlib.Bytes.t -> int) ->
        ?seek:(int -> int) ->
        ?trunc:(unit -> int) ->
        (int -> Stdlib.Bytes.t * int * int) -> Faad.Mp4.t
      val openfile_fd : Unix.file_descr -> Faad.Mp4.t
      val tracks : Faad.Mp4.t -> int
      val find_aac_track : Faad.Mp4.t -> Faad.Mp4.track
      val init :
        Faad.Mp4.t -> Faad.Mp4.decoder -> Faad.Mp4.track -> int * int
      val seek : Faad.Mp4.t -> Faad.Mp4.track -> int -> int * int
      val samples : Faad.Mp4.t -> Faad.Mp4.track -> int
      val read_sample :
        Faad.Mp4.t -> Faad.Mp4.track -> Faad.Mp4.sample -> string
      val decode :
        Faad.Mp4.t ->
        Faad.Mp4.track ->
        Faad.Mp4.sample -> Faad.Mp4.decoder -> float array array
      val metadata : Faad.Mp4.t -> (string * string) array
    end
end