diff options
author | Harald Welte <laforge@gnumonks.org> | 2012-04-18 20:03:18 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2012-04-18 20:03:18 +0200 |
commit | b34faf6f8ceedcafdb10523a39fe2bcd3d7c1faf (patch) | |
tree | f136850bee9e768d931086a3adbedd7d07e674e5 /src/osmo-bts-sysmo/oml.c | |
parent | bc74b7f432811c1f4acb3d18827d4fa8673527f6 (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.c | 22 |
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); |