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;