sig
val log : Dtools.Log.t
exception Invalid_data
exception Invalid_usage
type audio = float array array
type video = Video.buffer
type 'a data = { data : 'a; offset : int; length : int; }
type track_data =
Audio_data of Ogg_muxer.audio Ogg_muxer.data
| Video_data of Ogg_muxer.video Ogg_muxer.data
type 'a track_encoder =
'a Ogg_muxer.data -> Ogg.Stream.t -> (Ogg.Page.t -> unit) -> unit
type header_encoder = Ogg.Stream.t -> Ogg.Page.t
type position = Unknown | Time of float
type page_end_time = Ogg.Page.t -> Ogg_muxer.position
type fisbone_packet = Ogg.Stream.t -> Ogg.Stream.packet option
type stream_start = Ogg.Stream.t -> Ogg.Page.t list
type end_of_stream = Ogg.Stream.t -> unit
type data_encoder =
Audio_encoder of Ogg_muxer.audio Ogg_muxer.track_encoder
| Video_encoder of Ogg_muxer.video Ogg_muxer.track_encoder
type stream_encoder = {
header_encoder : Ogg_muxer.header_encoder;
fisbone_packet : Ogg_muxer.fisbone_packet;
stream_start : Ogg_muxer.stream_start;
data_encoder : Ogg_muxer.data_encoder;
end_of_page : Ogg_muxer.page_end_time;
end_of_stream : Ogg_muxer.end_of_stream;
}
type t
type state = Eos | Streaming | Bos
val create : skeleton:bool -> string -> Ogg_muxer.t
val state : Ogg_muxer.t -> Ogg_muxer.state
val get_data : Ogg_muxer.t -> string
val get_header : Ogg_muxer.t -> string
val peek_data : Ogg_muxer.t -> string
val register_track :
?fill:int -> Ogg_muxer.t -> Ogg_muxer.stream_encoder -> nativeint
val streams_start : Ogg_muxer.t -> unit
val encode : Ogg_muxer.t -> nativeint -> Ogg_muxer.track_data -> unit
val end_of_track : Ogg_muxer.t -> nativeint -> unit
val end_of_stream : Ogg_muxer.t -> unit
val flush_pages : Ogg.Stream.t -> Ogg.Page.t list
end