view dev/efr-bit-packing.c @ 423:cf90077b753c

twamr-tseq-enc: treat dribble input as non-fatal 3GPP VAD2 test sequences dt22.inp and dt23.inp have incomplete frames at the end, hence we need to ignore that dribble in a non-fatal manner in order to pass all tests.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 07 May 2024 07:20:29 +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);
}