FreeCalypso > hg > gsm-codec-lib
diff dev/efr-bit-packing.c @ 32:9639a44ae2e7
dev: efr-bit-packing helper program
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 24 Nov 2022 01:41:49 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dev/efr-bit-packing.c Thu Nov 24 01:41:49 2022 +0000 @@ -0,0 +1,34 @@ +/* + * We would like to generate our EFR RTP frame packing and unpacking code + * using bitter and sweet utilities from libgsm, so we'll end up packing + * and unpacking EFR just like good old FR. However, because of our + * slightly different approach, entering the spec file for bitter and sweet + * manually would be tedious and error-prone, hence we are going to + * generate it with this program. + */ + +#include <stdio.h> +#include <stdlib.h> + +#define PRM_NO 57 + +/* table from ETSI EFR code */ +static const unsigned bitno[PRM_NO] = +{ + 7, 8, 9, 8, 6, /* LSP VQ */ + 9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* first subframe */ + 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* second subframe */ + 9, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5, /* third subframe */ + 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 5 /* fourth subframe */ +}; + +main(argc, argv) + char **argv; +{ + unsigned n; + + printf("EFR_MAGIC\t4\n"); + for (n = 0; n < PRM_NO; n++) + printf("params[%u]\t%u\n", n, bitno[n]); + exit(0); +}