diff options
Diffstat (limited to 'libs/ardour/import.cc')
-rw-r--r-- | libs/ardour/import.cc | 13 |
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 (); } |