libogg documentation | libogg release 1.3.5 - 20210603

# ogg_stream_pageout

declared in "ogg/ogg.h";

This function forms packets into pages.

In a typical encoding situation, this would be called after using ogg_stream_packetin() to submit data packets to the bitstream. Internally, this function assembles the accumulated packet bodies into an Ogg page suitable for writing to a stream. The function is typically called in a loop until there are no more pages ready for output.

This function will only return a page when a "reasonable" amount of packet data is available. Normally this is appropriate since it limits the overhead of the Ogg page headers in the bitstream, and so calling ogg_stream_pageout() after ogg_stream_packetin() should be the common case. Call ogg_stream_flush() if immediate page generation is desired. This may be occasionally necessary, for example, to limit the temporal latency of a variable bitrate stream.

    int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);

### Parameters

os
  Pointer to a previously declared ogg_stream struct, which represents the current logical bitstream.
og
  Pointer to an ogg_page structure to fill in. Data pointed to is owned by libogg. The structure is valid until the next call to ogg_stream_pageout(), ogg_stream_packetin(), or ogg_stream_flush().

### Return Values

> - Zero means that insufficient data has accumulated to fill a page, or an internal error occurred. In this case og is not modified.
> - Non-zero means that a page has been completed and returned.

copyright © 2000-2021 Xiph.Org Foundation | Ogg Container Format
libogg documentation | libogg release 1.3.5 - 20210603