From 6ef378725f274ce60c7b0b42f8ff5f55df95d25d Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jmvalin@jmvalin.ca> Date: Thu, 27 Oct 2011 13:39:12 -0400 Subject: [PATCH] Making sure DTX for voice still works at high bit-rate --- src/opus_encoder.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 3c496cc40..1bdc0fe47 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -580,8 +580,12 @@ int opus_encode_float(OpusEncoder *st, const opus_val16 *pcm, int frame_size, st->mode = (equiv_rate >= threshold) ? MODE_CELT_ONLY: MODE_SILK_ONLY; + /* When FEC is enabled and there's enough packet loss, use SILK */ if (st->silk_mode.useInBandFEC && st->silk_mode.packetLossPercentage > (128-voice_est)>>4) st->mode = MODE_SILK_ONLY; + /* When encoding voice and DTX is enabled, set the encoder to SILK mode (at least for now) */ + if (st->silk_mode.useDTX && voice_est > 100) + st->mode = MODE_SILK_ONLY; #endif } else { st->mode = st->user_forced_mode; -- GitLab