[FFmpeg-cvslog] aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
Nathan Caldwell
git at videolan.org
Sun Jan 29 00:58:40 CET 2012
ffmpeg | branch: master | Nathan Caldwell <saintdev at gmail.com> | Fri Jan 27 22:23:40 2012 -0700| [dc7e7d4dd96eebd430e7bfa847b751add0e126ab] | committer: Anton Khirnov
aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
10l: Forgot to adjust deinterleave for new location of incoming samples in 7946a5a.
This produced incorrect, but surprisingly listenable results.
Thanks to Justin Ruggles for the report.
Signed-off-by: Anton Khirnov <anton at khirnov.net>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dc7e7d4dd96eebd430e7bfa847b751add0e126ab
---
libavcodec/aacenc.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index d7a6d5a..765f9a7 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -487,10 +487,10 @@ static void deinterleave_input_samples(AACEncContext *s,
const float *sptr = samples + channel_map[ch];
/* copy last 1024 samples of previous frame to the start of the current frame */
- memcpy(&s->planar_samples[ch][0], &s->planar_samples[ch][1024], 1024 * sizeof(s->planar_samples[0][0]));
+ memcpy(&s->planar_samples[ch][1024], &s->planar_samples[ch][2048], 1024 * sizeof(s->planar_samples[0][0]));
/* deinterleave */
- for (i = 1024; i < 1024 * 2; i++) {
+ for (i = 2048; i < 3072; i++) {
s->planar_samples[ch][i] = *sptr;
sptr += sinc;
}
More information about the ffmpeg-cvslog
mailing list