*/
static void resample_prepare_input(const struct resampler *rs,
const uint8_t *bytes,
- size_t nbytes,
+ size_t nframes,
float *floats) {
- size_t nframes = nbytes / (rs->input_bytes_per_frame);
-
while(nframes > 0) {
int n;
float *input = xcalloc(nframesin * rs->output_channels, sizeof (float));
float *output = 0;
- resample_prepare_input(rs, bytes, nbytes, input);
+ resample_prepare_input(rs, bytes, nframesin, input);
#if HAVE_SAMPLERATE_H
if(rs->state) {
/* A sample-rate conversion must be performed */
data.input_frames = nframesin;
data.output_frames = maxframesout;
data.end_of_input = eof;
- data.src_ratio = rs->output_rate / rs->input_rate;
+ data.src_ratio = (double)rs->output_rate / rs->input_rate;
int error_ = src_process(rs->state, &data);
if(error_)
disorder_fatal(0, "calling src_process: %s", src_strerror(error_));
xfree(input);
eof = 0; /* quieten compiler */
/* Report how many input bytes were actually consumed */
+ //fprintf(stderr, "converted %zu frames\n", nframesin);
return nframesin * rs->input_bytes_per_frame;
}