libogg documentation

libogg release 1.3.5 - 20210603

Decoding

Libogg contains a set of functions used in the decoding process.

All the libogg specific functions are declared in "ogg/ogg.h".

Decoding is based around the ogg synchronization layer. The ogg_sync_state struct coordinates between incoming data and the decoder. We read data into the synchronization layer, submit the data to the stream, and output raw packets to the decoder.

Decoding through the Ogg layer follows a specific logical sequence. A read loop follows these logical steps:

In practice, streams are more complex, and Ogg also must handle headers, incomplete or dropped pages, and other errors in input.

function purpose
ogg_sync_init Initializes an Ogg bitstream.
ogg_sync_clear Clears the status information from the synchronization struct.
ogg_sync_reset Resets the synchronization status to initial values.
ogg_sync_destroy Frees the synchronization struct.
ogg_sync_check Check for asynchronous errors.
ogg_sync_buffer Exposes a buffer from the synchronization layer in order to read data.
ogg_sync_wrote Tells the synchronization layer how many bytes were written into the buffer.
ogg_sync_pageseek Finds the borders of pages and resynchronizes the stream.
ogg_sync_pageout Outputs a page from the synchronization layer.
ogg_stream_pagein Submits a complete page to the stream layer.
ogg_stream_packetout Outputs a packet to the codec-specific decoding engine.
ogg_stream_packetpeek Provides access to the next packet in the bitstream without advancing decoding.



copyright © 2000-2021 Xiph.Org Foundation

Ogg Container Format

libogg documentation

libogg release 1.3.5 - 20210603