[FFmpeg-cvslog] AAC encoder: fix undefined behavior
Claudio Freire
git at videolan.org
Thu Mar 31 03:48:10 CEST 2016
ffmpeg | branch: master | Claudio Freire <klaussfreire at gmail.com> | Wed Mar 30 18:34:08 2016 -0300| [be746ae4706302a100cc9e53f93fa6167215a674] | committer: Claudio Freire
AAC encoder: fix undefined behavior
Fix uninitialized access of minsf in short windows
Fix potential invocation of coef2minsf(0)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=be746ae4706302a100cc9e53f93fa6167215a674
---
libavcodec/aaccoder_twoloop.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavcodec/aaccoder_twoloop.h b/libavcodec/aaccoder_twoloop.h
index 4747c79..41d3ffd 100644
--- a/libavcodec/aaccoder_twoloop.h
+++ b/libavcodec/aaccoder_twoloop.h
@@ -300,8 +300,12 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
start = w*128;
for (g = 0; g < sce->ics.num_swb; g++) {
const float *scaled = s->scoefs + start;
+ int minsfidx;
maxvals[w*16+g] = find_max_val(sce->ics.group_len[w], sce->ics.swb_sizes[g], scaled);
- minsf[w*16+g] = coef2minsf(maxvals[w*16+g]);
+ if (maxvals[w*16+g] > 0)
+ minsfidx = coef2minsf(maxvals[w*16+g]);
+ for (w2 = 0; w2 < sce->ics.group_len[w]; w2++)
+ minsf[(w+w2)*16+g] = minsfidx;
start += sce->ics.swb_sizes[g];
}
}
More information about the ffmpeg-cvslog
mailing list