Audio blanking for bad DMR audio frames.
This commit is contained in:
parent
7ab91fd7bf
commit
438f8c3e3c
14
AMBEFEC.cpp
14
AMBEFEC.cpp
|
@ -657,22 +657,28 @@ unsigned int CAMBEFEC::regenerate(unsigned int& a, unsigned int& b, unsigned int
|
||||||
new_b |= b24 ? 0x01U : 0x00U;
|
new_b |= b24 ? 0x01U : 0x00U;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int errors = 0U;
|
unsigned int errsA = 0U, errsB = 0U;
|
||||||
|
|
||||||
unsigned int v = new_a ^ old_a;
|
unsigned int v = new_a ^ old_a;
|
||||||
while (v != 0U) {
|
while (v != 0U) {
|
||||||
v &= v - 1U;
|
v &= v - 1U;
|
||||||
errors++;
|
errsA++;
|
||||||
}
|
}
|
||||||
|
|
||||||
v = new_b ^ old_b;
|
v = new_b ^ old_b;
|
||||||
while (v != 0U) {
|
while (v != 0U) {
|
||||||
v &= v - 1U;
|
v &= v - 1U;
|
||||||
errors++;
|
errsB++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errsA >= 4U || ((errsA + errsB) >= 6U && errsA >= 2U)) {
|
||||||
|
a = 0xF00292U;
|
||||||
|
b = 0x0E0B20U;
|
||||||
|
c = 0x000000U;
|
||||||
}
|
}
|
||||||
|
|
||||||
a = new_a;
|
a = new_a;
|
||||||
b = new_b;
|
b = new_b;
|
||||||
|
|
||||||
return errors;
|
return errsA + errsB;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue