FreeCalypso > hg > gsm-net-reveng
changeset 86:8b7ba6f4a85e
trau-parse: AMR 6k70 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 04 Mar 2025 22:44:37 +0000 |
parents | 53f6a04dc472 |
children | 9cd468f6872c |
files | trau-decode/parse-amr.c |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/trau-decode/parse-amr.c Tue Mar 04 21:47:27 2025 +0000 +++ b/trau-decode/parse-amr.c Tue Mar 04 22:44:37 2025 +0000 @@ -73,6 +73,32 @@ decode_mode_3(c_bits, d_bits) ubit_t *c_bits, *d_bits; { + ubit_t crc_collect[57]; + int crc1, crc2, crc3, crc4; + + bcopy(c_bits, crc_collect, 25); + bcopy(d_bits + 37, crc_collect + 25, 17); + crc_collect[42] = d_bits[56]; + crc_collect[43] = d_bits[60]; + bcopy(d_bits + 63, crc_collect + 44, 8); + bcopy(d_bits + 85, crc_collect + 52, 5); + crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 57, + d_bits + 92); + bcopy(d_bits + 95, crc_collect, 4); + bcopy(d_bits + 113, crc_collect + 4, 5); + crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 9, + d_bits + 120); + bcopy(d_bits + 123, crc_collect, 8); + bcopy(d_bits + 145, crc_collect + 8, 5); + crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 13, + d_bits + 152); + bcopy(d_bits + 155, crc_collect, 4); + bcopy(d_bits + 173, crc_collect + 4, 5); + crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 9, + d_bits + 180); + printf(" CRC %s %s %s %s\n", + crc1 ? "bad" : "good", crc2 ? "bad" : "good", + crc3 ? "bad" : "good", crc4 ? "bad" : "good"); } static void