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/audiofile_tagger.h"
|
||||||
#include "ardour/audio_port.h"
|
#include "ardour/audio_port.h"
|
||||||
#include "ardour/debug.h"
|
#include "ardour/debug.h"
|
||||||
|
#include "ardour/disk_reader.h"
|
||||||
#include "ardour/export_graph_builder.h"
|
#include "ardour/export_graph_builder.h"
|
||||||
#include "ardour/export_handler.h"
|
#include "ardour/export_handler.h"
|
||||||
#include "ardour/export_timespan.h"
|
#include "ardour/export_timespan.h"
|
||||||
@ -380,7 +381,10 @@ ExportHandler::start_timespan_bg (void* eh)
|
|||||||
ExportHandler* self = static_cast<ExportHandler*> (eh);
|
ExportHandler* self = static_cast<ExportHandler*> (eh);
|
||||||
self->process_connection.disconnect ();
|
self->process_connection.disconnect ();
|
||||||
Glib::Threads::Mutex::Lock l (self->export_status->lock());
|
Glib::Threads::Mutex::Lock l (self->export_status->lock());
|
||||||
|
SessionEvent::create_per_thread_pool (name, 512);
|
||||||
|
DiskReader::allocate_working_buffers ();
|
||||||
self->start_timespan ();
|
self->start_timespan ();
|
||||||
|
DiskReader::free_working_buffers ();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,6 +173,8 @@ Session::start_audio_export (samplepos_t position, bool realtime, bool region_ex
|
|||||||
/* get everyone to the right position */
|
/* get everyone to the right position */
|
||||||
|
|
||||||
std::shared_ptr<RouteList const> rl = routes.reader();
|
std::shared_ptr<RouteList const> rl = routes.reader();
|
||||||
|
ARDOUR::ProcessThread* pt = new ProcessThread ();
|
||||||
|
pt->get_buffers ();
|
||||||
|
|
||||||
for (auto const& i : *rl) {
|
for (auto const& i : *rl) {
|
||||||
std::shared_ptr<Track> tr = std::dynamic_pointer_cast<Track> (i);
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pt->drop_buffers ();
|
||||||
|
delete pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we just did the core part of a locate call above, but
|
/* we just did the core part of a locate call above, but
|
||||||
|
Loading…
Reference in New Issue
Block a user