laforge submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved
trau_frame: fix de/encoding of HR-data-8k frames

Functions for decoding and encoding HR-data TRAU frames in 8 kbit/s
submultiplexing, accessible via osmo_trau_frame_encode() and
osmo_trau_frame_decode_8k() public APIs, were broken: movement
of data bits was wrong, and in the encoding direction the setting
of the last sync bit was missed.

Change-Id: I051b0b70adffcc473dcbb42a555c19088973cc90
---
M src/trau/trau_frame.c
1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/trau/trau_frame.c b/src/trau/trau_frame.c
index 98e26da..509021d 100644
--- a/src/trau/trau_frame.c
+++ b/src/trau/trau_frame.c
@@ -1110,12 +1110,13 @@
d_idx += 2;
/* D3 .. D8 */
memcpy(fr->d_bits + d_idx, trau_bits + 2 * 8 + 2, 6);
- /* D9 .. D57 + D'1 .. D'57 */
- for (i = 3; i < 20; i++) {
+ d_idx += 6;
+ /* D9 .. D63 + D'1 .. D'57 */
+ for (i = 3; i < 19; i++) {
memcpy(fr->d_bits + d_idx, trau_bits + i * 8 + 1, 7);
d_idx += 7;
}
- /* D'58 .. D'62 */
+ /* D'58 .. D'63 */
memcpy(fr->d_bits + d_idx, trau_bits + 19 * 8 + 1, 6);
d_idx += 6;

@@ -1132,7 +1133,7 @@
trau_bits[1 * 8] = 1;
trau_bits[2 * 8] = 0;
trau_bits[2 * 8 + 1] = 1;
- for (i = 3; i < 19; i++)
+ for (i = 3; i < 20; i++)
trau_bits[i * 8] = 1;
trau_bits[19 * 8 + 7] = 1;

@@ -1143,12 +1144,13 @@
d_idx += 2;
/* D3 .. D8 */
memcpy(trau_bits + 2 * 8 + 2, fr->d_bits + d_idx, 6);
- /* D9 .. D57 + D'1 .. D'57 */
- for (i = 3; i < 20; i++) {
+ d_idx += 6;
+ /* D9 .. D63 + D'1 .. D'57 */
+ for (i = 3; i < 19; i++) {
memcpy(trau_bits + i * 8 + 1, fr->d_bits + d_idx, 7);
d_idx += 7;
}
- /* D'58 .. D'62 */
+ /* D'58 .. D'63 */
memcpy(trau_bits + 19 * 8 + 1, fr->d_bits + d_idx, 6);
d_idx += 6;


To view, visit change 38129. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I051b0b70adffcc473dcbb42a555c19088973cc90
Gerrit-Change-Number: 38129
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon@freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-CC: pespin <pespin@sysmocom.de>