13
0

fix crash #6161 - another throw w/o catch

The real problem is: libardourvampplugins:* cannot
be instantiated this remains to be fixed.
This commit is contained in:
Robin Gareus 2015-03-30 10:48:31 +02:00
parent d1b70b2e24
commit da42014c4d
2 changed files with 39 additions and 25 deletions

View File

@ -22,6 +22,10 @@
#include "ardour/session_event.h" #include "ardour/session_event.h"
#include "ardour/transient_detector.h" #include "ardour/transient_detector.h"
#include "pbd/compose.h"
#include "pbd/error.h"
#include "i18n.h"
using namespace std; using namespace std;
using namespace ARDOUR; using namespace ARDOUR;
using namespace PBD; using namespace PBD;
@ -102,13 +106,16 @@ Analyser::analyse_audio_file_source (boost::shared_ptr<AudioFileSource> src)
{ {
AnalysisFeatureList results; AnalysisFeatureList results;
try {
TransientDetector td (src->sample_rate()); TransientDetector td (src->sample_rate());
if (td.run (src->get_transients_path(), src.get(), 0, results) == 0) { if (td.run (src->get_transients_path(), src.get(), 0, results) == 0) {
src->set_been_analysed (true); src->set_been_analysed (true);
} else { } else {
src->set_been_analysed (false); src->set_been_analysed (false);
} }
} catch (...) {
error << string_compose(_("Transient Analysis failed for %1."), _("Audio File Source")) << endmsg;;
src->set_been_analysed (false);
return;
}
} }

View File

@ -1696,9 +1696,12 @@ in this and future transient-detection operations.\n\
} }
} }
TransientDetector t (pl->session().frame_rate());
bool existing_results = !results.empty(); bool existing_results = !results.empty();
try {
TransientDetector t (pl->session().frame_rate());
_transients.clear (); _transients.clear ();
_valid_transients = false; _valid_transients = false;
@ -1722,6 +1725,10 @@ in this and future transient-detection operations.\n\
_transients.insert (_transients.end(), these_results.begin(), these_results.end()); _transients.insert (_transients.end(), these_results.begin(), these_results.end());
} }
} catch (...) {
error << string_compose(_("Transient Analysis failed for %1."), _("Audio Region")) << endmsg;
return -1;
}
if (!results.empty()) { if (!results.empty()) {
if (existing_results) { if (existing_results) {