mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
dummy: ignore first cycle timing.
This commit is contained in:
parent
e418b0866e
commit
2f432c3be7
1 changed files with 10 additions and 10 deletions
|
|
@ -1174,7 +1174,7 @@ DummyAudioBackend::main_process_thread ()
|
||||||
manager.graph_order_callback();
|
manager.graph_order_callback();
|
||||||
|
|
||||||
int64_t clock1, clock2;
|
int64_t clock1, clock2;
|
||||||
clock1 = _x_get_monotonic_usec();
|
clock1 = -1;
|
||||||
while (_running) {
|
while (_running) {
|
||||||
|
|
||||||
if (_freewheeling != _freewheel) {
|
if (_freewheeling != _freewheel) {
|
||||||
|
|
@ -1226,8 +1226,8 @@ DummyAudioBackend::main_process_thread ()
|
||||||
if (!_freewheel) {
|
if (!_freewheel) {
|
||||||
const int64_t nominal_time = 1e6 * _samples_per_period / _samplerate;
|
const int64_t nominal_time = 1e6 * _samples_per_period / _samplerate;
|
||||||
clock2 = _x_get_monotonic_usec();
|
clock2 = _x_get_monotonic_usec();
|
||||||
#ifdef PLATFORM_WINDOWS
|
bool timers_ok = true;
|
||||||
bool win_timers_ok = true;
|
|
||||||
/* querying the performance counter can fail occasionally (-1).
|
/* querying the performance counter can fail occasionally (-1).
|
||||||
* Also on some multi-core systems, timers are CPU specific and not
|
* Also on some multi-core systems, timers are CPU specific and not
|
||||||
* synchronized. We assume they differ more than a few milliseconds
|
* synchronized. We assume they differ more than a few milliseconds
|
||||||
|
|
@ -1235,14 +1235,14 @@ DummyAudioBackend::main_process_thread ()
|
||||||
* execution switches cores.
|
* execution switches cores.
|
||||||
*/
|
*/
|
||||||
if (clock1 < 0 || clock2 < 0 || (clock1 > clock2) || (clock2 - clock1) > 4 * nominal_time) {
|
if (clock1 < 0 || clock2 < 0 || (clock1 > clock2) || (clock2 - clock1) > 4 * nominal_time) {
|
||||||
clock2 = clock1 = 0;
|
clock1 = 0;
|
||||||
win_timers_ok = false;
|
clock2 = nominal_time;
|
||||||
|
timers_ok = false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
const int64_t elapsed_time = clock2 - clock1;
|
const int64_t elapsed_time = clock2 - clock1;
|
||||||
#ifdef PLATFORM_WINDOWS
|
|
||||||
if (win_timers_ok)
|
if (timers_ok)
|
||||||
#endif
|
|
||||||
{ // low pass filter
|
{ // low pass filter
|
||||||
const float load = elapsed_time / (float) nominal_time;
|
const float load = elapsed_time / (float) nominal_time;
|
||||||
if (load > _dsp_load) {
|
if (load > _dsp_load) {
|
||||||
|
|
@ -1263,7 +1263,7 @@ DummyAudioBackend::main_process_thread ()
|
||||||
Glib::usleep (100); // don't hog cpu
|
Glib::usleep (100); // don't hog cpu
|
||||||
}
|
}
|
||||||
|
|
||||||
/* beginning of netx cycle */
|
/* beginning of next cycle */
|
||||||
clock1 = _x_get_monotonic_usec();
|
clock1 = _x_get_monotonic_usec();
|
||||||
|
|
||||||
bool connections_changed = false;
|
bool connections_changed = false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue