comparison trau-decode/parse-amr.c @ 89:865b104ffbab

trau-parse: AMR 4k75 CRC
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 05 Mar 2025 00:33:45 +0000
parents cec24988550a
children 31e17dd64fc1
comparison
equal deleted inserted replaced
88:cec24988550a 89:865b104ffbab
53 53
54 static void 54 static void
55 decode_mode_0(c_bits, d_bits) 55 decode_mode_0(c_bits, d_bits)
56 ubit_t *c_bits, *d_bits; 56 ubit_t *c_bits, *d_bits;
57 { 57 {
58 ubit_t crc_collect[56];
59 int crc1, crc2, crc3, crc4;
60
61 bcopy(c_bits, crc_collect, 25);
62 bcopy(d_bits + 44, crc_collect + 25, 16);
63 bcopy(d_bits + 61, crc_collect + 41, 2);
64 bcopy(d_bits + 64, crc_collect + 43, 9);
65 bcopy(d_bits + 88, crc_collect + 52, 4);
66 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 56,
67 d_bits + 92);
68 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 95, 2,
69 d_bits + 108);
70 bcopy(d_bits + 111, crc_collect, 2);
71 bcopy(d_bits + 128, crc_collect + 2, 4);
72 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 6,
73 d_bits + 132);
74 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, d_bits + 135, 2,
75 d_bits + 148);
76 printf(" CRC %s %s %s %s\n",
77 crc1 ? "bad" : "good", crc2 ? "bad" : "good",
78 crc3 ? "bad" : "good", crc4 ? "bad" : "good");
58 } 79 }
59 80
60 static void 81 static void
61 decode_mode_1(c_bits, d_bits) 82 decode_mode_1(c_bits, d_bits)
62 ubit_t *c_bits, *d_bits; 83 ubit_t *c_bits, *d_bits;