libogg documentation | libogg release 1.3.5 - 20210603

# ogg_stream_pageout_fill

declared in "ogg/ogg.h";

This function forms packets into pages, similar to ogg_stream_pageout(), but allows applications to explicitly request a specific page spill size.

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 return a page when at least four packets have been accumulated and accumulated packet data meets or exceeds the specified number of bytes, and/or when the accumulated packet data meets/exceeds the maximum page size regardless of accumulated packet count. Call ogg_stream_flush() or ogg_stream_flush_fill() if immediate page generation is desired regardless of accumulated data.

    int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int fillbytes);

### 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().
fillbytes
  Packet data watermark in bytes.

### 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