You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
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@khirnov.net>
This commit is contained in:
committed by
Anton Khirnov
parent
91b3bfba88
commit
dc7e7d4dd9
@@ -487,10 +487,10 @@ static void deinterleave_input_samples(AACEncContext *s,
|
|||||||
const float *sptr = samples + channel_map[ch];
|
const float *sptr = samples + channel_map[ch];
|
||||||
|
|
||||||
/* copy last 1024 samples of previous frame to the start of the current frame */
|
/* 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 */
|
/* deinterleave */
|
||||||
for (i = 1024; i < 1024 * 2; i++) {
|
for (i = 2048; i < 3072; i++) {
|
||||||
s->planar_samples[ch][i] = *sptr;
|
s->planar_samples[ch][i] = *sptr;
|
||||||
sptr += sinc;
|
sptr += sinc;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user