Fix export with RegionFX
Effect processing requires session event pool, and thread local disk reader working buffers.
This commit is contained in:
parent
409a5ee2ea
commit
fdf5b0f8a1
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user