NAME audio_filehdr, audio_isaudiofile, audio_read_filehdr, audio_decode_filehdr, audio_write_filehdr, audio_rewrite_filesize - audio file header manipulation SYNOPSIS #include <multimedia/libaudio.h> int audio_isaudiofile(char * name); int audio_read_filehdr(int fd , Audio_hdr *hp, char *infop, unsigned ilen); int audio_decode_filehdr(unsigned char *buf, Audio_hdr *hp, unsigned *ilenp); int audio_write_filehdr(int fd, Audio_hdr *hp, char *infop, unsigned ilen); int audio_rewrite_filesize(int fd, unsigned size); DESCRIPTION Audio files contain a header that has a magic number (iden- tifying the file as an audio file) and fields that describe the encoding format used to store the audio data. Immedi- ately following the header is a variable-length information field in which, for instance, ASCII annotation may be stored. The Audio_hdr structure used by many of the libaudio rou- tines for describing audio data is not an exact duplicate of the audio file header. Several routines are provided to read and write file headers so that programs need not be concerned with the details of the exact file header struc- ture. audio_isaudiofile() returns TRUE if the named file appears to be an audio file, FALSE otherwise. Note that only a lim- ited degree of file header consistency checking is per- formed. The audio_read_filehdr() routine is somewhat more comprehensive in its tests. However, audio_isaudiofile() is often sufficient to determine whether or not a particular file is of any interest to an application. audio_read_filehdr() reads an audio file header from the given input stream, decoding its fields into the Audio_hdr structure whose address is given by hp. If successful, the value AUDIO_SUCCESS is returned and the current file posi- tion of the stream is updated to refer to the beginning of the audio data. The data_size field of the returned Audio_hdr structure is set to the length, in bytes, of the audio data. If this length is indeterminate (for instance, if the data is being read from a pipe), this field is set to the value AUDIO_UNKNOWN_SIZE. Note that the input file descriptor must not be set to a non-blocking I/O mode. If non-blocking behavior is desired, it should be enabled after this routine returns. The infop argument, if not NULL, specifies the address of a buffer, whose size is given by ilen, into which the informa- tion field of the audio file is copied. The buffer is always returned NULL-terminated, even if it was not large enough to hold the entire file information field. audio_decode_filehdr() decodes a buffer presumed to contain an audio file header. Though ordinarily called only by audio_read_filehdr(), this routine may be used in cases where an application wishes to read the information struc- ture itself. The buf argument specifies the address of the file header information to be decoded. The length of the information field is returned at the address given by the ilenp argument. audio_write_filehdr() encodes the given Audio_hdr structure into an audio file header and writes it to the output stream denoted by the fd argument. If the infop argument is not NULL, it specifies the address of a buffer containing ilen bytes of file information that will be written immediately following the file header. The information structure is always zero-padded so that the audio data begins on a double-word boundary. Note that the output file descriptor must not have been set to a non-blocking I/O mode. audio_rewrite_filesize() attempts to rewrite the audio file header of the file specified by the fd argument, setting the data length to size. If successful, the value AUDIO_SUCCESS is returned. If the specified file descriptor is incapable of backward seeks (for example, if it refers to a pipe), AUDIO_ERR_NOEFFECT is returned. RETURN VALUES With the exception of audio_isaudiofile(), these routines return AUDIO_SUCCESS on successful completion or, if unsuc- cessful, one of the following error codes: AUDIO_UNIXERROR An error occurred while executing a system library function. The glo- bal value errno contains the error code. AUDIO_ERR_BADHDR The user-supplied Audio_hdr struc- ture contains an inconsistency or invalid value. AUDIO_ERR_BADFILEHDR The audio file header contains an inconsistency. AUDIO_ERR_NOEFFECT The requested operation could not be performed. SEE ALSO audio_intro(3), audio_hdr(3) WARNINGS The manual pages, header files, and object library associ- ated with /usr/demo/SOUND/libaudio.a are furnished on an as is basis as a preliminary interface to several useful audio data-processing capabilities. A future release of the operating system may redefine the syntax or semantics of some of the functions described herein.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |