FreeCalypso > hg > gsm-net-reveng
changeset 83:5e2ecfd45fc3 default tip
trau-parse: AMR 7k40 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Feb 2025 03:22:47 +0000 |
parents | 31a8d34b71ed |
children | |
files | trau-decode/parse-amr.c |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/trau-decode/parse-amr.c Sat Feb 08 21:42:53 2025 +0000 +++ b/trau-decode/parse-amr.c Sun Feb 09 03:22:47 2025 +0000 @@ -79,6 +79,35 @@ decode_mode_4(c_bits, d_bits) ubit_t *c_bits, *d_bits; { + ubit_t crc_collect[59]; + int crc1, crc2, crc3, crc4; + + bcopy(c_bits, crc_collect, 25); + bcopy(d_bits + 34, crc_collect + 25, 20); + bcopy(d_bits + 55, crc_collect + 45, 3); + bcopy(d_bits + 60, crc_collect + 48, 6); + bcopy(d_bits + 85, crc_collect + 54, 2); + bcopy(d_bits + 88, crc_collect + 56, 3); + crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 59, + d_bits + 92); + bcopy(d_bits + 95, crc_collect, 3); + bcopy(d_bits + 117, crc_collect + 3, 2); + bcopy(d_bits + 120, crc_collect + 5, 3); + crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 8, + d_bits + 124); + bcopy(d_bits + 127, crc_collect, 6); + bcopy(d_bits + 152, crc_collect + 6, 2); + bcopy(d_bits + 155, crc_collect + 8, 3); + crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 11, + d_bits + 159); + bcopy(d_bits + 162, crc_collect, 3); + bcopy(d_bits + 184, crc_collect + 3, 2); + bcopy(d_bits + 187, crc_collect + 5, 2); + crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 7, + d_bits + 191); + printf(" CRC %s %s %s %s\n", + crc1 ? "bad" : "good", crc2 ? "bad" : "good", + crc3 ? "bad" : "good", crc4 ? "bad" : "good"); } static void