FreeCalypso > hg > gsm-net-reveng
comparison trau-decode/parse-amr.c @ 80:58dfdb2fc6df
trau-parse: AMR 12k2 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 08 Feb 2025 18:26:48 +0000 |
parents | 8c1f20e845a1 |
children | 9eff2af191d5 |
comparison
equal
deleted
inserted
replaced
79:8c1f20e845a1 | 80:58dfdb2fc6df |
---|---|
95 | 95 |
96 static void | 96 static void |
97 decode_mode_7(c_bits, d_bits) | 97 decode_mode_7(c_bits, d_bits) |
98 ubit_t *c_bits, *d_bits; | 98 ubit_t *c_bits, *d_bits; |
99 { | 99 { |
100 ubit_t crc_collect[69]; | |
101 int crc1, crc2, crc3, crc4; | |
102 | |
103 bcopy(c_bits, crc_collect, 25); | |
104 bcopy(d_bits, crc_collect + 25, 29); | |
105 bcopy(d_bits + 38, crc_collect + 54, 12); | |
106 bcopy(d_bits + 86, crc_collect + 66, 3); | |
107 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 69, | |
108 d_bits + 91); | |
109 bcopy(d_bits + 94, crc_collect, 9); | |
110 bcopy(d_bits + 139, crc_collect + 9, 3); | |
111 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 12, | |
112 d_bits + 144); | |
113 bcopy(d_bits + 147, crc_collect, 12); | |
114 bcopy(d_bits + 195, crc_collect + 12, 3); | |
115 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 15, | |
116 d_bits + 200); | |
117 bcopy(d_bits + 203, crc_collect, 5); | |
118 bcopy(d_bits + 209, crc_collect + 5, 3); | |
119 bcopy(d_bits + 248, crc_collect + 8, 3); | |
120 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 11, | |
121 d_bits + 253); | |
122 printf(" CRC %s %s %s %s\n", | |
123 crc1 ? "bad" : "good", crc2 ? "bad" : "good", | |
124 crc3 ? "bad" : "good", crc4 ? "bad" : "good"); | |
100 } | 125 } |
101 | 126 |
102 static void (*per_mode_decode[8])() = { | 127 static void (*per_mode_decode[8])() = { |
103 decode_mode_0, | 128 decode_mode_0, |
104 decode_mode_1, | 129 decode_mode_1, |