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