13
0

Fix export with RegionFX

Effect processing requires session event pool, and
thread local disk reader working buffers.
This commit is contained in:
Robin Gareus 2024-08-19 02:57:03 +02:00
parent 409a5ee2ea
commit fdf5b0f8a1
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 8 additions and 0 deletions

View File

@ -32,6 +32,7 @@
#include "ardour/audiofile_tagger.h"
#include "ardour/audio_port.h"
#include "ardour/debug.h"
#include "ardour/disk_reader.h"
#include "ardour/export_graph_builder.h"
#include "ardour/export_handler.h"
#include "ardour/export_timespan.h"
@ -380,7 +381,10 @@ ExportHandler::start_timespan_bg (void* eh)
ExportHandler* self = static_cast<ExportHandler*> (eh);
self->process_connection.disconnect ();
Glib::Threads::Mutex::Lock l (self->export_status->lock());
SessionEvent::create_per_thread_pool (name, 512);
DiskReader::allocate_working_buffers ();
self->start_timespan ();
DiskReader::free_working_buffers ();
return 0;
}

View File

@ -173,6 +173,8 @@ Session::start_audio_export (samplepos_t position, bool realtime, bool region_ex
/* get everyone to the right position */
std::shared_ptr<RouteList const> rl = routes.reader();
ARDOUR::ProcessThread* pt = new ProcessThread ();
pt->get_buffers ();
for (auto const& i : *rl) {
std::shared_ptr<Track> tr = std::dynamic_pointer_cast<Track> (i);
@ -182,6 +184,8 @@ Session::start_audio_export (samplepos_t position, bool realtime, bool region_ex
return -1;
}
}
pt->drop_buffers ();
delete pt;
}
/* we just did the core part of a locate call above, but