summaryrefslogtreecommitdiff
path: root/apps/codecs/libspeex/speex_header.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libspeex/speex_header.c')
-rw-r--r--apps/codecs/libspeex/speex_header.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/apps/codecs/libspeex/speex_header.c b/apps/codecs/libspeex/speex_header.c
index 6d1e010..eb4c199 100644
--- a/apps/codecs/libspeex/speex_header.c
+++ b/apps/codecs/libspeex/speex_header.c
@@ -35,7 +35,7 @@
#include "config-speex.h"
#endif
-#include "misc.h"
+#include "arch.h"
#include <speex/speex_header.h>
#include <speex/speex.h>
#include "os_support.h"
@@ -44,6 +44,24 @@
#define NULL 0
#endif
+/** Convert little endian */
+static inline spx_int32_t le_int(spx_int32_t i)
+{
+#if 1
+ return letoh32(i);
+#elif !defined(__LITTLE_ENDIAN__) && ( defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__) )
+ spx_uint32_t ui, ret;
+ ui = i;
+ ret = ui>>24;
+ ret |= (ui>>8)&0x0000ff00;
+ ret |= (ui<<8)&0x00ff0000;
+ ret |= (ui<<24);
+ return ret;
+#else
+ return i;
+#endif
+}
+
#define ENDIAN_SWITCH(x) {x=le_int(x);}