[FFmpeg-devel] [PATCH 1/3] aacsbr_fixed: avoid division by zero in sbr_gain_calc

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sun Nov 8 22:02:56 CET 2015


This fixes a SIGFPE crash in the aac_fixed decoder.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
---
 libavcodec/aacsbr_fixed.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/aacsbr_fixed.c b/libavcodec/aacsbr_fixed.c
index f942d74..efe40f2 100644
--- a/libavcodec/aacsbr_fixed.c
+++ b/libavcodec/aacsbr_fixed.c
@@ -434,8 +434,8 @@ static void sbr_gain_calc(AACContext *ac, SpectralBandReplication *sbr,
               gain_max = FLOAT_100000;
             for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) {
                 SoftFloat q_m_max = av_div_sf(
-                                        av_mul_sf(sbr->q_m[e][m], gain_max),
-                                        sbr->gain[e][m]);
+                                        av_add_sf(FLOAT_EPSILON, av_mul_sf(sbr->q_m[e][m], gain_max)),
+                                        av_add_sf(FLOAT_EPSILON, sbr->gain[e][m]));
                 if (av_gt_sf(sbr->q_m[e][m], q_m_max))
                   sbr->q_m[e][m] = q_m_max;
                 if (av_gt_sf(sbr->gain[e][m], gain_max))
-- 
2.6.2




More information about the ffmpeg-devel mailing list