1
0
Эх сурвалжийг харах

audio: removed conditional from simple resampler's inner loop.

We never seem to overflow the source buffer now; this might have been a
leftover from a bug that was covered by Vitaly's fixes?

Removing this conditional makes the resampler 10-20% faster. Left an
assert in there for debug builds, in case this still happens.
Ryan C. Gordon 8 жил өмнө
parent
commit
83454c821f

+ 3 - 2
src/audio/SDL_audiocvt.c

@@ -209,9 +209,10 @@ SDL_ResampleAudioSimple(const int chans, const double rate_incr,
     SDL_assert((dest_samples * framelen) <= outbuflen);
     SDL_assert((inbuflen % framelen) == 0);
 
-    while(dst < target) {
+    while (dst < target) {
         const int pos = ((int)idx) * chans;
-        const float *src = &inbuf[(pos >= finalpos) ? finalpos : pos];
+        const float *src = &inbuf[pos];
+        SDL_assert(pos <= finalpos);
         for (i = 0; i < chans; i++) {
             const float val = *(src++);
             *(dst++) = (val + last_sample[i]) * 0.5f;