[S] Change in libosmo-abis[master]: trau_frame: fix de/encoding of TRAU-AMR-8k-6k7 format
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/41478?usp=email ) Change subject: trau_frame: fix de/encoding of TRAU-AMR-8k-6k7 format ...................................................................... trau_frame: fix de/encoding of TRAU-AMR-8k-6k7 format There exist 3 TRAU frame types (distinguished by sync pattern) for AMR on 8 kbit/s subslots: Low, 6k7 and 7k4. osmo_trau_frame_encode() and osmo_trau_frame_decode_8k() APIs support all 3 TRAU-AMR-8k frame types since the original 2020 implementation - however, encoding and decoding of 6k7 format was incorrect. Fix it. Correctness of the new implementation is verified by unit tests added with the next patch in this series. Change-Id: Ibb98b0c189ced5248dca217384ca34b6a5f8b210 --- M src/trau/trau_frame.c 1 file changed, 11 insertions(+), 11 deletions(-) Approvals: pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/trau/trau_frame.c b/src/trau/trau_frame.c index 896bc20..d8541c5 100644 --- a/src/trau/trau_frame.c +++ b/src/trau/trau_frame.c @@ -1045,15 +1045,15 @@ /* D8 .. D11 */ memcpy(fr->d_bits + d_idx, trau_bits + 2 * 8 + 4, 4); d_idx += 4; - /* D12 .. D39 */ - for (i = 3; i < 7; i++) { + /* D12 .. D32 */ + for (i = 3; i < 6; i++) { int offset = i * 8; - memcpy(fr->d_bits + d_idx, trau_bits + offset + 2, 7); + memcpy(fr->d_bits + d_idx, trau_bits + offset + 1, 7); d_idx += 7; } - /* D40 .. D137 */ - for (i = 7; i < 20; i+= 2) { + /* D33 .. D137 */ + for (i = 6; i < 20; i += 2) { int offset = i * 8; memcpy(fr->d_bits + d_idx, trau_bits + offset + 1, 15); d_idx += 15; @@ -1074,7 +1074,7 @@ trau_bits[3 * 8] = 1; trau_bits[4 * 8] = 1; trau_bits[5 * 8] = 0; - for (i = 5; i < 20; i += 2) + for (i = 6; i < 20; i += 2) trau_bits[i * 8] = 1; /* D1 .. D7 */ @@ -1085,15 +1085,15 @@ /* D8 .. D11 */ memcpy(trau_bits + 2 * 8 + 4, fr->d_bits + d_idx, 4); d_idx += 4; - /* D12 .. D39 */ - for (i = 3; i < 7; i++) { + /* D12 .. D32 */ + for (i = 3; i < 6; i++) { int offset = i * 8; - memcpy(trau_bits + offset + 2, fr->d_bits + d_idx, 7); + memcpy(trau_bits + offset + 1, fr->d_bits + d_idx, 7); d_idx += 7; } - /* D40 .. D137 */ - for (i = 7; i < 20; i+= 2) { + /* D33 .. D137 */ + for (i = 6; i < 20; i += 2) { int offset = i * 8; memcpy(trau_bits + offset + 1, fr->d_bits + d_idx, 15); d_idx += 15; -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/41478?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ibb98b0c189ced5248dca217384ca34b6a5f8b210 Gerrit-Change-Number: 41478 Gerrit-PatchSet: 1 Gerrit-Owner: falconia <falcon@freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: pespin <pespin@sysmocom.de>
participants (1)
-
laforge