liboggz
1.1.1
|
Oggz can seek on multitrack, multicodec bitstreams. More...
Functions | |
ogg_int64_t | oggz_tell_units (OGGZ *oggz) |
Query the current offset in milliseconds, or custom units as specified by a Metric function you have provided. More... | |
ogg_int64_t | oggz_seek_units (OGGZ *oggz, ogg_int64_t units, int whence) |
Seek to an offset in milliseconds, or custom units as specified by a Metric function you have provided. More... | |
ogg_int64_t | oggz_tell_granulepos (OGGZ *oggz) |
Provide the exact stored granulepos (from the page header) if relevant to the current packet, or a constructed granulepos if the stored granulepos does not belong to this packet, or -1 if this codec does not have support for granulepos interpolation. More... | |
oggz_off_t | oggz_tell (OGGZ *oggz) |
Query the file offset in bytes corresponding to the data read. More... | |
oggz_off_t | oggz_seek (OGGZ *oggz, oggz_off_t offset, int whence) |
Seek to a specific byte offset. More... | |
Oggz can seek on multitrack, multicodec bitstreams.
Support is built-in for seeking to time positions in CELT, CMML. FLAC, OggPCM, Speex, Theora and Vorbis. Oggz is also compatible with Annodex streams, and supports seeking on all tracks described in an Ogg Skeleton track.
You need to open the file with the OGGZ_AUTO flag set:
Oggz will silently parse known codec headers and associate metrics appropriately; if you attempt to seek before you have received all b_o_s pages, Oggz will not have had a chance to parse the codec headers and associate metrics. It is safe to seek once you have received a packet with b_o_s == 0; see the Ogg basics section for more details.
For other data streams, you will need to provide a metric function; see the section on Using OggzMetrics for details of setting up and seeking with metrics.
oggz_seek() provides low-level seeking to byte positions.
For a full description of the seeking methods possible in Ogg, see Semantics of seeking in Ogg bitstreams .
oggz_off_t oggz_seek | ( | OGGZ * | oggz, |
oggz_off_t | offset, | ||
int | whence | ||
) |
Seek to a specific byte offset.
oggz | An OGGZ handle |
offset | a byte offset |
whence | As defined in <stdio.h>: SEEK_SET, SEEK_CUR or SEEK_END |
ogg_int64_t oggz_seek_units | ( | OGGZ * | oggz, |
ogg_int64_t | units, | ||
int | whence | ||
) |
Seek to an offset in milliseconds, or custom units as specified by a Metric function you have provided.
oggz | An OGGZ handle |
units | A number of milliseconds, or custom units |
whence | As defined in <stdio.h>: SEEK_SET, SEEK_CUR or SEEK_END |
oggz_off_t oggz_tell | ( | OGGZ * | oggz | ) |
Query the file offset in bytes corresponding to the data read.
oggz | An OGGZ handle |
ogg_int64_t oggz_tell_granulepos | ( | OGGZ * | oggz | ) |
Provide the exact stored granulepos (from the page header) if relevant to the current packet, or a constructed granulepos if the stored granulepos does not belong to this packet, or -1 if this codec does not have support for granulepos interpolation.
oggz | An OGGZ handle |
ogg_int64_t oggz_tell_units | ( | OGGZ * | oggz | ) |
Query the current offset in milliseconds, or custom units as specified by a Metric function you have provided.
oggz | An OGGZ handle |
OGGZ_ERR_BAD_OGGZ | oggz does not refer to an existing OGGZ |
OGGZ_ERR_INVALID | Operation not suitable for this OGGZ |