FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/memops.h @ 107:41f1ae68d253
amr2efr & efr2amr cosmetic: cleaner approach to bit reshuffling
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 27 Nov 2022 21:02:07 +0000 |
parents | d285877fc4cc |
children |
rev | line source |
---|---|
58
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * The original code from ETSI uses its own Copy() and Set_zero() |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * functions, operating on Word16 elements. Here we implement them |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * as static inline functions wrapping around memcpy and memset. |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <string.h> |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 static inline void Copy ( |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 const Word16 x[], /* (i) : input vector */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 Word16 y[], /* (o) : output vector */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 Word16 L /* (i) : vector length */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 ) |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 { |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 memcpy(y, x, L * 2); |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 } |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 static inline void Set_zero ( |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 Word16 x[], /* (o) : vector to clear */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 Word16 L /* (i) : length of vector */ |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 ) |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 { |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 memset(x, 0, L * 2); |
d285877fc4cc
libgsmefr: cod_12k2.c compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 } |