Simplify the NXDN audio decoding.

This commit is contained in:
Jonathan Naylor
2018-03-07 20:24:32 +00:00
parent 06ccaf6032
commit aac677d152

View File

@@ -502,20 +502,18 @@ void CNXDNAudio::decode(const unsigned char* in, unsigned char* out, unsigned in
c |= MASK; c |= MASK;
} }
unsigned int data = CGolay24128::decode24128(a); a >>= 12;
// The PRNG // The PRNG
unsigned int p = PRNG_TABLE[data] >> 1; b ^= (PRNG_TABLE[a] >> 1);
b ^= p; b >>= 11;
unsigned int datb = CGolay24128::decode23127(b);
MASK = 0x000800U; MASK = 0x000800U;
for (unsigned int i = 0U; i < 12U; i++, MASK >>= 1) { for (unsigned int i = 0U; i < 12U; i++, MASK >>= 1) {
unsigned int aPos = i + offset + 0U; unsigned int aPos = i + offset + 0U;
unsigned int bPos = i + offset + 12U; unsigned int bPos = i + offset + 12U;
WRITE_BIT(out, aPos, data & MASK); WRITE_BIT(out, aPos, a & MASK);
WRITE_BIT(out, bPos, datb & MASK); WRITE_BIT(out, bPos, b & MASK);
} }
MASK = 0x1000000U; MASK = 0x1000000U;