aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/oml.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-04-18 20:03:18 +0200
committerHarald Welte <laforge@gnumonks.org>2012-04-18 20:03:18 +0200
commitb34faf6f8ceedcafdb10523a39fe2bcd3d7c1faf (patch)
treef136850bee9e768d931086a3adbedd7d07e674e5 /src/osmo-bts-sysmo/oml.c
parentbc74b7f432811c1f4acb3d18827d4fa8673527f6 (diff)
TCH: Add support for the L1 RTP mode
In L1 RTP mode, the L1 already does all the bit-shifting and re-ordering required for the RTP formats (which have different bit/nibble order than the ETSI/3GPP encodings, for some odd reason). We don't enable it by default yet, as only HR/FR/EFR work with it, but AMR has some yet to be debugged problem. Enabling USE_L1_RTP_MODE would save some CPU cycles on the ARM side.
Diffstat (limited to 'src/osmo-bts-sysmo/oml.c')
-rw-r--r--src/osmo-bts-sysmo/oml.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index 9bbd1234..9fd7826d 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -517,15 +517,35 @@ static void lchan2lch_par(GsmL1_LogChParam_t *lch_par, struct gsm_lchan *lchan)
break;
case GSM48_CMODE_SPEECH_V1:
lch_par->tch.tchPlType = GsmL1_TchPlType_Fr;
+#ifdef L1_HAS_RTP_MODE
+#ifdef USE_L1_RTP_MODE
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp;
+#else
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_If2;
+#endif /* USE_L1_RTP_MODE */
+#endif /* L1_HAS_RTP_MODE */
clear_amr_params(lch_par);
break;
case GSM48_CMODE_SPEECH_EFR:
lch_par->tch.tchPlType = GsmL1_TchPlType_Efr;
+#ifdef L1_HAS_RTP_MODE
+#ifdef USE_L1_RTP_MODE
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp;
+#else
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_If2;
+#endif /* USE_L1_RTP_MODE */
+#endif /* L1_HAS_RTP_MODE */
clear_amr_params(lch_par);
break;
case GSM48_CMODE_SPEECH_AMR:
lch_par->tch.tchPlType = GsmL1_TchPlType_Amr;
-
+#ifdef L1_HAS_RTP_MODE
+#ifdef USE_L1_RTP_MODE
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_Rtp;
+#else
+ lch_par->tch.tchPlFmt = GsmL1_TchPlFmt_If2;
+#endif /* USE_L1_RTP_MODE */
+#endif /* L1_HAS_RTP_MODE */
lch_par->tch.amrCmiPhase = GsmL1_AmrCmiPhase_Odd; /* FIXME? */
lch_par->tch.amrInitCodecMode = amr_get_initial_mode(lchan);