diff options
author | Robin Gareus <robin@gareus.org> | 2015-09-06 11:49:47 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-09-06 11:49:47 +0200 |
commit | ef3a42faed07d51a6485e50662c9e93996042426 (patch) | |
tree | 33d88998dd899aa3bbb3e37e2cb073f6a52d57fd /libs | |
parent | f5f11158aa8ae22350b5e0d97fe592ac9d3ee7bd (diff) |
terminate peak-file creation on session-close
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/audiofilesource.cc | 3 | ||||
-rw-r--r-- | libs/ardour/audiosource.cc | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index a6942e678b..633292b157 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -335,6 +335,9 @@ AudioFileSource::is_empty (Session& /*s*/, string path) int AudioFileSource::setup_peakfile () { + if (_session.deletion_in_progress()) { + return 0; + } if (!(_flags & NoPeakFile)) { return initialize_peakfile (_path); } else { diff --git a/libs/ardour/audiosource.cc b/libs/ardour/audiosource.cc index bfc2d9e4ab..9aea6f1e0e 100644 --- a/libs/ardour/audiosource.cc +++ b/libs/ardour/audiosource.cc @@ -56,6 +56,7 @@ #include "ardour/audiosource.h" #include "ardour/rc_configuration.h" #include "ardour/runtime_functions.h" +#include "ardour/session.h" #include "i18n.h" @@ -746,6 +747,12 @@ AudioSource::build_peaks_from_scratch () lp.release(); // allow butler to refill buffers + if (_session.deletion_in_progress()) { + cerr << "peak file creation interrupted: " << _name << endmsg; + done_with_peakfile_writes (false); + goto out; + } + if (compute_and_write_peaks (buf.get(), current_frame, frames_read, true, false, _FPP)) { break; } |