Further speed up Windows freewheel export

This commit is contained in:
Robin Gareus 2023-06-05 01:42:24 +02:00
parent c24b456211
commit e938d4936f
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 10 additions and 1 deletions

View File

@ -75,6 +75,7 @@ PortAudioBackend::PortAudioBackend (AudioEngine& e, AudioBackendInfo& info)
, _freewheel_ack (false)
, _reinit_thread_callback (false)
, _measure_latency (false)
, _freewheel_processed (0)
, _cycle_count(0)
, _total_deviation_us(0)
, _max_deviation_us(0)
@ -949,6 +950,7 @@ PortAudioBackend::freewheel_process_thread()
// tell the engine we're ready to GO.
engine.freewheel_callback (_freewheeling);
first_run = false;
_freewheel_processed = 0;
_main_thread = pthread_self();
AudioEngine::thread_init_callback (this);
_midiio->set_enabled(false);
@ -1487,6 +1489,8 @@ PortAudioBackend::blocking_process_thread ()
engine.freewheel_callback (_freewheel);
if (!_freewheel) {
_dsp_calc.reset ();
} else {
_freewheel_processed = 0;
}
}
@ -1663,7 +1667,11 @@ PortAudioBackend::blocking_process_freewheel()
}
_dsp_load = 1.0;
Glib::usleep(100); // don't hog cpu
_freewheel_processed += _samples_per_period;
if (_freewheel_processed > _samplerate) {
_freewheel_processed = 0;
Glib::usleep(100); // don't hog cpu
}
return true;
}

View File

@ -298,6 +298,7 @@ class PortAudioBackend : public AudioBackend, public PortEngineSharedImpl {
bool _freewheel_ack;
bool _reinit_thread_callback;
bool _measure_latency;
int _freewheel_processed;
ARDOUR::DSPLoadCalculator _dsp_calc;