FreeCalypso > hg > gsm-codec-lib
annotate dev/efr-bit-packing.c @ 266:8821ffaa93a5
libgsmfr2: integrate decoder main function from libgsm
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 14 Apr 2024 00:36:16 +0000 |
parents | 9639a44ae2e7 |
children |
rev | line source |
---|---|
32
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * We would like to generate our EFR RTP frame packing and unpacking code |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * using bitter and sweet utilities from libgsm, so we'll end up packing |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * and unpacking EFR just like good old FR. However, because of our |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * slightly different approach, entering the spec file for bitter and sweet |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * manually would be tedious and error-prone, hence we are going to |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * generate it with this program. |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdio.h> |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <stdlib.h> |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #define PRM_NO 57 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 /* table from ETSI EFR code */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 static const unsigned bitno[PRM_NO] = |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 { |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 7, 8, 9, 8, 6, /* LSP VQ */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* first subframe */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* second subframe */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* third subframe */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5 /* fourth subframe */ |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 }; |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 main(argc, argv) |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 char **argv; |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 { |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 unsigned n; |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 printf("EFR_MAGIC\t4\n"); |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 for (n = 0; n < PRM_NO; n++) |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 printf("params[%u]\t%u\n", n, bitno[n]); |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 exit(0); |
9639a44ae2e7
dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 } |