mpegaudio: avoid unnecessary copy in high-precision mode
Originally committed as revision 18745 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
adb206c238
commit
bf030c887f
@ -846,31 +846,31 @@ void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset,
|
||||
OUT_INT *samples, int incr,
|
||||
int32_t sb_samples[SBLIMIT])
|
||||
{
|
||||
int32_t tmp[32];
|
||||
register MPA_INT *synth_buf;
|
||||
register const MPA_INT *w, *w2, *p;
|
||||
int j, offset, v;
|
||||
int j, offset;
|
||||
OUT_INT *samples2;
|
||||
#if FRAC_BITS <= 15
|
||||
int32_t tmp[32];
|
||||
int sum, sum2;
|
||||
#else
|
||||
int64_t sum, sum2;
|
||||
#endif
|
||||
|
||||
dct32(tmp, sb_samples);
|
||||
|
||||
offset = *synth_buf_offset;
|
||||
synth_buf = synth_buf_ptr + offset;
|
||||
|
||||
for(j=0;j<32;j++) {
|
||||
v = tmp[j];
|
||||
#if FRAC_BITS <= 15
|
||||
dct32(tmp, sb_samples);
|
||||
for(j=0;j<32;j++) {
|
||||
/* NOTE: can cause a loss in precision if very high amplitude
|
||||
sound */
|
||||
v = av_clip_int16(v);
|
||||
#endif
|
||||
synth_buf[j] = v;
|
||||
synth_buf[j] = av_clip_int16(tmp[j]);
|
||||
}
|
||||
#else
|
||||
dct32(synth_buf, sb_samples);
|
||||
#endif
|
||||
|
||||
/* copy to avoid wrap */
|
||||
memcpy(synth_buf + 512, synth_buf, 32 * sizeof(MPA_INT));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user