From 6a26e2894e45b59a61d50e6bd5a6542240010b78 Mon Sep 17 00:00:00 2001 From: 1shanAwasthi Date: Mon, 8 Jun 2026 12:34:00 +0530 Subject: [PATCH] Fix : overflow in ixheaace_write_audio_preroll_data in encoder --- encoder/drc_src/impd_drc_gain_calculator.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/encoder/drc_src/impd_drc_gain_calculator.c b/encoder/drc_src/impd_drc_gain_calculator.c index 5a1305ad..799c27da 100644 --- a/encoder/drc_src/impd_drc_gain_calculator.c +++ b/encoder/drc_src/impd_drc_gain_calculator.c @@ -235,14 +235,16 @@ IA_ERRORCODE impd_drc_td_drc_gain_calc_init(ia_drc_gain_enc_struct *pstr_drc_gai pstr_chan_param = &pstr_drc_compand->str_channel_param; if (pstr_chan_param->attack < 1.0 / pstr_drc_gain_enc->sample_rate) { - pstr_chan_param->attack = 1.0; + // Decreasing the upper limit of alphaAttack from 1 -> 1 - EPSILON to avoid DRC payload overflow. + pstr_chan_param->attack = 1.0 - FLT_EPSILON; } else { pstr_chan_param->attack = 1.0 - exp(-1.0 / (pstr_drc_gain_enc->sample_rate * pstr_chan_param->attack)); } if (pstr_chan_param->decay < 1.0 / pstr_drc_gain_enc->sample_rate) { - pstr_chan_param->decay = 1.0; + // Decreasing the upper limit of alphaDecay from 1 -> 1 - EPSILON to avoid DRC payload overflow. + pstr_chan_param->decay = 1.0 - FLT_EPSILON; } else { pstr_chan_param->decay = 1.0 - exp(-1.0 / (pstr_drc_gain_enc->sample_rate * pstr_chan_param->decay));