Harald Welte has submitted this change and it was merged.

Change subject: gsm0503_coding.c: Use majority vote in tch_efr_unreorder()
......................................................................


gsm0503_coding.c: Use majority vote in tch_efr_unreorder()

The EFR coding contains some repeated bits.  In case there are
transmission errors, some bits may of course get corrupted.  It looks
like there's an improvement can be made by taking a majority vote on
those "repetition bits", i.e. if 2 out of 3 bits are the same, then use
that instead of expecting to match all 3 bits.

See 3GPP TS 45.003 Section 3.1.1.3 for reference.

Change-Id: I2a28a4d7fb82aed4d39fe8efeea702effdba3858
---
M src/coding/gsm0503_coding.c
1 file changed, 3 insertions(+), 3 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c
index c4bdb81..639d2df 100644
--- a/src/coding/gsm0503_coding.c
+++ b/src/coding/gsm0503_coding.c
@@ -1743,16 +1743,16 @@
 
        memcpy(s, w, 71);
        sum = s[69] + w[71] + w[72];
-       s[69] = (sum > 2);
+       s[69] = (sum >= 2);
        memcpy(s + 71, w + 73, 50);
        sum = s[119] + w[123] + w[124];
-       s[119] = (sum > 2);
+       s[119] = (sum >= 2);
        memcpy(s + 121, w + 125, 53);
        sum = s[172] + w[178] + w[179];
        s[172] = (sum > 2);
        memcpy(s + 174, w + 180, 50);
        sum = s[222] + w[230] + w[231];
-       s[222] = (sum > 2);
+       s[222] = (sum >= 2);
        memcpy(s + 224, w + 232, 20);
        memcpy(p, w + 252, 8);
 }

-- 
To view, visit https://gerrit.osmocom.org/4676
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2a28a4d7fb82aed4d39fe8efeea702effdba3858
Gerrit-PatchSet: 1
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder

Reply via email to