gd_bof(3)

NAME
gd_bof — report the start of data in a field

SYNOPSIS
#include <getdata.h>

off_t gd_bof(DIRFILE *dirfile, const char *field_code);

DESCRIPTION
The gd_bof() function queries a dirfile(5) database specified by dirfile and returns the sample number of the beginning-of-field marker for the vector field given by field_code.

The caller should not assume that the beginning-of-field marker falls on a frame boundary. The beginning-of-field marker is never negative.

For a RAW field, the beginning-of-field corresponds to the frame offset of that field (see gd_frameoffset(3)). The beginning-of-field for all other vector field type is the same as the beginning-of-field of whichever of its input fields that starts latest. The beginning-of-field marker for the special field INDEX is always zero.

The beginning-of-field marker for a field containing no data is in the same location as, or after, its end-of-field marker (see gd_eof(3)). For a RAW field, the difference between the locations of the beginning- and end-of-field markers indicates the number of samples of data actually stored on disk.

The dirfile argument must point to a valid DIRFILE object previously created by a call to gd_open(3).

RETURN VALUE
Upon successful completion, gd_bof() returns the sample number of the end-of-field marker for the indicated field. On error, it returns -1 and sets the dirfile error to a non-zero error value. Possible error values are:

GD_E_BAD_CODE
    The field specified by field_code or one of the fields it uses as input was not found in the database.

GD_E_BAD_DIRFILE
    The supplied dirfile was invalid.

GD_E_BAD_REPR
    The representation suffix specified in field_code, or in one of its inputs was not recognised.

GD_E_DIMENSION
    A scalar field was found where a vector field was expected in the definition of field_code or one of its inputs, or else field_code itself specified a scalar field.

GD_E_RECURSE_LEVEL
    Too many levels of recursion were encountered while trying to resolve field_code. This usually indicates a circular dependency in field specification in the dirfile.

The dirfile error may be retrieved by calling gd_error(3). A descriptive error string for the last error encountered can be obtained from a call to gd_error_string(3).

SEE ALSO
dirfile(5), dirfile-encoding(5), gd_open(3), gd_eof(3), gd_error(3), gd_error_string(3), gd_nframes(3)