libogg documentation | libogg release 1.3.5 - 20210603

# ogg_stream_flush_fill

declared in "ogg/ogg.h";

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

This function checks for remaining packets inside the stream and forces remaining packets into pages of approximately the requested size. This should be used when you want to flush all remaining data from a stream. ogg_stream_flush may be used instead if a particular page size isn't important.

This function can be used to verify that all packets have been flushed. If the return value is 0, all packets have been placed into a page. Generally speaking, it should be called in a loop until all packets are flushed, since even a single packet may span multiple pages.

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

### Parameters

os
  Pointer to a previously declared ogg_stream_state struct, which represents the current logical bitstream.
og
  Pointer to a page of data. The remaining packets in the stream will be placed into this page, if any remain.
fillbytes
  Packet data watermark in bytes.

### Return Values

> - 0 means that all packet data has already been flushed into pages, and there are no packets to put into the page. 0 is also returned in the case of an ogg_stream_state that has been cleared explicitly or implicitly due to an internal error.
> - Nonzero means that remaining packets have successfully been flushed into the page.

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