const uint32_t ResampledImportableSource::blocksize = 16384U;
-ResampledImportableSource::ResampledImportableSource (boost::shared_ptr<ImportableSource> src, nframes_t rate, SrcQuality srcq)
+ResampledImportableSource::ResampledImportableSource (boost::shared_ptr<ImportableSource> src, framecnt_t rate, SrcQuality srcq)
: source (src)
, src_state (0)
{
input = new float[blocksize];
seek (0);
-
+
src_data.src_ratio = ((float) rate) / source->samplerate();
}
delete [] input;
}
-nframes_t
-ResampledImportableSource::read (Sample* output, nframes_t nframes)
+framecnt_t
+ResampledImportableSource::read (Sample* output, framecnt_t nframes)
{
int err;
/* The last read will not be a full buffer, so set end_of_input. */
- if ((nframes_t) src_data.input_frames < blocksize) {
+ if ((framecnt_t) src_data.input_frames < blocksize) {
src_data.end_of_input = true;
}
if (!src_data.end_of_input) {
src_data.output_frames = nframes / source->channels();
} else {
- src_data.output_frames = std::min ((nframes_t) src_data.input_frames, nframes / source->channels());
+ src_data.output_frames = std::min ((framecnt_t) src_data.input_frames, nframes / source->channels());
}
if ((err = src_process (src_state, &src_data))) {
}
void
-ResampledImportableSource::seek (nframes_t pos)
+ResampledImportableSource::seek (framepos_t pos)
{
source->seek (pos);
error << string_compose(_("Import: src_new() failed : %1"), src_strerror (err)) << endmsg ;
throw failed_constructor ();
}
-
+
src_data.input_frames = 0;
src_data.data_in = input;
src_data.end_of_input = 0;
}
-
+
framepos_t
ResampledImportableSource::natural_position () const
{