I'm having problems with the below code - basically, the value of "sample" which is read never seems to change, even though it does in the input file. Any ideas?
Code:
inhandle = fileno(infile);
filesize = filelength(inhandle);
for (j = 0; j <= (filesize/2); j++)
{
fread(&sample, sizeof(short), 1, infile); // Read first sample
code = ADPCMEncoder(sample, prevsample, previndex); // Encode sample into lower nibble of code
code = (code << 4) & 0xf0; // Move ADPCM code to upper nibble
// If odd number of samples, do not wait for second nibble of last byte
if((j == (filesize/2)) && ((filesize/2)%2 != 0))
{
fwrite(&code, sizeof(unsigned char), 1, tempout);
break;
}
fread(&sample, sizeof(short), 1, infile); // Read second sample
code = ADPCMEncoder(sample, prevsample, previndex); // Encode sample and save in lower nibble of code
fwrite(&code, sizeof(unsigned char), 1, tempout); // Write code to file
}