Fix audio resampling in some cases.

Fixes Bugzilla #2389.
This commit is contained in:
Ryan C. Gordon 2014-06-10 19:37:59 -04:00
parent 78d40e0901
commit 91b7fb00d0

View File

@ -383,6 +383,7 @@ sub buildArbitraryResampleFunc {
my $eps_adjust = ($upsample) ? 'dstsize' : 'srcsize'; my $eps_adjust = ($upsample) ? 'dstsize' : 'srcsize';
my $incr = ''; my $incr = '';
my $incr2 = ''; my $incr2 = '';
my $block_align = $channels * $fsize/8;
# !!! FIXME: DEBUG_CONVERT should report frequencies. # !!! FIXME: DEBUG_CONVERT should report frequencies.
@ -395,7 +396,7 @@ ${sym}(SDL_AudioCVT * cvt, SDL_AudioFormat format)
#endif #endif
const int srcsize = cvt->len_cvt - $fudge; const int srcsize = cvt->len_cvt - $fudge;
const int dstsize = (int) (((double)cvt->len_cvt) * cvt->rate_incr); const int dstsize = (int) (((double)(cvt->len_cvt/${block_align})) * cvt->rate_incr) * ${block_align};
register int eps = 0; register int eps = 0;
EOF EOF