From ecabfc7f9a71b8ec17e1a0253d3811c08fbdcbce Mon Sep 17 00:00:00 2001 From: Dragos Oancea Date: Wed, 19 Aug 2015 14:29:19 -0400 Subject: [PATCH] FS-8005: mod_opus : fix for rare decoder error when doing PLC, OPUS_GET_LAST_PACKET_DURATION might return 0 --- src/mod/codecs/mod_opus/mod_opus.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mod/codecs/mod_opus/mod_opus.c b/src/mod/codecs/mod_opus/mod_opus.c index 9a3469b6ff..bac1f9d54e 100644 --- a/src/mod/codecs/mod_opus/mod_opus.c +++ b/src/mod/codecs/mod_opus/mod_opus.c @@ -571,6 +571,9 @@ static switch_status_t switch_opus_decode(switch_codec_t *codec, plc = 1; encoded_data = NULL; opus_decoder_ctl(context->decoder_object, OPUS_GET_LAST_PACKET_DURATION(&frame_size)); + if (!frame_size) { + frame_size = frame_samples - (frame_samples % (codec->implementation->actual_samples_per_second / 400)); + } if (context->codec_settings.useinbandfec) { fec = 1;