aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-trx
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2021-08-26 14:35:50 +0200
committerlaforge <laforge@osmocom.org>2021-09-02 17:43:15 +0000
commitca41f091fc7bd055519dd3c77d2c4c1a60737d53 (patch)
tree9af1952637e4f8fd23ba802711b9bc30bfce2dba /src/osmo-bts-trx
parent8f37660fd619cfee705703fcf2f40348bf804a10 (diff)
sched_lchan_tch_x: do not use cmr as ft
CMR and FT are updated each time an AMR voice frame is received from the radio interface. The transmission phase decides whether the voice frame contains CMR or FT. The code follows the transmission phase and keeps ul_cmr and ul_ft up to date. In contrast to the AMR frames on the radio interface, an AMR RTP packet always contains the CMR and the FT value. When generating the RTP payloed, The present implementation uses the CMR in the position where the FT should be and the FT is ignored. This is not correct. Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Related: SYS#5549
Diffstat (limited to 'src/osmo-bts-trx')
-rw-r--r--src/osmo-bts-trx/sched_lchan_tchf.c2
-rw-r--r--src/osmo-bts-trx/sched_lchan_tchh.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c
index 8e6298c5..00efcf8a 100644
--- a/src/osmo-bts-trx/sched_lchan_tchf.c
+++ b/src/osmo-bts-trx/sched_lchan_tchf.c
@@ -186,7 +186,7 @@ int rx_tchf_fn(struct l1sched_ts *l1ts, const struct trx_ul_burst_ind *bi)
/* only good speech frames get rtp header */
if (rc != GSM_MACBLOCK_LEN && rc >= 4) {
if (chan_state->amr_last_dtx == AMR_OTHER) {
- ft = chan_state->codec[chan_state->ul_cmr];
+ ft = chan_state->codec[chan_state->ul_ft];
} else {
/* SID frames will always get Frame Type Index 8 (AMR_SID) */
ft = AMR_SID;
diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c
index bfebb664..94022041 100644
--- a/src/osmo-bts-trx/sched_lchan_tchh.c
+++ b/src/osmo-bts-trx/sched_lchan_tchh.c
@@ -210,7 +210,7 @@ int rx_tchh_fn(struct l1sched_ts *l1ts, const struct trx_ul_burst_ind *bi)
/* only good speech frames get rtp header */
if (rc != GSM_MACBLOCK_LEN && rc >= 4) {
if (chan_state->amr_last_dtx == AMR_OTHER) {
- ft = chan_state->codec[chan_state->ul_cmr];
+ ft = chan_state->codec[chan_state->ul_ft];
} else {
/* SID frames will always get Frame Type Index 8 (AMR_SID) */
ft = AMR_SID;