summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-03-06 05:51:01 +0100
committerRobin Gareus <robin@gareus.org>2020-03-06 05:52:55 +0100
commit140a3f4a1091728d29fbd56d07bdbb652937d621 (patch)
tree8a2821d3231cd841f624845432fd5e515a1b3eec /libs
parent4674dd85343845b90914439fe049a67102980ad9 (diff)
Fix Coreaudio buffersize changes
Diffstat (limited to 'libs')
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc
index 5d5f20844d..c7d2754b2d 100644
--- a/libs/backends/coreaudio/coreaudio_backend.cc
+++ b/libs/backends/coreaudio/coreaudio_backend.cc
@@ -332,15 +332,17 @@ CoreAudioBackend::set_buffer_size (uint32_t bs)
if (bs <= 0 || bs >= _max_buffer_size) {
return -1;
}
- _samples_per_period = bs;
+ if (!_run) {
+ _samples_per_period = bs;
+ engine.buffer_size_change (bs);
+ }
_pcmio->set_samples_per_period(bs);
if (_run) {
- pbd_mach_set_realtime_policy (_main_thread, 1e9 * _samples_per_period / _samplerate);
+ pbd_mach_set_realtime_policy (_main_thread, 1e9 * bs / _samplerate);
}
for (std::vector<pthread_t>::const_iterator i = _threads.begin (); i != _threads.end (); ++i) {
- pbd_mach_set_realtime_policy (*i, 1e9 * _samples_per_period / _samplerate);
+ pbd_mach_set_realtime_policy (*i, 1e9 * bs / _samplerate);
}
- //engine.buffer_size_change (bs);
return 0;
}