libogg documentation

libogg release 1.3.5 - 20210603

ogg_sync_pageout

declared in "ogg/ogg.h";

This function takes the data stored in the buffer of the ogg_sync_state struct and inserts them into an ogg_page.

In an actual decoding loop, this function should be called first to ensure that the buffer is cleared. The example code below illustrates a clean reading loop which will fill and output pages.

Caution:This function should be called before reading into the buffer to ensure that data does not remain in the ogg_sync_state struct. Failing to do so may result in a memory leak. See the example code below for details.


int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);

Parameters

oy
Pointer to a previously declared ogg_sync_state struct. Normally, the internal storage of this struct should be filled with newly read data and verified using ogg_sync_wrote.
og
Pointer to page struct filled by this function.

Return Values

  • -1 returned if stream has not yet captured sync (bytes were skipped).
  • 0 returned if more data needed or an internal error occurred.
  • 1 indicated a page was synced and returned.
  • Example Usage

    if (ogg_sync_pageout(&oy, &og) != 1) {
    	buffer = ogg_sync_buffer(&oy, 8192);
    	bytes = fread(buffer, 1, 8192, stdin);
    	ogg_sync_wrote(&oy, bytes);
    }
    



    copyright © 2000-2021 Xiph.Org Foundation

    Ogg Container Format

    libogg documentation

    libogg release 1.3.5 - 20210603