[FFmpeg-devel] [PATCH] aacsbr_fixed: prevent sbr gain from being zero

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sun Nov 13 22:29:11 EET 2016


It causes division by zero crashes.

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

diff --git a/libavcodec/aacsbr_fixed.c b/libavcodec/aacsbr_fixed.c
index b26314a..d2a7027 100644
--- a/libavcodec/aacsbr_fixed.c
+++ b/libavcodec/aacsbr_fixed.c
@@ -429,6 +429,10 @@ static void sbr_gain_calc(AACContext *ac, SpectralBandReplication *sbr,
                                                 av_add_sf(FLOAT_1, sbr->e_curr[e][m]),
                                                 av_add_sf(FLOAT_1, sbr->q_mapped[e][m]))));
                 }
+                if (sbr->gain[e][m].mant == 0) {
+                    sbr->gain[e][m] = FLOAT_1;
+                    sbr->gain[e][m].exp = MIN_EXP;
+                }
             }
             for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) {
                 sum[0] = av_add_sf(sum[0], sbr->e_origmapped[e][m]);
-- 
2.10.2


More information about the ffmpeg-devel mailing list