using namespace ARDOUR;
using namespace PBD;
-const uint32_t SrcFileSource::blocksize = 65536U; /* somewhat arbitrary */
+const uint32_t SrcFileSource::max_blocksize = 2097152U; /* see AudioDiskstream::_do_refill_with_alloc, max */
SrcFileSource::SrcFileSource (Session& s, boost::shared_ptr<AudioFileSource> src, SrcQuality srcq)
: Source(s, DataType::AUDIO, src->name(), Flag (src->flags() & ~(Writable|Removable|RemovableIfEmpty|RemoveAtDestroy)))
_ratio = s.nominal_frame_rate() / _source->sample_rate();
_src_data.src_ratio = _ratio;
- src_buffer_size = ceil((double)blocksize / _ratio) + 2;
+ src_buffer_size = ceil((double)max_blocksize / _ratio) + 2;
_src_buffer = new float[src_buffer_size];
int err;
delete [] _src_buffer;
}
+void
+SrcFileSource::close ()
+{
+ boost::shared_ptr<FileSource> fs = boost::dynamic_pointer_cast<FileSource> (_source);
+ if (fs) {
+ fs->close ();
+ }
+}
+
framecnt_t
SrcFileSource::read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const
{