FreeCalypso > hg > gsm-net-reveng
comparison trau-decode/parse-amr.c @ 83:5e2ecfd45fc3 default tip
trau-parse: AMR 7k40 CRC
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Feb 2025 03:22:47 +0000 |
parents | 31a8d34b71ed |
children |
comparison
equal
deleted
inserted
replaced
82:31a8d34b71ed | 83:5e2ecfd45fc3 |
---|---|
77 | 77 |
78 static void | 78 static void |
79 decode_mode_4(c_bits, d_bits) | 79 decode_mode_4(c_bits, d_bits) |
80 ubit_t *c_bits, *d_bits; | 80 ubit_t *c_bits, *d_bits; |
81 { | 81 { |
82 ubit_t crc_collect[59]; | |
83 int crc1, crc2, crc3, crc4; | |
84 | |
85 bcopy(c_bits, crc_collect, 25); | |
86 bcopy(d_bits + 34, crc_collect + 25, 20); | |
87 bcopy(d_bits + 55, crc_collect + 45, 3); | |
88 bcopy(d_bits + 60, crc_collect + 48, 6); | |
89 bcopy(d_bits + 85, crc_collect + 54, 2); | |
90 bcopy(d_bits + 88, crc_collect + 56, 3); | |
91 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 59, | |
92 d_bits + 92); | |
93 bcopy(d_bits + 95, crc_collect, 3); | |
94 bcopy(d_bits + 117, crc_collect + 3, 2); | |
95 bcopy(d_bits + 120, crc_collect + 5, 3); | |
96 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 8, | |
97 d_bits + 124); | |
98 bcopy(d_bits + 127, crc_collect, 6); | |
99 bcopy(d_bits + 152, crc_collect + 6, 2); | |
100 bcopy(d_bits + 155, crc_collect + 8, 3); | |
101 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 11, | |
102 d_bits + 159); | |
103 bcopy(d_bits + 162, crc_collect, 3); | |
104 bcopy(d_bits + 184, crc_collect + 3, 2); | |
105 bcopy(d_bits + 187, crc_collect + 5, 2); | |
106 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 7, | |
107 d_bits + 191); | |
108 printf(" CRC %s %s %s %s\n", | |
109 crc1 ? "bad" : "good", crc2 ? "bad" : "good", | |
110 crc3 ? "bad" : "good", crc4 ? "bad" : "good"); | |
82 } | 111 } |
83 | 112 |
84 static void | 113 static void |
85 decode_mode_5(c_bits, d_bits) | 114 decode_mode_5(c_bits, d_bits) |
86 ubit_t *c_bits, *d_bits; | 115 ubit_t *c_bits, *d_bits; |