sig
  type t
  val create :
    (int -> string * int) ->
    (int -> Unix.seek_command -> int) ->
    (unit -> unit) -> (unit -> int) -> Vorbis.Decoder.t
  val openfile : string -> Vorbis.Decoder.t
  val openfile_with_fd : string -> Vorbis.Decoder.t * Unix.file_descr
  val decode_float :
    Vorbis.Decoder.t -> float array array -> int -> int -> int
  val decode_float_alloc : Vorbis.Decoder.t -> int -> float array array
  val decode :
    Vorbis.Decoder.t ->
    ?big_endian:bool ->
    ?sample_size:int -> ?signed:bool -> string -> int -> int -> int
  val close : Vorbis.Decoder.t -> unit
  val streams : Vorbis.Decoder.t -> int
  val bitstream : Vorbis.Decoder.t -> Vorbis.bitstream
  val comments :
    Vorbis.Decoder.t -> Vorbis.bitstream -> string * (string * string) list
  val info : Vorbis.Decoder.t -> Vorbis.bitstream -> Vorbis.info
  val bitrate : Vorbis.Decoder.t -> Vorbis.bitstream -> int
  val samples : Vorbis.Decoder.t -> Vorbis.bitstream -> int
  val duration : Vorbis.Decoder.t -> Vorbis.bitstream -> float
  val serialnumber : Vorbis.Decoder.t -> Vorbis.bitstream -> int
end