From 438f8c3e3c8605eb6d455fbfcbdef4b555495dae Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 7 Mar 2016 17:50:12 +0000 Subject: [PATCH] Audio blanking for bad DMR audio frames. --- AMBEFEC.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/AMBEFEC.cpp b/AMBEFEC.cpp index fa2c959..91e68cb 100644 --- a/AMBEFEC.cpp +++ b/AMBEFEC.cpp @@ -657,22 +657,28 @@ unsigned int CAMBEFEC::regenerate(unsigned int& a, unsigned int& b, unsigned int new_b |= b24 ? 0x01U : 0x00U; } - unsigned int errors = 0U; + unsigned int errsA = 0U, errsB = 0U; unsigned int v = new_a ^ old_a; while (v != 0U) { v &= v - 1U; - errors++; + errsA++; } v = new_b ^ old_b; while (v != 0U) { v &= v - 1U; - errors++; + errsB++; + } + + if (errsA >= 4U || ((errsA + errsB) >= 6U && errsA >= 2U)) { + a = 0xF00292U; + b = 0x0E0B20U; + c = 0x000000U; } a = new_a; b = new_b; - return errors; + return errsA + errsB; }