summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--formats/format_wav.c53
-rw-r--r--formats/format_wav_gsm.c16
2 files changed, 38 insertions, 31 deletions
diff --git a/formats/format_wav.c b/formats/format_wav.c
index 27da015d8..90ef986ef 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 594989c52..06597abb3 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;