FreeCalypso > hg > gsm-net-reveng
changeset 89:865b104ffbab
trau-parse: AMR 4k75 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 05 Mar 2025 00:33:45 +0000 |
parents | cec24988550a |
children | 31e17dd64fc1 |
files | trau-decode/parse-amr.c |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/trau-decode/parse-amr.c Wed Mar 05 00:05:55 2025 +0000 +++ b/trau-decode/parse-amr.c Wed Mar 05 00:33:45 2025 +0000 @@ -55,6 +55,27 @@ decode_mode_0(c_bits, d_bits) ubit_t *c_bits, *d_bits; { + ubit_t crc_collect[56]; + int crc1, crc2, crc3, crc4; + + bcopy(c_bits, crc_collect, 25); + bcopy(d_bits + 44, crc_collect + 25, 16); + bcopy(d_bits + 61, crc_collect + 41, 2); + bcopy(d_bits + 64, crc_collect + 43, 9); + bcopy(d_bits + 88, crc_collect + 52, 4); + crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 56, + d_bits + 92); + crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 95, 2, + d_bits + 108); + bcopy(d_bits + 111, crc_collect, 2); + bcopy(d_bits + 128, crc_collect + 2, 4); + crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 6, + d_bits + 132); + crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 135, 2, + d_bits + 148); + printf(" CRC %s %s %s %s\n", + crc1 ? "bad" : "good", crc2 ? "bad" : "good", + crc3 ? "bad" : "good", crc4 ? "bad" : "good"); } static void