1 |
From: Mike Hommey <mh@glandium.org> |
2 |
Date: Sat, 1 Dec 2012 09:55:48 +0100 |
3 |
Subject: Bug 814693 - Allow webrtc to build on more architectures |
4 |
|
5 |
--- |
6 |
media/webrtc/shared_libs.mk | 9 ++- |
7 |
.../modules/audio_coding/codecs/pcm16b/pcm16b.c | 8 +-- |
8 |
media/webrtc/trunk/src/typedefs.h | 64 ++++++++++++++++++++ |
9 |
3 files changed, 73 insertions(+), 8 deletions(-) |
10 |
|
11 |
diff --git a/media/webrtc/shared_libs.mk b/media/webrtc/shared_libs.mk |
12 |
index 451879b..76d4395 100644 |
13 |
--- a/media/webrtc/shared_libs.mk |
14 |
+++ b/media/webrtc/shared_libs.mk |
15 |
@@ -29,13 +29,11 @@ SHARED_LIBRARY_LIBS += \ |
16 |
$(call EXPAND_LIBNAME_PATH,rtp_rtcp,$(DEPTH)/media/webrtc/trunk/src/modules/modules_rtp_rtcp) \ |
17 |
$(call EXPAND_LIBNAME_PATH,udp_transport,$(DEPTH)/media/webrtc/trunk/src/modules/modules_udp_transport) \ |
18 |
$(call EXPAND_LIBNAME_PATH,video_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing) \ |
19 |
- $(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \ |
20 |
$(call EXPAND_LIBNAME_PATH,voice_engine_core,$(DEPTH)/media/webrtc/trunk/src/voice_engine/voice_engine_voice_engine_core) \ |
21 |
$(call EXPAND_LIBNAME_PATH,audio_conference_mixer,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_conference_mixer) \ |
22 |
$(call EXPAND_LIBNAME_PATH,audio_device,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_device) \ |
23 |
$(call EXPAND_LIBNAME_PATH,audio_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_processing) \ |
24 |
$(call EXPAND_LIBNAME_PATH,aec,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec) \ |
25 |
- $(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \ |
26 |
$(call EXPAND_LIBNAME_PATH,apm_util,$(DEPTH)/media/webrtc/trunk/src/modules/modules_apm_util) \ |
27 |
$(call EXPAND_LIBNAME_PATH,aecm,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aecm) \ |
28 |
$(call EXPAND_LIBNAME_PATH,agc,$(DEPTH)/media/webrtc/trunk/src/modules/modules_agc) \ |
29 |
@@ -43,3 +41,10 @@ SHARED_LIBRARY_LIBS += \ |
30 |
$(call EXPAND_LIBNAME_PATH,yuv,$(DEPTH)/media/webrtc/trunk/third_party/libyuv/libyuv_libyuv) \ |
31 |
$(call EXPAND_LIBNAME_PATH,webrtc_jpeg,$(DEPTH)/media/webrtc/trunk/src/common_video/common_video_webrtc_jpeg) \ |
32 |
$(NULL) |
33 |
+ |
34 |
+ifneq (,$(INTEL_ARCHITECTURE)) |
35 |
+SHARED_LIBRARY_LIBS += \ |
36 |
+ $(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \ |
37 |
+ $(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \ |
38 |
+ $(NULL) |
39 |
+endif |
40 |
diff --git a/media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.c b/media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.c |
41 |
index 0cff5dd..c0befb9 100644 |
42 |
--- a/media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.c |
43 |
+++ b/media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.c |
44 |
@@ -15,10 +15,6 @@ |
45 |
|
46 |
#include "typedefs.h" |
47 |
|
48 |
-#ifdef WEBRTC_BIG_ENDIAN |
49 |
-#include "signal_processing_library.h" |
50 |
-#endif |
51 |
- |
52 |
#define HIGHEND 0xFF00 |
53 |
#define LOWEND 0xFF |
54 |
|
55 |
@@ -30,7 +26,7 @@ WebRtc_Word16 WebRtcPcm16b_EncodeW16(WebRtc_Word16 *speechIn16b, |
56 |
WebRtc_Word16 *speechOut16b) |
57 |
{ |
58 |
#ifdef WEBRTC_BIG_ENDIAN |
59 |
- WEBRTC_SPL_MEMCPY_W16(speechOut16b, speechIn16b, len); |
60 |
+ memcpy(speechOut16b, speechIn16b, len * sizeof(WebRtc_Word16)); |
61 |
#else |
62 |
int i; |
63 |
for (i=0;i<len;i++) { |
64 |
@@ -69,7 +65,7 @@ WebRtc_Word16 WebRtcPcm16b_DecodeW16(void *inst, |
65 |
WebRtc_Word16* speechType) |
66 |
{ |
67 |
#ifdef WEBRTC_BIG_ENDIAN |
68 |
- WEBRTC_SPL_MEMCPY_W8(speechOut16b, speechIn16b, ((len*sizeof(WebRtc_Word16)+1)>>1)); |
69 |
+ memcpy(speechOut16b, speechIn16b, ((len*sizeof(WebRtc_Word16)+1)>>1)); |
70 |
#else |
71 |
int i; |
72 |
int samples=len>>1; |
73 |
diff --git a/media/webrtc/trunk/src/typedefs.h b/media/webrtc/trunk/src/typedefs.h |
74 |
index 53db408..fe293ce 100644 |
75 |
--- a/media/webrtc/trunk/src/typedefs.h |
76 |
+++ b/media/webrtc/trunk/src/typedefs.h |
77 |
@@ -48,6 +48,70 @@ |
78 |
#define WEBRTC_ARCH_32_BITS |
79 |
#define WEBRTC_ARCH_LITTLE_ENDIAN |
80 |
#define WEBRTC_LITTLE_ENDIAN |
81 |
+#elif defined(__powerpc64__) |
82 |
+#define WEBRTC_ARCH_PPC64 1 |
83 |
+#define WEBRTC_ARCH_64_BITS 1 |
84 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
85 |
+#define WEBRTC_BIG_ENDIAN |
86 |
+#elif defined(__ppc__) || defined(__powerpc__) |
87 |
+#define WEBRTC_ARCH_PPC 1 |
88 |
+#define WEBRTC_ARCH_32_BITS 1 |
89 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
90 |
+#define WEBRTC_BIG_ENDIAN |
91 |
+#elif defined(__sparc64__) |
92 |
+#define WEBRTC_ARCH_SPARC 1 |
93 |
+#define WEBRTC_ARCH_64_BITS 1 |
94 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
95 |
+#define WEBRTC_BIG_ENDIAN |
96 |
+#elif defined(__sparc__) |
97 |
+#define WEBRTC_ARCH_SPARC 1 |
98 |
+#define WEBRTC_ARCH_32_BITS 1 |
99 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
100 |
+#define WEBRTC_BIG_ENDIAN |
101 |
+#elif defined(__mips__) |
102 |
+#define WEBRTC_ARCH_MIPS 1 |
103 |
+#if defined(_ABI64) && _MIPS_SIM == _ABI64 |
104 |
+#define WEBRTC_ARCH_64_BITS 1 |
105 |
+#else |
106 |
+#define WEBRTC_ARCH_32_BITS 1 |
107 |
+#endif |
108 |
+#if defined(__MIPSEB__) |
109 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
110 |
+#define WEBRTC_BIG_ENDIAN |
111 |
+#else |
112 |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
113 |
+#define WEBRTC_LITTLE_ENDIAN |
114 |
+#endif |
115 |
+#elif defined(__hppa__) |
116 |
+#define WEBRTC_ARCH_HPPA 1 |
117 |
+#define WEBRTC_ARCH_32_BITS 1 |
118 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
119 |
+#define WEBRTC_BIG_ENDIAN |
120 |
+#elif defined(__ia64__) |
121 |
+#define WEBRTC_ARCH_IA64 1 |
122 |
+#define WEBRTC_ARCH_64_BITS 1 |
123 |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
124 |
+#define WEBRTC_LITTLE_ENDIAN |
125 |
+#elif defined(__s390x__) |
126 |
+#define WEBRTC_ARCH_S390X 1 |
127 |
+#define WEBRTC_ARCH_64_BITS 1 |
128 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
129 |
+#define WEBRTC_BIG_ENDIAN |
130 |
+#elif defined(__s390__) |
131 |
+#define WEBRTC_ARCH_S390 1 |
132 |
+#define WEBRTC_ARCH_32_BITS 1 |
133 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
134 |
+#define WEBRTC_BIG_ENDIAN |
135 |
+#elif defined(__alpha__) |
136 |
+#define WEBRTC_ARCH_ALPHA 1 |
137 |
+#define WEBRTC_ARCH_64_BITS 1 |
138 |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
139 |
+#define WEBRTC_LITTLE_ENDIAN |
140 |
+#elif defined(__avr32__) |
141 |
+#define WEBRTC_ARCH_AVR32 1 |
142 |
+#define WEBRTC_ARCH_32_BITS 1 |
143 |
+#define WEBRTC_ARCH_BIG_ENDIAN |
144 |
+#define WEBRTC_BIG_ENDIAN |
145 |
#else |
146 |
#error Please add support for your architecture in typedefs.h |
147 |
#endif |