aboutsummaryrefslogtreecommitdiff
path: root/multimedia/rnnoise/rnnoise.patch
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/rnnoise/rnnoise.patch')
-rw-r--r--multimedia/rnnoise/rnnoise.patch118
1 files changed, 118 insertions, 0 deletions
diff --git a/multimedia/rnnoise/rnnoise.patch b/multimedia/rnnoise/rnnoise.patch
new file mode 100644
index 0000000000..ecaef9cb7a
--- /dev/null
+++ b/multimedia/rnnoise/rnnoise.patch
@@ -0,0 +1,118 @@
+diff --git a/src/common.h b/src/common.h
+index 5005bff..f9095ca 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -43,6 +43,14 @@ static RNN_INLINE void rnnoise_free (void *ptr)
+ #define RNN_CLEAR(dst, n) (memset((dst), 0, (n)*sizeof(*(dst))))
+ #endif
+
++# if !defined(OPUS_GNUC_PREREQ)
++# if defined(__GNUC__)&&defined(__GNUC_MINOR__)
++# define OPUS_GNUC_PREREQ(_maj,_min) \
++ ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min))
++# else
++# define OPUS_GNUC_PREREQ(_maj,_min) 0
++# endif
++# endif
+
+
+ #endif
+diff --git a/src/vec.h b/src/vec.h
+index 8e96cbf..71b7afb 100644
+--- a/src/vec.h
++++ b/src/vec.h
+@@ -30,6 +30,7 @@
+ #define VEC_H
+
+ #include "opus_types.h"
++#include "common.h"
+ #include <math.h>
+ #include "arch.h"
+ #include "x86/x86_arch_macros.h"
+@@ -41,8 +42,6 @@
+ #include "vec_neon.h"
+ #else
+
+-#include "os_support.h"
+-
+ #define MAX_INPUTS (2048)
+
+ #define NO_OPTIMIZATIONS
+@@ -50,7 +49,7 @@
+ static inline void sgemv16x1(float *out, const float *weights, int rows, int cols, int col_stride, const float *x)
+ {
+ int i, j;
+- OPUS_CLEAR(out, rows);
++ RNN_CLEAR(out, rows);
+ for (i=0;i<rows;i+=16)
+ {
+ for (j=0;j<cols;j++)
+@@ -84,7 +83,7 @@ static inline void sgemv16x1(float *out, const float *weights, int rows, int col
+ static inline void sgemv8x1(float *out, const float *weights, int rows, int cols, int col_stride, const float *x)
+ {
+ int i, j;
+- OPUS_CLEAR(out, rows);
++ RNN_CLEAR(out, rows);
+ for (i=0;i<rows;i+=8)
+ {
+ for (j=0;j<cols;j++)
+@@ -124,7 +123,7 @@ static inline void sgemv(float *out, const float *weights, int rows, int cols, i
+ static inline void sparse_sgemv8x4(float *out, const float *w, const int *idx, int rows, const float *x)
+ {
+ int i, j;
+- OPUS_CLEAR(out, rows);
++ RNN_CLEAR(out, rows);
+ for (i=0;i<rows;i+=8)
+ {
+ int cols;
+diff --git a/src/vec_avx.h b/src/vec_avx.h
+index b73a353..a5040b4 100644
+--- a/src/vec_avx.h
++++ b/src/vec_avx.h
+@@ -34,7 +34,7 @@
+
+ #include <immintrin.h>
+ #include <math.h>
+-/*#include "celt/x86/x86cpu.h"*/
++#include "x86/x86cpu.h"
+
+ #define MAX_INPUTS (2048)
+
+diff --git a/src/vec_neon.h b/src/vec_neon.h
+index e6432e2..31b736c 100644
+--- a/src/vec_neon.h
++++ b/src/vec_neon.h
+@@ -32,7 +32,8 @@
+ #define VEC_NEON_H
+
+ #include <arm_neon.h>
+-#include "os_support.h"
++#include "opus_types.h"
++#include "common.h"
+
+ #if defined(__arm__) && !defined(__aarch64__) && (__ARM_ARCH < 8 || !defined(__clang__))
+ /* Emulate vcvtnq_s32_f32() for ARMv7 Neon. */
+@@ -302,7 +303,7 @@ static inline void sgemv(float *out, const float *weights, int rows, int cols, i
+ static inline void sparse_sgemv8x4(float *out, const float *w, const int *idx, int rows, const float *x)
+ {
+ int i, j;
+- OPUS_CLEAR(out, rows);
++ RNN_CLEAR(out, rows);
+ for (i=0;i<rows;i+=8)
+ {
+ int cols;
+diff --git a/src/x86/x86cpu.h b/src/x86/x86cpu.h
+index 97dcdbd..e214aba 100644
+--- a/src/x86/x86cpu.h
++++ b/src/x86/x86cpu.h
+@@ -36,8 +36,8 @@
+ int opus_select_arch(void);
+ # endif
+
+-# if defined(OPUS_X86_MAY_HAVE_SSE2)
+-# include "opus_defines.h"
++# if defined(__SSE2__)
++# include "common.h"
+
+ /*MOVD should not impose any alignment restrictions, but the C standard does,
+ and UBSan will report errors if we actually make unaligned accesses.