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 6d1e010828..eb4c199d46 100644
--- a/apps/codecs/libspeex/speex_header.c
+++ b/apps/codecs/libspeex/speex_header.c
@@ -35,7 +35,7 @@
35#include "config-speex.h" 35#include "config-speex.h"
36#endif 36#endif
37 37
38#include "misc.h" 38#include "arch.h"
39#include <speex/speex_header.h> 39#include <speex/speex_header.h>
40#include <speex/speex.h> 40#include <speex/speex.h>
41#include "os_support.h" 41#include "os_support.h"
@@ -44,6 +44,24 @@
44#define NULL 0 44#define NULL 0
45#endif 45#endif
46 46
47/** Convert little endian */
48static inline spx_int32_t le_int(spx_int32_t i)
49{
50#if 1
51 return letoh32(i);
52#elif !defined(__LITTLE_ENDIAN__) && ( defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__) )
53 spx_uint32_t ui, ret;
54 ui = i;
55 ret = ui>>24;
56 ret |= (ui>>8)&0x0000ff00;
57 ret |= (ui<<8)&0x00ff0000;
58 ret |= (ui<<24);
59 return ret;
60#else
61 return i;
62#endif
63}
64
47#define ENDIAN_SWITCH(x) {x=le_int(x);} 65#define ENDIAN_SWITCH(x) {x=le_int(x);}
48 66
49 67