FreeCalypso > hg > gsm-net-reveng
comparison trau-decode/parse-amr.c @ 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 |
comparison
equal
deleted
inserted
replaced
85:53f6a04dc472 | 86:8b7ba6f4a85e |
---|---|
71 | 71 |
72 static void | 72 static void |
73 decode_mode_3(c_bits, d_bits) | 73 decode_mode_3(c_bits, d_bits) |
74 ubit_t *c_bits, *d_bits; | 74 ubit_t *c_bits, *d_bits; |
75 { | 75 { |
76 ubit_t crc_collect[57]; | |
77 int crc1, crc2, crc3, crc4; | |
78 | |
79 bcopy(c_bits, crc_collect, 25); | |
80 bcopy(d_bits + 37, crc_collect + 25, 17); | |
81 crc_collect[42] = d_bits[56]; | |
82 crc_collect[43] = d_bits[60]; | |
83 bcopy(d_bits + 63, crc_collect + 44, 8); | |
84 bcopy(d_bits + 85, crc_collect + 52, 5); | |
85 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 57, | |
86 d_bits + 92); | |
87 bcopy(d_bits + 95, crc_collect, 4); | |
88 bcopy(d_bits + 113, crc_collect + 4, 5); | |
89 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 9, | |
90 d_bits + 120); | |
91 bcopy(d_bits + 123, crc_collect, 8); | |
92 bcopy(d_bits + 145, crc_collect + 8, 5); | |
93 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 13, | |
94 d_bits + 152); | |
95 bcopy(d_bits + 155, crc_collect, 4); | |
96 bcopy(d_bits + 173, crc_collect + 4, 5); | |
97 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 9, | |
98 d_bits + 180); | |
99 printf(" CRC %s %s %s %s\n", | |
100 crc1 ? "bad" : "good", crc2 ? "bad" : "good", | |
101 crc3 ? "bad" : "good", crc4 ? "bad" : "good"); | |
76 } | 102 } |
77 | 103 |
78 static void | 104 static void |
79 decode_mode_4(c_bits, d_bits) | 105 decode_mode_4(c_bits, d_bits) |
80 ubit_t *c_bits, *d_bits; | 106 ubit_t *c_bits, *d_bits; |