mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-30 17:03:06 +01:00
use process lock to lock out process() during playback buffer resizing
This commit is contained in:
parent
f78c659840
commit
87f4a4afff
2 changed files with 4 additions and 9 deletions
|
|
@ -66,7 +66,6 @@ void
|
|||
Session::schedule_playback_buffering_adjustment ()
|
||||
{
|
||||
add_post_transport_work (PostTransportAdjustPlaybackBuffering);
|
||||
DiskReader::inc_no_disk_output ();
|
||||
_butler->schedule_transport_work ();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -716,20 +716,13 @@ Session::butler_completed_transport_work ()
|
|||
TFSM_EVENT (TransportFSM::LocateDone);
|
||||
}
|
||||
|
||||
if (ptw & PostTransportAdjustPlaybackBuffering) {
|
||||
/* we blocked output while this happened */
|
||||
DiskReader::dec_no_disk_output ();
|
||||
ptw = PostTransportWork (ptw & ~PostTransportAdjustPlaybackBuffering);
|
||||
set_post_transport_work (ptw);
|
||||
}
|
||||
|
||||
bool start_after_butler_done_msg = false;
|
||||
|
||||
if ((ptw & (PostTransportReverse|PostTransportRoll))) {
|
||||
start_after_butler_done_msg = true;
|
||||
}
|
||||
|
||||
ptw = PostTransportWork (ptw & ~(PostTransportAdjustCaptureBuffering|PostTransportOverWrite|PostTransportReverse|PostTransportRoll));
|
||||
ptw = PostTransportWork (ptw & ~(PostTransportAdjustPlaybackBuffering|PostTransportAdjustCaptureBuffering|PostTransportOverWrite|PostTransportReverse|PostTransportRoll));
|
||||
set_post_transport_work (ptw);
|
||||
|
||||
set_next_event ();
|
||||
|
|
@ -1147,6 +1140,9 @@ Session::butler_transport_work ()
|
|||
}
|
||||
|
||||
if (ptw & PostTransportAdjustPlaybackBuffering) {
|
||||
/* need to prevent concurrency with ARDOUR::Reader::run(),
|
||||
* DiskWriter::adjust_buffering() re-allocates the ringbuffer */
|
||||
Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
|
||||
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
||||
boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
|
||||
if (tr) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue