annotate libtwamr/bits2prm.c @ 282:9ee8ad3d4d30

frtest: rm gsmfr-hand-test and gsmfr-max-out utils These hack programs were never properly documented and were written only as part of a debug chase, in pursuit of a bug that ultimately turned out to be in our then-hacky patch to osmo-bts-sysmo, before beginning of proper patches in Osmocom. These hack programs need to be dropped from the present sw package because they depend on old libgsm, and we are eliminating that dependency.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Apr 2024 05:44:47 +0000
parents f931e704adc5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
254
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * A cleaner reimplementation of AMR Bits2prm() function.
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 #include "typedef.h"
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include "namespace.h"
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include "bitno.h"
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include "bits2prm.h"
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 void Bits2prm(enum Mode mode, const Word16 bits[], Word16 prm[])
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 {
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 const Word16 *p = bits;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 const Word16 *t = bitno[mode];
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 unsigned nparam = prmno[mode];
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 unsigned n, m, acc;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 for (n = 0; n < nparam; n++) {
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 acc = 0;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 for (m = 0; m < *t; m++) {
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 acc <<= 1;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 if (*p)
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 acc |= 1;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 p++;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 }
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 prm[n] = acc;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 t++;
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 }
f931e704adc5 libtwamr: bits and parameter packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 }