view dev/efr-bit-packing.c @ 288:e0b46ac2c326

gsmfr-encode-r: convert to libgsmfr2
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Apr 2024 06:20:04 +0000
parents 9639a44ae2e7
children
line wrap: on
line source

/*
 * 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);
}