From 2f914e37fa663737fccc2ba4fe7cf17d2918ab9f Mon Sep 17 00:00:00 2001 From: Dragos Oancea Date: Thu, 27 Jul 2017 16:59:16 +0100 Subject: [PATCH] FS-10551: [mod_opus] added FEC bitrates map for opus@16000h (for the "keep-fec-enabled" setting) --- src/mod/codecs/mod_opus/mod_opus.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/mod/codecs/mod_opus/mod_opus.c b/src/mod/codecs/mod_opus/mod_opus.c index 07699cc50d..b06d8fa188 100644 --- a/src/mod/codecs/mod_opus/mod_opus.c +++ b/src/mod/codecs/mod_opus/mod_opus.c @@ -437,7 +437,7 @@ static switch_bool_t switch_opus_has_fec(const uint8_t* payload,int payload_leng * at the beginning of the call. */ static int switch_opus_get_fec_bitrate(int fs, int loss) { - int threshold_bitrates[25] = { + int threshold_bitrates_8k[25] = { 15600,15200,15200,15200,14800, 14800,14800,14800,14400,14400, 14400,14000,14000,14000,13600, @@ -445,15 +445,29 @@ static int switch_opus_get_fec_bitrate(int fs, int loss) 13200,12800,12800,12800,12400 }; + int threshold_bitrates_16k[25] = { + 20400, 20400, 20000, 20000, 19600, + 19600, 19600, 19200, 19200, 18800, + 18800, 18800, 18400, 18400, 18000, + 18000, 18000, 17600, 17600, 17200, + 17200, 17200, 16800, 16800, 16400 + }; + if (loss <= 0){ return SWITCH_STATUS_FALSE; } if (fs == 8000) { if (loss >=25) { - return threshold_bitrates[24]; + return threshold_bitrates_8k[24]; } else { - return threshold_bitrates[loss-1]; + return threshold_bitrates_8k[loss-1]; + } + } else if (fs == 16000) { + if (loss >=25) { + return threshold_bitrates_16k[24]; + } else { + return threshold_bitrates_16k[loss-1]; } }