ref: bbe4dcc44373ec2842225022ebbda72bb40e4425
parent: 0886828eed7a293f556ad45a70d8d7ab04325c9d
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Wed Aug 9 14:25:16 EDT 2023
Don't allocate DRED bits if we don't have enough
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -570,6 +570,9 @@
bitrate_offset = st->silk_mode.useInBandFEC ? 18000 : 12000;
target_dred_bitrate = IMAX(0, (int)(dred_frac*(bitrate_bps-bitrate_offset)));
dred_bitrate = IMIN(target_dred_bitrate, max_dred_bitrate);
+ /* If we can't afford enough bits, don't bother with DRED at all. */
+ if (dred_bitrate <= (DRED_MIN_BYTES+DRED_EXPERIMENTAL_BYTES)*8*st->Fs/frame_size)
+ dred_bitrate = 0;
return dred_bitrate;
}
#endif
--
⑨