Mercurial > hg > svcore
comparison data/fileio/AudioFileReaderFactory.cpp @ 1098:329ddaf7415d simple-fft-model
Store temporary audio files in memory if we have plenty of it
author | Chris Cannam |
---|---|
date | Mon, 15 Jun 2015 14:35:37 +0100 |
parents | abc309f507ae |
children | cd156ede1395 |
comparison
equal
deleted
inserted
replaced
1097:abc309f507ae | 1098:329ddaf7415d |
---|---|
19 #include "DecodingWavFileReader.h" | 19 #include "DecodingWavFileReader.h" |
20 #include "OggVorbisFileReader.h" | 20 #include "OggVorbisFileReader.h" |
21 #include "MP3FileReader.h" | 21 #include "MP3FileReader.h" |
22 #include "QuickTimeFileReader.h" | 22 #include "QuickTimeFileReader.h" |
23 #include "CoreAudioFileReader.h" | 23 #include "CoreAudioFileReader.h" |
24 #include "AudioFileSizeEstimator.h" | |
25 | |
26 #include "base/StorageAdviser.h" | |
24 | 27 |
25 #include <QString> | 28 #include <QString> |
26 #include <QFileInfo> | 29 #include <QFileInfo> |
27 #include <iostream> | 30 #include <iostream> |
28 | 31 |
96 return 0; | 99 return 0; |
97 } | 100 } |
98 | 101 |
99 AudioFileReader *reader = 0; | 102 AudioFileReader *reader = 0; |
100 | 103 |
104 sv_frame_t estimatedSamples = | |
105 AudioFileSizeEstimator::estimate(source, targetRate); | |
106 | |
101 CodedAudioFileReader::CacheMode cacheMode = | 107 CodedAudioFileReader::CacheMode cacheMode = |
102 CodedAudioFileReader::CacheInTemporaryFile; | 108 CodedAudioFileReader::CacheInTemporaryFile; |
103 | 109 |
110 if (estimatedSamples > 0) { | |
111 size_t kb = (estimatedSamples * sizeof(float)) / 1024; | |
112 StorageAdviser::Recommendation rec = | |
113 StorageAdviser::recommend(StorageAdviser::SpeedCritical, kb, kb); | |
114 if (rec == StorageAdviser::UseMemory || | |
115 rec == StorageAdviser::PreferMemory) { | |
116 cacheMode = CodedAudioFileReader::CacheInMemory; | |
117 } | |
118 } | |
119 | |
104 CodedAudioFileReader::DecodeMode decodeMode = | 120 CodedAudioFileReader::DecodeMode decodeMode = |
105 (threading ? | 121 (threading ? |
106 CodedAudioFileReader::DecodeThreaded : | 122 CodedAudioFileReader::DecodeThreaded : |
107 CodedAudioFileReader::DecodeAtOnce); | 123 CodedAudioFileReader::DecodeAtOnce); |
108 | 124 |