get_header

Digital Signal Processing Library

Voice Lab

Program name: get_header

Language: C

In file: file_lib.c

Objective: Read header and extract values from data file.

Usage: int get_header(FILE *in_file_ptr, int *data_length, int *sample_rate);

Parameters:

  • in_file - FILE Pointer to open file to process.
  • data_length - Length of data word - typically 2 bytes.
  • sample_rate - number of bits per sample - typically 16.
Return:
  • header_length

Mathematical Description:

Comments: Routine is used to read header of data file and return a few parameters

User Comments

Code:

int get_header(FILE *in_file_ptr, int *data_length, int *sample_rate)
{
        int header_length;
        char header[2];

        /* go to beginning of file */
        fseek(in_file_ptr,0,0);

        /* read 1 character from beginning of file */
        fread(header, sizeof(char), 1, in_file_ptr);

        /* Test which character is at the beginning of the file */
        switch(header[0]) {
        case 'R':
                header_length = check_wav(in_file_ptr, data_length, sample_rate);
                break;
        case 'F':
                header_length = check_nsp(in_file_ptr, data_length, sample_rate);
                break;
        default:
                /* unknown file header */
                (*sample_rate) = -1;
                header_length = 0;
                break;
        }
        return(header_length);
}