gd_eof(3) GETDATA gd_eof(3)
NAME
gd_eof -- report the number of samples in a dirfile field
SYNOPSIS
#include <getdata.h>
off_t gd_eof(DIRFILE *dirfile, const char *field_code);
DESCRIPTION
The gd_eof() function queries a dirfile(5) database specified by dirfile and returns the sample number of the end-of-field marker for the
vector field given by field_code. This is effectively the total number of samples available for the field, including any frame offset.
The caller should not assume that this is equivalent (when accounting for the samples-per-frame of the indicated field) to the number of
frames in the database returned by gd_nframes(3), nor even that the end-of-field marker falls on a frame boundary.
For a RAW field, the end-of-field marker occurs immediately after the last datum in the data file associated with the field. For other
field types, the end-of-field marker is equivalent to the end-of-field marker closest to the start of the dirfile of any of the field in-
puts. The special field INDEX has no end-of-field marker.
The end-of-field marker for a field containing no data is in the same location as, or before, its beginning-of-field marker (see
gd_bof(3)). For a RAW field, the difference between the locations of the beginning- and end-of-field markers indicates the number of sam-
ples 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_eof() 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_FIELD_TYPE
The location of the non-existent end-of-field marker for the special field INDEX was requested, possibly as a result of the field
specified by field_code using INDEX as one of its inputs.
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_RAW_IO
An attempt to stat(2) the file associated with the field, or one of its input fields, failed.
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.
GD_E_UNKNOWN_ENCODING
The size of the decoded data file associated with the specified field or one of its inputs could not be determined, because its en-
coding scheme was not understood.
GD_E_UNSUPPORTED
The size of the decoded data file associated with the specified field or one of its inputs could not be determined, because its en-
coding scheme was not supported.
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_bof(3), gd_error(3), gd_error_string(3), gd_nframes(3)
Version 0.7.0 15 October 2010 gd_eof(3)