Module Theora.Decoder


module Decoder: sig .. end

type t 
val check : Ogg.Stream.packet -> bool
Check wether an ogg logical stream contains theora data

This function shall be called just after you put the first page in the stream. See examples/thdecode.ml

Raises Ogg.Bad_data if the stream does not contain theora data.

val create : unit -> t
Initialize the decoding structure. The decoder should then be processed with headerin.
val is_ready : t -> bool
Returns true is the given decoder was properly initialized using headerin
val headerin : t ->
Ogg.Stream.packet -> Theora.info * string * (string * string) list
Add one packet from the stream and try to parse theora headers.

Raises Not_enought_data is decoding header needs another packet.

Raises Done if the decoder was already initialized.

This function should be called with the first packets of the stream until it returns the requested values. It may consume at most 5 packets (3 header packet, 1 additional packet and the initial video packet)

val get_yuv : t -> Ogg.Stream.t -> Theora.yuv_buffer
Output the next available frame of decoded YUV data.

Raises Ogg.Not_enough_data if the Ogg.Stream.t which has been used to initialize the handler does not contain enought data. You should submit a new page to it, and run this function again until it returns.

Raises Not_initialized if the decoder was not properly initialized with headerin.