sig
  exception Not_enough_data
  exception Bad_data
  exception Out_of_sync
  exception End_of_stream
  exception Internal_error
  module Page :
    sig
      type t = string * string
      val serialno : Ogg.Page.t -> nativeint
      val eos : Ogg.Page.t -> bool
      val bos : Ogg.Page.t -> bool
      val continued : Ogg.Page.t -> bool
      val packets : Ogg.Page.t -> int
      val version : Ogg.Page.t -> int
      val granulepos : Ogg.Page.t -> Stdlib.Int64.t
      val pageno : Ogg.Page.t -> nativeint
      val set_checksum : Ogg.Page.t -> unit
    end
  module Sync :
    sig
      type t
      val create : (int -> string * int) -> Ogg.Sync.t
      val create_from_file : string -> Ogg.Sync.t * Unix.file_descr
      val read : Ogg.Sync.t -> Ogg.Page.t
      val reset : ?read_func:(int -> string * int) -> Ogg.Sync.t -> unit
      val seek : Ogg.Sync.t -> Ogg.Page.t
    end
  module Stream :
    sig
      type stream
      type packet
      val create : ?serial:nativeint -> unit -> Ogg.Stream.stream
      val serialno : Ogg.Stream.stream -> nativeint
      val eos : Ogg.Stream.stream -> bool
      val get_page : ?fill:int -> Ogg.Stream.stream -> Ogg.Page.t
      val put_page : Ogg.Stream.stream -> Ogg.Page.t -> unit
      val get_packet : Ogg.Stream.stream -> Ogg.Stream.packet
      val peek_packet : Ogg.Stream.stream -> Ogg.Stream.packet
      val peek_granulepos : Ogg.Stream.stream -> Stdlib.Int64.t
      val skip_packet : Ogg.Stream.stream -> unit
      val put_packet : Ogg.Stream.stream -> Ogg.Stream.packet -> unit
      val flush_page : Ogg.Stream.stream -> Ogg.Page.t
      val packet_granulepos : Ogg.Stream.packet -> Stdlib.Int64.t
    end
  module Skeleton :
    sig
      val fishead :
        ?presentation_numerator:Stdlib.Int64.t ->
        ?presentation_denominator:Stdlib.Int64.t ->
        ?basetime_numerator:Stdlib.Int64.t ->
        ?basetime_denominator:Stdlib.Int64.t ->
        ?utc:Stdlib.Int32.t -> unit -> Ogg.Stream.packet
      val eos : unit -> Ogg.Stream.packet
    end
end