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;