Module Ogg.Sync

module Sync: sig .. end

type t 
val create : (int -> string * int) -> t

This function is used to initialize a Sync.t to a known initial value in preparation for manipulation of an Ogg bitstream.

The function passed is used to fill the stream with new data. It receives a number of bytes to read and returns a string read and its size.

val create_from_file : string -> t * Unix.file_descr

Wrapper around create to open a file as the ogg stream.

val read : t -> Ogg.Page.t

Read a page from Sync.t

Raises End_of_stream if the reading function returned an empty string. Raises Out_of_sync if data is not synced and some byte where skiped.

val reset : ?read_func:(int -> string * int) -> t -> unit

This function is used to reset the internal counters of the Sync.t to initial values.

read_func is optional and is a new function to read new data.

val seek : t -> Ogg.Page.t

This function synchronizes the ogg_sync_state struct to the next ogg_page.

This is useful when seeking within a bitstream. page_seek will synchronize to the next page in the bitstream and return information about how many bytes we advanced or skipped in order to do so.