aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMychaela N. Falconia <falcon@freecalypso.org>2023-03-29 22:03:26 +0000
committerlaforge <laforge@osmocom.org>2023-03-30 17:30:53 +0000
commit50710f4e8ed463c821651b5fbe82f861e19e6295 (patch)
treef4e2f6bcf7affff9130ab4596687789e924e830f
parentacf0f0f0bb715b795c5bc5de6ddf2aa62458af10 (diff)
rtp continuous-streaming: fix BFI in the quality-suppressed case
The check for (tch_ind->lqual_cb >= bts->min_qual_norm) in l1sap_tch_ind() has the intent of suppressing valid-seeming speech frame output from lower layers when the link quality is too low; this check is particularly important for FR1 codec where the intrinsic validity check is only a 3-bit CRC which has 1/8 probability of indicating "correct" when decoding radio noise during DTXu silence. However, this check is effectively defeated in the current implementation of rtp continuous-streaming: the RTP packet being output is the presumed-bogus speech frame from lower layers, rather than the intended zero-length payload. Fix this bug. Related: OS#5975 Change-Id: Icee0f57be289a0592a0197469432a012d15f224c
-rw-r--r--src/common/l1sap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 89aea580..1f173dbb 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -1641,10 +1641,10 @@ static int l1sap_tch_ind(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap,
return 1;
}
} else {
- /* Are we in rtp continuous-stream special mode? If so, send
+ /* Are we in rtp continuous-streaming special mode? If so, send
* out a BFI packet as zero-length RTP payload. */
if (bts->rtp_nogaps_mode) {
- send_ul_rtp_packet(lchan, fn, msg->data, msg->len);
+ send_ul_rtp_packet(lchan, fn, NULL, 0);
} else {
DEBUGPGT(DRTP, &g_time, "Skipping RTP frame with lost payload (chan_nr=0x%02x)\n",
chan_nr);