falconia has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmo-abis/+/41744?usp=email )


Change subject: trau2rtp: rm defunct AMR WIP code
......................................................................

trau2rtp: rm defunct AMR WIP code

When the present TRAU<->RTP conversion module was initially introduced
in 2020, there was a WIP plan to eventually extend it to support AMR
in addition to FR/HR/EFR.  Defunct code for a beginning of trau2rtp
implementation for AMR has sat in trau_rtp_conv.c under '#if 0' all
these years - but it never became anything beyond dead code.  When
the time came to implement AMR TRAU support for real, the existing
TRAU<->RTP API from 2020 design turned out to be insufficient; the
AMR support that was merged just before 2025-12 major release takes
the form of an entirely new AMR TRAU frame interworking facility
with its own API.  As a result of these developments, the original
defunct AMR code from 2020 now only adds confusion - remove it.

Change-Id: Ieeee8eb6dbf9c753458a91e13f2bf22311936259
---
M src/trau/trau_rtp_conv.c
1 file changed, 0 insertions(+), 136 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/44/41744/1

diff --git a/src/trau/trau_rtp_conv.c b/src/trau/trau_rtp_conv.c
index 9b1dc58..56cc109 100644
--- a/src/trau/trau_rtp_conv.c
+++ b/src/trau/trau_rtp_conv.c
@@ -1121,142 +1121,6 @@
        return 0;
 }

-#if 0
-static inline memcpy_inc(uint8_t *out, const uint8_t *in, size_t len, unsigned 
int *idx)
-{
-       memcpy_inc(out, in, len);
-       *idx += len;
-}
-
-static int amr_speech_extract_sbits(ubit_t *s_bits, const struct 
osmo_trau_frame *tf,
-                                   enum osmo_amr_mode mode)
-{
-       unsigned int s_idx = 0;
-
-       switch (mode) {
-       case AMR_4_75:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 44, 67 - 44, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 67, 92 - 67, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 108 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 111, 132 - 111, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 135, 148 - 135, &s_idx);
-               break;
-       case AMR_5_15:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 46, 96 - 46, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 69, 92 - 69, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 114 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 117, 136 - 117, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 139, 158 - 139, &s_idx);
-               break;
-       case AMR_5_90:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 41, 67 - 41, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 67, 92 - 67, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 116 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 119, 144 - 119, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 147, 168 - 147, &s_idx);
-               break;
-       case AMR_6_70:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 37, 63 - 37, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 63, 92 - 63, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 120 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 123, 152 - 123, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 155, 180 - 155, &s_idx);
-               break;
-       case AMR_7_40:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 34, 60 - 34, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 60, 92 - 60, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 124 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 127, 159 - 127, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 162, 191 - 162, &s_idx);
-               break;
-       case AMR_7_95:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 31, 58 - 31, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 58, 92 - 58, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 127 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 130, 164 - 130, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 167, 199 - 167, &s_idx);
-               break;
-       case AMR_10_2:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 20, 46 - 20, &s_idx);   
/* D21..D46 */
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 46, 92 - 46, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 95, 138 - 95, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 141, 187 - 141, &s_idx);
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 190, 233 - 190, &s_idx);
-               break;
-       case AMR_12_2:
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 0, 38 - 0, &s_idx);     
/* D1..D38 */
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 38, 91 - 38, &s_idx);   
/* D39..D91 */
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 94, 144 - 94, &s_idx);  
/* D95..D144 */
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 147, 200 - 147, 
&s_idx);/* D148..D200 */
-               memcpy_inc(s_bits + s_idx, tf->d_bits + 203, 253 - 203, 
&s_idx);/* D204..D253 */
-               break;
-       }
-
-       return s_idx;
-}
-
-/* TS 48.060 Section 5.5.1.2.2 */
-static int trau2rtp_16(uint8_t *out, const struct osmo_trau_frame *tf, enum 
osmo_amr_mode last_cmi)
-{
-       enum osmo_amr_mode mode = last_cmi;
-       uint8_t frame_class = tf->c_bits[21] << 1 | tf->c_bits[20];
-       uint8_t cmr_cmi = tf->c_bits[23] << 2 | tf->c_bits[24] << 1 | 
tf->cb_bits[25];
-       uint8_t no_speech_cls;
-       uint8_t s_bits[242];
-       uint8_t d_bits[242];
-       unsigned int s_idx = 0;
-       ubit_t rif = FIXME;
-
-       if (tf->type != OSMO_TRAU16_FT_AMR)
-               return -EINVAL;
-
-       if (rif == 0)
-               mode = cmr_cmi;
-
-       switch (frame_class) {
-       case 0: // no speech
-               no_speech_cls = tf->d_bits[32] << 2 | tf->d_bits[33] << 1 | 
tf->d_bits[34];
-               cmi_abs = tf->d_bits[35] << 2 | tf->d_bits[36] < 1 || 
tf->d_bits[37];
-               cmr_abs = tf->d_bits[38] << 2 | tf->d_bits[39] < 1 || 
tf->d_bits[40];
-               switch (no_speech_cls) {
-               case 7: // sid first
-                       break;
-               case 6: // onset
-                       break;
-               case 5: // sid_update
-                       break;
-               case 4: // sid_bad
-                       break;
-               case 0: // no_data
-                       break;
-               }
-               break;
-       case 1: // speech bad
-               break;
-       case 2:
-       case 3:
-               /* Extract the s-bits from the TRAU frame */
-               amr_speech_extract_sbits(s_bits, tf, mode);
-               /* Convert the s-bits to d-bits */
-               osmo_amr_s_to_d(d_bits, s_bits, mode);
-               break;
-       }
-}
-
-int trau2rtp_amr(uint8_t *out, const struct osmo_trau_frame *tf, enum 
osmo_amr_mode last_cmi))
-{
-       switch (tf->type) {
-       case OSMO_TRAU16_FT_AMR:
-               return trau2rtp_16(out, tf, last_cmi);
-       case OSMO_TRAU8_AMR_LOW:
-       case OSMO_TRAU8_AMR_6k7:
-       case OSMO_TRAU8_AMR_7k4:
-       default:
-               return -EINVAL;
-       }
-}
-#endif
-
 /*
  * CSD support: converting TRAU frames of type 'data' to 64 kbit/s
  * like the RA part of TRAU, using RTP clearmode representation.

--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/41744?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Ieeee8eb6dbf9c753458a91e13f2bf22311936259
Gerrit-Change-Number: 41744
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <[email protected]>

Reply via email to