ref: b778271d53928445964cfe801d7461e6db7a67fa
parent: 073bec9160f6c39fef22eb0442ab6999ce822ffb
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Sat Dec 16 08:01:20 EST 2023
divide max payload too
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -1617,8 +1617,9 @@
frame_to_celt = to_celt && i==nb_frames-1;
frame_redundancy = redundancy && (frame_to_celt || (!to_celt && i==0));
- curr_max = 3*st->bitrate_bps/(3*8*st->Fs/enc_frame_size);
+ curr_max = IMIN(3*st->bitrate_bps/(3*8*st->Fs/enc_frame_size), max_len_sum/nb_frames);
#ifdef ENABLE_DRED
+ curr_max = IMIN(curr_max, (max_len_sum-3*dred_bitrate_bps/(3*8*st->Fs/frame_size))/nb_frames);
if (first_frame) curr_max += 3*dred_bitrate_bps/(3*8*st->Fs/frame_size);
#endif
curr_max = IMIN(max_len_sum-tot_size, curr_max);
--
⑨