diff --git a/formats/format_wav.c b/formats/format_wav.c index 27da015d86..90ef986ef0 100644 --- a/formats/format_wav.c +++ b/formats/format_wav.c @@ -64,14 +64,14 @@ struct wav_desc { /* format-specific parameters */ #define ltohs(b) (b) #else #if __BYTE_ORDER == __BIG_ENDIAN -#define htoll(b) \ - (((((b) ) & 0xFF) << 24) | \ - ((((b) >> 8) & 0xFF) << 16) | \ - ((((b) >> 16) & 0xFF) << 8) | \ - ((((b) >> 24) & 0xFF) )) +#define htoll(b) \ + (((((b) ) & 0xFF) << 24) | \ + ((( (b) >> 8) & 0xFF) << 16) | \ + ((( (b) >> 16) & 0xFF) << 8) | \ + ((( (b) >> 24) & 0xFF) )) #define htols(b) \ - (((((b) ) & 0xFF) << 8) | \ - ((((b) >> 8) & 0xFF) )) + (((((b) ) & 0xFF) << 8) | \ + ((( (b) >> 8) & 0xFF) )) #define ltohl(b) htoll(b) #define ltohs(b) htols(b) #else @@ -110,8 +110,8 @@ static int check_header_fmt(FILE *f, int hsize, int hz) return -1; } if (((ltohl(freq) != 8000) && (ltohl(freq) != 16000)) || - ((ltohl(freq) == 8000) && (hz != 8000)) || - ((ltohl(freq) == 16000) && (hz != 16000))) { + ((ltohl(freq) == 8000) && (hz != 8000)) || + ((ltohl(freq) == 16000) && (hz != 16000))) { ast_log(LOG_WARNING, "Unexpected frequency mismatch %d (expecting %d)\n", ltohl(freq),hz); return -1; } @@ -153,7 +153,9 @@ static int check_header(FILE *f, int hz) ast_log(LOG_WARNING, "Read failed (size)\n"); return -1; } +#if __BYTE_ORDER == __BIG_ENDIAN size = ltohl(size); +#endif if (fread(&formtype, 1, 4, f) != 4) { ast_log(LOG_WARNING, "Read failed (formtype)\n"); return -1; @@ -170,30 +172,32 @@ static int check_header(FILE *f, int hz) for(;;) { char buf[4]; - - /* Begin data chunk */ - if (fread(&buf, 1, 4, f) != 4) { + + /* Begin data chunk */ + if (fread(&buf, 1, 4, f) != 4) { ast_log(LOG_WARNING, "Read failed (block header format)\n"); return -1; - } - /* Data has the actual length of data in it */ - if (fread(&data, 1, 4, f) != 4) { + } + /* Data has the actual length of data in it */ + if (fread(&data, 1, 4, f) != 4) { ast_log(LOG_WARNING, "Read failed (block '%.4s' header length)\n", buf); return -1; - } - data = ltohl(data); + } +#if __BYTE_ORDER == __BIG_ENDIAN + data = ltohl(data); +#endif if (memcmp(&buf, "fmt ", 4) == 0) { if (check_header_fmt(f, data, hz)) return -1; continue; } - if(memcmp(buf, "data", 4) == 0 ) + if(memcmp(buf, "data", 4) == 0 ) break; ast_log(LOG_DEBUG, "Skipping unknown block '%.4s'\n", buf); - if (fseek(f,data,SEEK_CUR) == -1 ) { + if (fseek(f,data,SEEK_CUR) == -1 ) { ast_log(LOG_WARNING, "Failed to skip '%.4s' block: %d\n", buf, data); return -1; - } + } } #if 0 curpos = lseek(fd, 0, SEEK_CUR); @@ -461,13 +465,14 @@ static int wav_seek(struct ast_filestream *fs, off_t sample_offset, int whence) return -1; } - if (whence == SEEK_SET) + if (whence == SEEK_SET) { offset = samples + min; - else if (whence == SEEK_CUR || whence == SEEK_FORCECUR) + } else if (whence == SEEK_CUR || whence == SEEK_FORCECUR) { offset = samples + cur; - else if (whence == SEEK_END) + } else if (whence == SEEK_END) { offset = max - samples; - if (whence != SEEK_FORCECUR) { + } + if (whence != SEEK_FORCECUR) { offset = (offset > max)?max:offset; } /* always protect the header space. */ diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c index 594989c525..06597abb3f 100644 --- a/formats/format_wav_gsm.c +++ b/formats/format_wav_gsm.c @@ -74,14 +74,14 @@ struct wavg_desc { #define ltohs(b) (b) #else #if __BYTE_ORDER == __BIG_ENDIAN -#define htoll(b) \ - (((((b) ) & 0xFF) << 24) | \ - ((((b) >> 8) & 0xFF) << 16) | \ - ((((b) >> 16) & 0xFF) << 8) | \ - ((((b) >> 24) & 0xFF) )) +#define htoll(b) \ + (((((b) ) & 0xFF) << 24) | \ + ((( (b) >> 8) & 0xFF) << 16) | \ + ((( (b) >> 16) & 0xFF) << 8) | \ + ((( (b) >> 24) & 0xFF) )) #define htols(b) \ - (((((b) ) & 0xFF) << 8) | \ - ((((b) >> 8) & 0xFF) )) + (((((b) ) & 0xFF) << 8) | \ + ((( (b) >> 8) & 0xFF) )) #define ltohl(b) htoll(b) #define ltohs(b) htols(b) #else @@ -105,7 +105,9 @@ static int check_header(FILE *f) ast_log(LOG_WARNING, "Read failed (size)\n"); return -1; } +#if __BYTE_ORDER == __BIG_ENDIAN size = ltohl(size); +#endif if (fread(&formtype, 1, 4, f) != 4) { ast_log(LOG_WARNING, "Read failed (formtype)\n"); return -1;