sig
type ('a, 'b, 'c) fields = { audio : 'a; video : 'b; midi : 'c; }
type multiplicity = Variable | Zero | Succ of Frame.multiplicity
type content_kind =
(Frame.multiplicity, Frame.multiplicity, Frame.multiplicity)
Frame.fields
type content_type = (int, int, int) Frame.fields
type content =
(Frame.audio_t array, Frame.video_t array, Frame.midi_t array)
Frame.fields
and audio_t = Audio.Mono.buffer
and video_t = Video.buffer
and midi_t = MIDI.buffer
val blit_content :
Frame.content -> int -> Frame.content -> int -> int -> unit
val copy : Frame.content -> Frame.content
type metadata = (string, string) Hashtbl.t
type t = {
mutable breaks : int list;
mutable metadata : (int * Frame.metadata) list;
mutable contents : (int * Frame.content) list;
}
val create : Frame.content_kind -> Frame.t
val position : Frame.t -> int
val is_partial : Frame.t -> bool
val clear : Frame.t -> unit
val clear_from : Frame.t -> int -> unit
val advance : Frame.t -> unit
val breaks : Frame.t -> int list
val set_breaks : Frame.t -> int list -> unit
val add_break : Frame.t -> int -> unit
exception No_metadata
val set_metadata : Frame.t -> int -> Frame.metadata -> unit
val get_metadata : Frame.t -> int -> Frame.metadata option
val free_metadata : Frame.t -> int -> unit
val free_all_metadata : Frame.t -> unit
val get_all_metadata : Frame.t -> (int * Frame.metadata) list
val set_all_metadata : Frame.t -> (int * Frame.metadata) list -> unit
val get_past_metadata : Frame.t -> Frame.metadata option
val content : Frame.t -> int -> int * Frame.content
val content_of_type :
?force:Frame.content ->
Frame.t -> int -> Frame.content_type -> Frame.content
val hide_contents : Frame.t -> unit -> unit
type content_layer = {
content : Frame.content;
start : int;
length : int;
}
val get_content_layers : Frame.t -> Frame.content_layer list
exception No_chunk
val get_chunk : Frame.t -> Frame.t -> unit
val mul_sub_mul : Frame.multiplicity -> Frame.multiplicity -> bool
val int_sub_mul : int -> Frame.multiplicity -> bool
val mul_eq_int : Frame.multiplicity -> int -> bool
val kind_sub_kind : Frame.content_kind -> Frame.content_kind -> bool
val type_has_kind : Frame.content_type -> Frame.content_kind -> bool
val content_has_type : Frame.content -> Frame.content_type -> bool
val type_of_content : Frame.content -> Frame.content_type
val type_of_kind : Frame.content_kind -> Frame.content_type
val mul_of_int : int -> Frame.multiplicity
val add_mul :
Frame.multiplicity -> Frame.multiplicity -> Frame.multiplicity
val string_of_content_kind : Frame.content_kind -> string
val string_of_content_type : Frame.content_type -> string
val allow_lazy_config_eval : unit -> unit
val audio_channels : int Lazy.t
val video_channels : int Lazy.t
val midi_channels : int Lazy.t
val video_width : int Lazy.t
val video_height : int Lazy.t
val audio_rate : int Lazy.t
val video_rate : int Lazy.t
val midi_rate : int Lazy.t
val master_rate : int Lazy.t
val size : int Lazy.t
val duration : float Lazy.t
val audio_of_master : int -> int
val video_of_master : int -> int
val midi_of_master : int -> int
val master_of_audio : int -> int
val master_of_video : int -> int
val master_of_midi : int -> int
val master_of_seconds : float -> int
val audio_of_seconds : float -> int
val video_of_seconds : float -> int
val seconds_of_master : int -> float
val seconds_of_audio : int -> float
val seconds_of_video : int -> float
end