FreeCalypso > hg > gsm-net-reveng
diff trau-decode/parse-amr.c @ 82:31a8d34b71ed
trau-parse: AMR 7k95 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 08 Feb 2025 21:42:53 +0000 |
parents | 9eff2af191d5 |
children | 5e2ecfd45fc3 |
line wrap: on
line diff
--- a/trau-decode/parse-amr.c Sat Feb 08 20:36:23 2025 +0000 +++ b/trau-decode/parse-amr.c Sat Feb 08 21:42:53 2025 +0000 @@ -85,6 +85,34 @@ decode_mode_5(c_bits, d_bits) ubit_t *c_bits, *d_bits; { + ubit_t crc_collect[64]; + int crc1, crc2, crc3, crc4; + + bcopy(c_bits, crc_collect, 25); + bcopy(d_bits + 31, crc_collect + 25, 35); + bcopy(d_bits + 83, crc_collect + 60, 2); + crc_collect[62] = d_bits[87]; + crc_collect[63] = d_bits[90]; + crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 64, + d_bits + 92); + bcopy(d_bits + 95, crc_collect, 4); + bcopy(d_bits + 118, crc_collect + 4, 2); + bcopy(d_bits + 122, crc_collect + 6, 4); + crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 10, + d_bits + 127); + bcopy(d_bits + 130, crc_collect, 8); + bcopy(d_bits + 155, crc_collect + 8, 2); + bcopy(d_bits + 159, crc_collect + 10, 4); + crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 14, + d_bits + 164); + bcopy(d_bits + 167, crc_collect, 4); + bcopy(d_bits + 190, crc_collect + 4, 2); + bcopy(d_bits + 194, crc_collect + 6, 4); + crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 10, + d_bits + 199); + printf(" CRC %s %s %s %s\n", + crc1 ? "bad" : "good", crc2 ? "bad" : "good", + crc3 ? "bad" : "good", crc4 ? "bad" : "good"); } static void