Resample when engine and session sample-rates mismatch
This commit is contained in:
parent
65317ef0e0
commit
79033d8ee5
@ -195,10 +195,11 @@ AudioEngine::sample_rate_change (pframes_t nframes)
|
||||
|
||||
if (_session) {
|
||||
_session->set_sample_rate (nframes);
|
||||
} else {
|
||||
Temporal::set_sample_rate (nframes);
|
||||
}
|
||||
|
||||
SampleRateChanged (nframes); /* EMIT SIGNAL */
|
||||
Temporal::set_sample_rate (nframes);
|
||||
|
||||
#ifdef SILENCE_AFTER_SECONDS
|
||||
_silence_countdown = nframes * SILENCE_AFTER_SECONDS;
|
||||
|
@ -2121,10 +2121,11 @@ Session::set_sample_rate (samplecnt_t frames_per_second)
|
||||
if (_base_sample_rate == 0) {
|
||||
_base_sample_rate = frames_per_second;
|
||||
}
|
||||
else if (_base_sample_rate != frames_per_second && frames_per_second != _nominal_sample_rate) {
|
||||
else if (_base_sample_rate != frames_per_second && frames_per_second != _nominal_sample_rate && _engine.running ()) {
|
||||
NotifyAboutSampleRateMismatch (_base_sample_rate, frames_per_second);
|
||||
}
|
||||
_nominal_sample_rate = frames_per_second;
|
||||
_nominal_sample_rate = _base_sample_rate;
|
||||
Temporal::set_sample_rate (_nominal_sample_rate);
|
||||
|
||||
sync_time_vars();
|
||||
|
||||
@ -6731,6 +6732,7 @@ void
|
||||
Session::initialize_latencies ()
|
||||
{
|
||||
block_processing ();
|
||||
Port::set_engine_ratio (_base_sample_rate, AudioEngine::instance()->sample_rate ());
|
||||
update_latency (false);
|
||||
update_latency (true);
|
||||
unblock_processing ();
|
||||
|
@ -1691,6 +1691,7 @@ Session::set_state (const XMLNode& node, int version)
|
||||
if (node.get_property (X_("sample-rate"), _base_sample_rate)) {
|
||||
|
||||
_nominal_sample_rate = _base_sample_rate;
|
||||
Temporal::set_sample_rate (_nominal_sample_rate);
|
||||
|
||||
while (!AudioEngine::instance()->running () || _base_sample_rate != AudioEngine::instance()->sample_rate ()) {
|
||||
boost::optional<int> r = AskAboutSampleRateMismatch (_base_sample_rate, _current_sample_rate);
|
||||
|
Loading…
Reference in New Issue
Block a user