FreeCalypso > hg > vband-misc
diff pcma2efr/dhf-check.c @ 28:4f47447fd17f
pcma2efr: starting with DHF check
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 13 May 2024 02:45:17 +0000 |
parents | pcmu2efr/dhf-check.c@2628a34fe75b |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pcma2efr/dhf-check.c Mon May 13 02:45:17 2024 +0000 @@ -0,0 +1,46 @@ +/* + * This program generates both standard-EFR and AMR-EFR versions of + * sample-shifted first encoder frame, and checks them against + * both EFR and MR122 DHFs. + */ + +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> +#include <gsm_efr.h> +#include <tw_amr.h> + +extern uint8_t standard_efr[160][31]; +extern uint8_t amr_efr[160][31]; + +static void +check_for_dhf(efr_frame, name, num) + uint8_t *efr_frame; + char *name; + unsigned num; +{ + int16_t params[EFR_NUM_PARAMS]; + + EFR_frame2params(efr_frame, params); + if (!bcmp(params, amr_dhf_gsmefr, EFR_NUM_PARAMS * sizeof(int16_t))) + printf("%s frame %u matches EFR DHF\n", name, num); + else if (!bcmp(params, amr_dhf_mr122, EFR_NUM_PARAMS * sizeof(int16_t))) + printf("%s frame %u matches MR122 DHF\n", name, num); +} + +main(argc, argv) + char **argv; +{ + unsigned n; + + generate_linear_inputs(); + generate_std_efr(); + generate_amr_efr(); + for (n = 0; n < 160; n++) + check_for_dhf(standard_efr[n], "std EFR", n); + for (n = 0; n < 160; n++) + check_for_dhf(amr_efr[n], "AMR-EFR", n); + exit(0); +}