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:
parent
d1b70b2e24
commit
da42014c4d
@ -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;
|
||||||
|
|
||||||
TransientDetector td (src->sample_rate());
|
try {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
} catch (...) {
|
||||||
|
error << string_compose(_("Transient Analysis failed for %1."), _("Audio File Source")) << endmsg;;
|
||||||
src->set_been_analysed (false);
|
src->set_been_analysed (false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1696,31 +1696,38 @@ in this and future transient-detection operations.\n\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TransientDetector t (pl->session().frame_rate());
|
|
||||||
bool existing_results = !results.empty();
|
bool existing_results = !results.empty();
|
||||||
|
|
||||||
_transients.clear ();
|
try {
|
||||||
_valid_transients = false;
|
|
||||||
|
|
||||||
for (uint32_t i = 0; i < n_channels(); ++i) {
|
TransientDetector t (pl->session().frame_rate());
|
||||||
|
|
||||||
AnalysisFeatureList these_results;
|
_transients.clear ();
|
||||||
|
_valid_transients = false;
|
||||||
|
|
||||||
t.reset ();
|
for (uint32_t i = 0; i < n_channels(); ++i) {
|
||||||
|
|
||||||
if (t.run ("", this, i, these_results)) {
|
AnalysisFeatureList these_results;
|
||||||
return -1;
|
|
||||||
|
t.reset ();
|
||||||
|
|
||||||
|
if (t.run ("", this, i, these_results)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* translate all transients to give absolute position */
|
||||||
|
|
||||||
|
for (AnalysisFeatureList::iterator i = these_results.begin(); i != these_results.end(); ++i) {
|
||||||
|
(*i) += _position;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* merge */
|
||||||
|
|
||||||
|
_transients.insert (_transients.end(), these_results.begin(), these_results.end());
|
||||||
}
|
}
|
||||||
|
} catch (...) {
|
||||||
/* translate all transients to give absolute position */
|
error << string_compose(_("Transient Analysis failed for %1."), _("Audio Region")) << endmsg;
|
||||||
|
return -1;
|
||||||
for (AnalysisFeatureList::iterator i = these_results.begin(); i != these_results.end(); ++i) {
|
|
||||||
(*i) += _position;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* merge */
|
|
||||||
|
|
||||||
_transients.insert (_transients.end(), these_results.begin(), these_results.end());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!results.empty()) {
|
if (!results.empty()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user