diff options
author | Martin Storsjo <martin@martin.st> | 2012-02-19 21:45:12 +0200 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2012-02-19 21:47:50 +0200 |
commit | 01e29ede19cd7d85bfef38896de8e71e569cd211 (patch) | |
tree | fab8d4b927debeadc6e65e60e78f68bedd77af0f /media/libstagefright/codecs | |
parent | 013b73bfc4d5fb21082ccccf45fa08c18f86aa08 (diff) | |
download | frameworks_av-01e29ede19cd7d85bfef38896de8e71e569cd211.zip frameworks_av-01e29ede19cd7d85bfef38896de8e71e569cd211.tar.gz frameworks_av-01e29ede19cd7d85bfef38896de8e71e569cd211.tar.bz2 |
stagefright aacenc: Avoid a division by zero
In rare cases, the result of normFactor * (*psfbNActiveLines)
could be zero, leading to a division by zero in pow2_xy.
In these cases, normFactor was INT_MIN, and if *psfbNActiveLines
was 2, the product was zero.
normFactor being INT_MIN is a bug in itself though.
Change-Id: Ib31bf02889615a7be3bd1bc028da8a7651a8dbee
Diffstat (limited to 'media/libstagefright/codecs')
-rw-r--r-- | media/libstagefright/codecs/aacenc/src/adj_thr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/aacenc/src/adj_thr.c b/media/libstagefright/codecs/aacenc/src/adj_thr.c index a8ab809..54fb19d 100644 --- a/media/libstagefright/codecs/aacenc/src/adj_thr.c +++ b/media/libstagefright/codecs/aacenc/src/adj_thr.c @@ -465,7 +465,7 @@ static void correctThresh(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS], deltaSfbPe = *psfbPeFactors * deltaPe; /* thr3(n) = thr2(n)*2^deltaSfbPe/b(n) */ - if (*psfbNActiveLines > 0) { + if (*psfbNActiveLines > 0 && (normFactor* (*psfbNActiveLines)) != 0) { /* new threshold */ Word32 thrFactor; sfbEn = psyOutChan->sfbEnergy[sfbGrp+sfb]; |