@@ -576,10 +576,10 @@ static void audio_pcm_sw_resample_in(SWVoiceIn *sw,
}
}
-static size_t audio_pcm_sw_read(SWVoiceIn *sw, void *buf, size_t size)
+static size_t audio_pcm_sw_read(SWVoiceIn *sw, void *buf, size_t buf_len)
{
HWVoiceIn *hw = sw->hw;
- size_t samples, live, ret, swlim, total;
+ size_t live, frames_out_max, swlim, total_in, total_out;
live = hw->total_samples_captured - sw->total_hw_samples_acquired;
if (!live) {
@@ -590,20 +590,20 @@ static size_t audio_pcm_sw_read(SWVoiceIn *sw, void *buf, size_t size)
return 0;
}
- samples = size / sw->info.bytes_per_frame;
+ frames_out_max = buf_len / sw->info.bytes_per_frame;
swlim = (live * sw->ratio) >> 32;
- swlim = MIN (swlim, samples);
+ swlim = MIN(swlim, frames_out_max);
- audio_pcm_sw_resample_in(sw, live, swlim, &total, &ret);
+ audio_pcm_sw_resample_in(sw, live, swlim, &total_in, &total_out);
if (!hw->pcm_ops->volume_in) {
- mixeng_volume(sw->resample_buf.buffer, ret, &sw->vol);
+ mixeng_volume(sw->resample_buf.buffer, total_out, &sw->vol);
}
+ sw->clip(buf, sw->resample_buf.buffer, total_out);
- sw->clip(buf, sw->resample_buf.buffer, ret);
- sw->total_hw_samples_acquired += total;
- return ret * sw->info.bytes_per_frame;
+ sw->total_hw_samples_acquired += total_in;
+ return total_out * sw->info.bytes_per_frame;
}
/*