sig
  type frame = Image.RGBA32.t
  type buffer = Video.frame array
  val size : Video.buffer -> int
  val create : int -> Video.buffer
  val make : int -> int -> int -> Video.buffer
  val copy : Video.buffer -> Video.buffer
  val append : Video.buffer -> Video.buffer -> Video.buffer
  val blit : Video.buffer -> int -> Video.buffer -> int -> int -> unit
  val iter_all : Video.buffer -> (Video.frame -> unit) -> unit
  val map_all : Video.buffer -> (Video.frame -> Video.frame) -> unit
  val randomize : Video.buffer -> int -> int -> unit
  val blank : Video.buffer -> int -> int -> unit
  module Ringbuffer_ext :
    sig
      type elt = frame
      type buffer = elt array
      type t
      val create : int -> t
      val read_space : t -> int
      val write_space : t -> int
      val read_advance : t -> int -> unit
      val write_advance : t -> int -> unit
      val read : t -> buffer -> int -> int -> unit
      val peek : t -> buffer -> int -> int -> unit
      val write : t -> buffer -> int -> int -> unit
      val transmit : t -> (buffer -> int -> int -> int) -> int
    end
  module Ringbuffer :
    sig
      type elt = frame
      type buffer = elt array
      type t
      val create : int -> t
      val read_space : t -> int
      val write_space : t -> int
      val read_advance : t -> int -> unit
      val write_advance : t -> int -> unit
      val read : t -> buffer -> int -> int -> unit
      val peek : t -> buffer -> int -> int -> unit
      val write : t -> buffer -> int -> int -> unit
      val transmit : t -> (buffer -> int -> int -> int) -> int
    end
  module FPS : sig type t = float val to_frac : Video.FPS.t -> int * int end
  module IO :
    sig
      exception Invalid_file
      module Reader :
        sig
          class type t =
            object
              method close : unit
              method frame_rate : Video.FPS.t
              method height : int
              method read : Video.buffer -> int -> int -> int
              method width : int
            end
        end
      module Writer :
        sig
          class type t =
            object
              method close : unit
              method write : Video.buffer -> int -> int -> unit
            end
          class to_avi_file : string -> Video.FPS.t -> int -> int -> t
        end
    end
end