FreeCalypso > hg > gsm-net-reveng
comparison trau-decode/parse-amr.c @ 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 |
comparison
equal
deleted
inserted
replaced
88:cec24988550a | 89:865b104ffbab |
---|---|
53 | 53 |
54 static void | 54 static void |
55 decode_mode_0(c_bits, d_bits) | 55 decode_mode_0(c_bits, d_bits) |
56 ubit_t *c_bits, *d_bits; | 56 ubit_t *c_bits, *d_bits; |
57 { | 57 { |
58 ubit_t crc_collect[56]; | |
59 int crc1, crc2, crc3, crc4; | |
60 | |
61 bcopy(c_bits, crc_collect, 25); | |
62 bcopy(d_bits + 44, crc_collect + 25, 16); | |
63 bcopy(d_bits + 61, crc_collect + 41, 2); | |
64 bcopy(d_bits + 64, crc_collect + 43, 9); | |
65 bcopy(d_bits + 88, crc_collect + 52, 4); | |
66 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 56, | |
67 d_bits + 92); | |
68 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 95, 2, | |
69 d_bits + 108); | |
70 bcopy(d_bits + 111, crc_collect, 2); | |
71 bcopy(d_bits + 128, crc_collect + 2, 4); | |
72 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 6, | |
73 d_bits + 132); | |
74 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 135, 2, | |
75 d_bits + 148); | |
76 printf(" CRC %s %s %s %s\n", | |
77 crc1 ? "bad" : "good", crc2 ? "bad" : "good", | |
78 crc3 ? "bad" : "good", crc4 ? "bad" : "good"); | |
58 } | 79 } |
59 | 80 |
60 static void | 81 static void |
61 decode_mode_1(c_bits, d_bits) | 82 decode_mode_1(c_bits, d_bits) |
62 ubit_t *c_bits, *d_bits; | 83 ubit_t *c_bits, *d_bits; |