summaryrefslogtreecommitdiff
path: root/libs/ardour/import.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/import.cc')
-rw-r--r--libs/ardour/import.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc
index 578be0956a..e438d51bbe 100644
--- a/libs/ardour/import.cc
+++ b/libs/ardour/import.cc
@@ -54,6 +54,7 @@
#include "ardour/audioengine.h"
#include "ardour/audioregion.h"
#include "ardour/import_status.h"
+#include "ardour/mp3fileimportable.h"
#include "ardour/region_factory.h"
#include "ardour/resampled_source.h"
#include "ardour/runtime_functions.h"
@@ -110,6 +111,18 @@ open_importable_source (const string& path, samplecnt_t samplerate, ARDOUR::SrcQ
} catch (...) { }
#endif
+ /* libsndfile and CoreAudioFile failed, try minimp3-decoder */
+ try {
+ boost::shared_ptr<Mp3FileImportableSource> source(new Mp3FileImportableSource(path));
+
+ if (source->samplerate() == samplerate) {
+ return source;
+ }
+
+ /* rewrap as a resampled source */
+ return boost::shared_ptr<ImportableSource>(new ResampledImportableSource(source, samplerate, quality));
+ } catch (...) { }
+
throw failed_constructor ();
}