/* ulaw -> signed 16-bit */
-static short isdn_audio_ulaw_to_s16[] =
+static unsigned short isdn_audio_ulaw_to_s16[] =
{
0x8284, 0x8684, 0x8a84, 0x8e84, 0x9284, 0x9684, 0x9a84, 0x9e84,
0xa284, 0xa684, 0xaa84, 0xae84, 0xb284, 0xb684, 0xba84, 0xbe84,
};
/* alaw -> signed 16-bit */
-static short isdn_audio_alaw_to_s16[] =
+static unsigned short isdn_audio_alaw_to_s16[] =
{
0x13fc, 0xec04, 0x0144, 0xfebc, 0x517c, 0xae84, 0x051c, 0xfae4,
0x0a3c, 0xf5c4, 0x0048, 0xffb8, 0x287c, 0xd784, 0x028c, 0xfd74,
i=0;
while(i<256) {
- diff = (law=='u')?isdn_audio_ulaw_to_s16[i]:isdn_audio_alaw_to_s16[i]-sample;
+ diff = (law=='u')?((signed short)isdn_audio_ulaw_to_s16[i]):((signed short)isdn_audio_alaw_to_s16[i])-sample;
//printf("s16=%d sample%d diff=%d\n",isdn_audio_to_s16[i],sample,diff);
if (diff<0)
diff=0-diff;
short sample, sample2;
signed int size, chunk;
int gotfmt = 0, gotdata = 0;
+ int __attribute__((__unused__)) ret;
if ((wfp=fopen(wav,"r"))) {
- fread(buffer,8,1,wfp);
+ ret=fread(buffer,8,1,wfp);
size=(buffer[4]) + (buffer[5]<<8) + (buffer[6]<<16) + (buffer[7]<<24);
if (!!strncmp((char *)buffer, "RIFF", 4)) {
fclose(wfp);
return;
}
printf("%c%c%c%c size=%d\n",buffer[0],buffer[1],buffer[2],buffer[3],size);
- fread(buffer,4,1,wfp);
+ ret=fread(buffer,4,1,wfp);
size -= 4;
if (!!strncmp((char *)buffer, "WAVE", 4)) {
fclose(wfp);
fprintf(stderr, "Error: Remaining file size %d not large enough for next chunk.\n",size);
return;
}
- fread(buffer,8,1,wfp);
+ ret=fread(buffer,8,1,wfp);
chunk=(buffer[4]) + (buffer[5]<<8) + (buffer[6]<<16) + (buffer[7]<<24);
//printf("DEBUG: size(%d) - (8+chunk(%d) = size(%d)\n", size, chunk, size-chunk-8);
size -= (8+chunk);
fprintf(stderr, "Error: Fmt chunk illegal size.\n");
return;
}
- fread(buffer, chunk, 1, wfp);
+ ret=fread(buffer, chunk, 1, wfp);
fmt = (struct fmt *)buffer;
if (fmt->channels<1 || fmt->channels>2) {
fclose(wfp);
i=0;
if (bytes==2 && channels==1) {
while(i<chunk) {
- fread(buffer, 2, 1, wfp);
+ ret=fread(buffer, 2, 1, wfp);
sample=(buffer[1]<<8) + (buffer[0]);
fputc(encode_isdn(sample, law),fp);
i+=2;
}
if (bytes==2 && channels==2) {
while(i<chunk) {
- fread(buffer, 4, 1, wfp);
+ ret=fread(buffer, 4, 1, wfp);
sample=(buffer[1]<<8) + (buffer[0]);
sample2=(buffer[3]<<8) + (buffer[2]);
sample = (sample/2) + (sample2/2);
}
if (bytes==1 && channels==1) {
while(i<chunk) {
- fread(buffer, 1, 1, wfp);
+ ret=fread(buffer, 1, 1, wfp);
sample=(buffer[0]<<8);
fputc(encode_isdn(sample, law),fp);
i+=1;
}
if (bytes==1 && channels==2) {
while(i<chunk) {
- fread(buffer, 2, 1, wfp);
+ ret=fread(buffer, 2, 1, wfp);
sample=(buffer[0]<<8);
sample2=(buffer[1]<<8);
sample = (sample/2) + (sample2/2);
} else {
printf("Ignoring chunk '%c%c%c%c' (length=%d)\n",buffer[0],buffer[1],buffer[2],buffer[3], chunk);
while(chunk > (signed int)sizeof(buffer)) {
- fread(buffer, sizeof(buffer), 1, wfp);
+ ret=fread(buffer, sizeof(buffer), 1, wfp);
chunk -= sizeof(buffer);
}
if (chunk)
- fread(buffer, chunk, 1, wfp);
+ ret=fread(buffer, chunk, 1, wfp);
}
}