comparison trau-decode/parse-amr.c @ 88:cec24988550a

trau-parse: AMR 5k15 CRC
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 05 Mar 2025 00:05:55 +0000
parents 9cd468f6872c
children 865b104ffbab
comparison
equal deleted inserted replaced
87:9cd468f6872c 88:cec24988550a
59 59
60 static void 60 static void
61 decode_mode_1(c_bits, d_bits) 61 decode_mode_1(c_bits, d_bits)
62 ubit_t *c_bits, *d_bits; 62 ubit_t *c_bits, *d_bits;
63 { 63 {
64 ubit_t crc_collect[57];
65 int crc1, crc2, crc3, crc4;
66
67 bcopy(c_bits, crc_collect, 25);
68 bcopy(d_bits + 46, crc_collect + 25, 16);
69 bcopy(d_bits + 64, crc_collect + 41, 11);
70 bcopy(d_bits + 87, crc_collect + 52, 5);
71 crc1 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 57,
72 d_bits + 92);
73 bcopy(d_bits + 95, crc_collect, 2);
74 bcopy(d_bits + 109, crc_collect + 2, 5);
75 crc2 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 7,
76 d_bits + 114);
77 bcopy(d_bits + 117, crc_collect, 2);
78 bcopy(d_bits + 131, crc_collect + 2, 5);
79 crc3 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 7,
80 d_bits + 136);
81 bcopy(d_bits + 139, crc_collect, 2);
82 bcopy(d_bits + 153, crc_collect + 2, 5);
83 crc4 = osmo_crc8gen_check_bits(&gsm0860_amr_crc3, crc_collect, 7,
84 d_bits + 158);
85 printf(" CRC %s %s %s %s\n",
86 crc1 ? "bad" : "good", crc2 ? "bad" : "good",
87 crc3 ? "bad" : "good", crc4 ? "bad" : "good");
64 } 88 }
65 89
66 static void 90 static void
67 decode_mode_2(c_bits, d_bits) 91 decode_mode_2(c_bits, d_bits)
68 ubit_t *c_bits, *d_bits; 92 ubit_t *c_bits, *d_bits;