std::size_t in_length,
std::size_t out_length)
{
- std::size_t out_done = 0;
+ std::size_t in_done = 0;
+ std::size_t out_done = 0;
+ const unsigned int number_of_channels = 1;
+ const soxr_io_spec_t io_spec = soxr_io_spec(SOXR_INT16_S, SOXR_INT16_S);
+ const soxr_quality_spec_t quality_spec = soxr_quality_spec(
+ SOXR_QQ, SOXR_NO_DITHER);
+ const soxr_runtime_spec_t runtime_spec = soxr_runtime_spec(1);
/// The "Gibbs effect" may be seen because I don't save data from the
/// previous block. Fix this by making the resampler a class,
const soxr_error_t error = soxr_oneshot(
in_rate,
out_rate,
- 1, // Number of channels.
+ number_of_channels, // Number of channels.
in,
in_length,
- NULL,
+ &in_done,
out,
out_length,
&out_done,
- NULL,
- NULL,
- NULL);
+ io_spec,
+ quality_spec,
+ runtime_spec);
}
};
#endif