Skip to content

Commit 141dfbb

Browse files
committed
perf: prereserve some audio buffers
1 parent dc29b2f commit 141dfbb

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/plugins/score-plugin-engine/Execution/DocumentPlugin.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,20 @@ void DocumentPlugin::reload(bool forcePlay, Scenario::IntervalModel& cst)
318318
}
319319

320320
m_tid = startTimer(32);
321+
322+
auto& audio_buffers = ossia::audio_buffer_pool::instance();
323+
std::vector<ossia::audio_channel> temp_vectors;
324+
temp_vectors.resize(audio_buffers.buffers.size_approx());
325+
audio_buffers.buffers.try_dequeue_bulk(
326+
temp_vectors.begin(), audio_buffers.buffers.size_approx());
327+
const auto bs = m_context.app.settings<Audio::Settings::Model>().getBufferSize();
328+
if(temp_vectors.size() < 100)
329+
temp_vectors.resize(100);
330+
for(auto& vec : temp_vectors)
331+
vec.reserve(bs + 16);
332+
audio_buffers.buffers.enqueue_bulk(
333+
std::make_move_iterator(temp_vectors.begin()), temp_vectors.size());
334+
321335
// runAllCommands();
322336
}
323337

0 commit comments

Comments
 (0)