diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 03692ec338a4e70d0531312f859d872454d01179..b6424d6116c49087a70e5a00a4cfd30dd6ae84cd 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -1691,6 +1691,10 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ ec_enc_shrink(&enc, nb_compr_bytes); } +#ifndef FIXED_POINT + if (redundancy || st->mode != MODE_SILK_ONLY) + celt_encoder_ctl(celt_enc, CELT_SET_ANALYSIS(analysis_info)); +#endif /* 5 ms redundant frame for CELT->SILK */ if (redundancy && celt_to_silk) @@ -1724,9 +1728,6 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ /* If false, we already busted the budget and we'll end up with a "PLC packet" */ if (ec_tell(&enc) <= 8*nb_compr_bytes) { -#ifndef FIXED_POINT - celt_encoder_ctl(celt_enc, CELT_SET_ANALYSIS(analysis_info)); -#endif ret = celt_encode_with_ec(celt_enc, pcm_buf, frame_size, NULL, nb_compr_bytes, &enc); if (ret < 0) {