|
svcore
1.9
|
#include <DecodingWavFileReader.h>


Classes | |
| class | DecodeThread |
Public Types | |
| enum | ResampleMode { ResampleAtOnce, ResampleThreaded } |
| enum | CacheMode { CacheInTemporaryFile, CacheInMemory } |
| typedef std::map< QString, QString > | TagMap |
Public Slots | |
| void | cancelled () |
Signals | |
| void | progress (int) |
| void | frameCountChanged () |
Public Member Functions | |
| DecodingWavFileReader (FileSource source, ResampleMode resampleMode, CacheMode cacheMode, int targetRate=0, bool normalised=false, ProgressReporter *reporter=0) | |
| virtual | ~DecodingWavFileReader () |
| virtual QString | getError () const |
| virtual QString | getLocation () const |
| Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example). More... | |
| virtual int | getDecodeCompletion () const |
| virtual bool | isUpdating () const |
| virtual void | getInterleavedFrames (int start, int count, SampleBlock &frames) const |
| Return interleaved samples for count frames from index start. More... | |
| virtual int | getNativeRate () const |
| virtual bool | isQuicklySeekable () const |
| Intermediate cache means all CodedAudioFileReaders are quickly seekable. More... | |
| bool | isOK () const |
| int | getFrameCount () const |
| int | getChannelCount () const |
| int | getSampleRate () const |
| virtual QString | getTitle () const |
| Return the title of the work in the audio file, if known. More... | |
| virtual QString | getMaker () const |
| Return the "maker" of the work in the audio file, if known. More... | |
| virtual TagMap | getTags () const |
| virtual void | getDeInterleavedFrames (int start, int count, std::vector< SampleBlock > &frames) const |
| Return de-interleaved samples for count frames from index start. More... | |
Static Public Member Functions | |
| static void | getSupportedExtensions (std::set< QString > &extensions) |
| static bool | supportsExtension (QString ext) |
| static bool | supportsContentType (QString type) |
| static bool | supports (FileSource &source) |
Protected Member Functions | |
| void | addBlock (const SampleBlock &frames) |
| void | initialiseDecodeCache () |
| void | addSamplesToDecodeCache (float **samples, int nframes) |
| void | addSamplesToDecodeCache (float *samplesInterleaved, int nframes) |
| void | addSamplesToDecodeCache (const SampleBlock &interleaved) |
| void | finishDecodeCache () |
| bool | isDecodeCacheInitialised () const |
| void | startSerialised (QString id) |
| void | endSerialised () |
Protected Attributes | |
| FileSource | m_source |
| QString | m_path |
| QString | m_error |
| bool | m_cancelled |
| int | m_processed |
| int | m_completion |
| WavFileReader * | m_original |
| ProgressReporter * | m_reporter |
| DecodeThread * | m_decodeThread |
| QMutex | m_cacheMutex |
| CacheMode | m_cacheMode |
| SampleBlock | m_data |
| QReadWriteLock | m_dataLock |
| bool | m_initialised |
| Serialiser * | m_serialiser |
| int | m_fileRate |
| QString | m_cacheFileName |
| SNDFILE * | m_cacheFileWritePtr |
| WavFileReader * | m_cacheFileReader |
| float * | m_cacheWriteBuffer |
| int | m_cacheWriteBufferIndex |
| int | m_cacheWriteBufferSize |
| Resampler * | m_resampler |
| float * | m_resampleBuffer |
| int | m_fileFrameCount |
| bool | m_normalised |
| float | m_max |
| float | m_gain |
| int | m_frameCount |
| int | m_channelCount |
| int | m_sampleRate |
Definition at line 28 of file DecodingWavFileReader.h.
|
inherited |
Definition at line 65 of file AudioFileReader.h.
| Enumerator | |
|---|---|
| ResampleAtOnce | |
| ResampleThreaded | |
Definition at line 32 of file DecodingWavFileReader.h.
|
inherited |
| Enumerator | |
|---|---|
| CacheInTemporaryFile | |
| CacheInMemory | |
Definition at line 36 of file CodedAudioFileReader.h.
| DecodingWavFileReader::DecodingWavFileReader | ( | FileSource | source, |
| ResampleMode | resampleMode, | ||
| CacheMode | cacheMode, | ||
| int | targetRate = 0, |
||
| bool | normalised = false, |
||
| ProgressReporter * | reporter = 0 |
||
| ) |
Definition at line 24 of file DecodingWavFileReader.cpp.
References addBlock(), cancelled(), CodedAudioFileReader::endSerialised(), CodedAudioFileReader::finishDecodeCache(), AudioFileReader::getChannelCount(), WavFileReader::getError(), AudioFileReader::getFrameCount(), WavFileReader::getInterleavedFrames(), AudioFileReader::getSampleRate(), CodedAudioFileReader::initialiseDecodeCache(), CodedAudioFileReader::isDecodeCacheInitialised(), AudioFileReader::isOK(), m_cancelled, AudioFileReader::m_channelCount, m_decodeThread, m_error, CodedAudioFileReader::m_fileRate, m_original, m_path, m_reporter, ResampleAtOnce, ProgressReporter::setMessage(), ProgressReporter::setProgress(), Thread::start(), and SVDEBUG.
|
virtual |
Definition at line 100 of file DecodingWavFileReader.cpp.
References m_cancelled, m_decodeThread, and m_original.
|
inlinevirtual |
Reimplemented from AudioFileReader.
Definition at line 45 of file DecodingWavFileReader.h.
References m_error.
|
inlinevirtual |
Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example).
Reimplemented from AudioFileReader.
Definition at line 46 of file DecodingWavFileReader.h.
References FileSource::getLocation(), and m_source.
|
static |
Definition at line 170 of file DecodingWavFileReader.cpp.
References WavFileReader::getSupportedExtensions().
|
static |
Definition at line 176 of file DecodingWavFileReader.cpp.
References WavFileReader::supportsExtension().
|
static |
Definition at line 182 of file DecodingWavFileReader.cpp.
References WavFileReader::supportsContentType().
|
static |
Definition at line 188 of file DecodingWavFileReader.cpp.
References WavFileReader::supports().
|
inlinevirtual |
Reimplemented from AudioFileReader.
Definition at line 52 of file DecodingWavFileReader.h.
References m_completion.
|
inlinevirtual |
Reimplemented from AudioFileReader.
Definition at line 54 of file DecodingWavFileReader.h.
References m_decodeThread.
|
slot |
Definition at line 112 of file DecodingWavFileReader.cpp.
References m_cancelled.
Referenced by DecodingWavFileReader().
|
protected |
Definition at line 150 of file DecodingWavFileReader.cpp.
References CodedAudioFileReader::addSamplesToDecodeCache(), AudioFileReader::getFrameCount(), m_completion, CodedAudioFileReader::m_fileRate, m_original, m_processed, m_reporter, AudioFileReader::m_sampleRate, CodedAudioFileReader::progress(), and ProgressReporter::setProgress().
Referenced by DecodingWavFileReader(), and DecodingWavFileReader::DecodeThread::run().
|
virtualinherited |
Return interleaved samples for count frames from index start.
The resulting sample block will contain count * getChannelCount() samples (or fewer if end of file is reached).
The subclass implementations of this function must be thread-safe – that is, safe to call from multiple threads with different arguments on the same object at the same time.
Implements AudioFileReader.
Definition at line 409 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::CacheInMemory, CodedAudioFileReader::CacheInTemporaryFile, WavFileReader::getInterleavedFrames(), AudioFileReader::isOK(), CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheMode, AudioFileReader::m_channelCount, CodedAudioFileReader::m_data, CodedAudioFileReader::m_dataLock, CodedAudioFileReader::m_gain, CodedAudioFileReader::m_initialised, CodedAudioFileReader::m_normalised, and SVDEBUG.
|
inlinevirtualinherited |
Reimplemented from AudioFileReader.
Definition at line 44 of file CodedAudioFileReader.h.
References CodedAudioFileReader::m_fileRate.
|
inlinevirtualinherited |
Intermediate cache means all CodedAudioFileReaders are quickly seekable.
Implements AudioFileReader.
Definition at line 47 of file CodedAudioFileReader.h.
|
signalinherited |
Referenced by addBlock(), and OggVorbisFileReader::readPacket().
|
protectedinherited |
Definition at line 97 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::CacheInMemory, CodedAudioFileReader::CacheInTemporaryFile, Resampler::FastestTolerable, WavFileReader::getError(), TempDirectory::getInstance(), AudioFileReader::isOK(), CodedAudioFileReader::m_cacheFileName, CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheFileWritePtr, CodedAudioFileReader::m_cacheMode, CodedAudioFileReader::m_cacheMutex, CodedAudioFileReader::m_cacheWriteBuffer, CodedAudioFileReader::m_cacheWriteBufferIndex, CodedAudioFileReader::m_cacheWriteBufferSize, AudioFileReader::m_channelCount, CodedAudioFileReader::m_data, CodedAudioFileReader::m_fileRate, CodedAudioFileReader::m_initialised, CodedAudioFileReader::m_resampleBuffer, CodedAudioFileReader::m_resampler, AudioFileReader::m_sampleRate, and SVDEBUG.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), and DecodingWavFileReader().
|
protectedinherited |
Definition at line 179 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheMutex, CodedAudioFileReader::m_cacheWriteBuffer, CodedAudioFileReader::m_cacheWriteBufferIndex, CodedAudioFileReader::m_cacheWriteBufferSize, AudioFileReader::m_channelCount, CodedAudioFileReader::m_initialised, CodedAudioFileReader::pushBuffer(), and WavFileReader::updateFrameCount().
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), and addBlock().
|
protectedinherited |
Definition at line 209 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheMutex, CodedAudioFileReader::m_cacheWriteBuffer, CodedAudioFileReader::m_cacheWriteBufferIndex, CodedAudioFileReader::m_cacheWriteBufferSize, AudioFileReader::m_channelCount, CodedAudioFileReader::m_initialised, CodedAudioFileReader::pushBuffer(), and WavFileReader::updateFrameCount().
|
protectedinherited |
Definition at line 239 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheMutex, CodedAudioFileReader::m_cacheWriteBuffer, CodedAudioFileReader::m_cacheWriteBufferIndex, CodedAudioFileReader::m_cacheWriteBufferSize, AudioFileReader::m_channelCount, CodedAudioFileReader::m_initialised, CodedAudioFileReader::pushBuffer(), and WavFileReader::updateFrameCount().
|
protectedinherited |
Definition at line 266 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::CacheInTemporaryFile, CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheFileWritePtr, CodedAudioFileReader::m_cacheMode, CodedAudioFileReader::m_cacheMutex, CodedAudioFileReader::m_cacheWriteBuffer, CodedAudioFileReader::m_cacheWriteBufferIndex, AudioFileReader::m_channelCount, CodedAudioFileReader::m_initialised, CodedAudioFileReader::m_resampleBuffer, CodedAudioFileReader::m_resampler, CodedAudioFileReader::pushBuffer(), and WavFileReader::updateFrameCount().
Referenced by DecodingWavFileReader(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), DecodingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), and MP3FileReader::DecodeThread::run().
|
inlineprotectedinherited |
Definition at line 67 of file CodedAudioFileReader.h.
References CodedAudioFileReader::m_initialised.
Referenced by MP3FileReader::accept(), DecodingWavFileReader(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), DecodingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), and MP3FileReader::DecodeThread::run().
|
protectedinherited |
Definition at line 79 of file CodedAudioFileReader.cpp.
References CodedAudioFileReader::m_serialiser, and SVDEBUG.
Referenced by MP3FileReader::accept(), DecodingWavFileReader::DecodeThread::run(), and OggVorbisFileReader::DecodeThread::run().
|
protectedinherited |
Definition at line 88 of file CodedAudioFileReader.cpp.
References Serialiser::getId(), CodedAudioFileReader::m_serialiser, and SVDEBUG.
Referenced by DecodingWavFileReader(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), DecodingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), MP3FileReader::DecodeThread::run(), and CodedAudioFileReader::~CodedAudioFileReader().
|
inlineinherited |
Definition at line 35 of file AudioFileReader.h.
References AudioFileReader::m_channelCount.
Referenced by AudioFileReaderFactory::create(), DecodingWavFileReader(), WaveFileModel::getData(), CodedAudioFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), and WaveFileModel::isOK().
|
inlineinherited |
Definition at line 39 of file AudioFileReader.h.
References AudioFileReader::m_frameCount.
Referenced by addBlock(), DecodingWavFileReader(), WaveFileModel::getFrameCount(), and DecodingWavFileReader::DecodeThread::run().
|
inlineinherited |
Definition at line 40 of file AudioFileReader.h.
References AudioFileReader::m_channelCount.
Referenced by WritableWaveFileModel::addSamples(), DecodingWavFileReader(), WaveFileModel::getChannelCount(), and AudioFileReader::getDeInterleavedFrames().
|
inlineinherited |
Definition at line 41 of file AudioFileReader.h.
References AudioFileReader::m_sampleRate.
Referenced by AudioFileReaderFactory::create(), DecodingWavFileReader(), WaveFileModel::getSampleRate(), and WaveFileModel::WaveFileModel().
|
inlinevirtualinherited |
Return the title of the work in the audio file, if known.
This may be implemented by subclasses that support file tagging. This is not the same thing as the file name.
Reimplemented in OggVorbisFileReader, and MP3FileReader.
Definition at line 56 of file AudioFileReader.h.
Referenced by WaveFileModel::getTitle(), and WaveFileModel::WaveFileModel().
|
inlinevirtualinherited |
Return the "maker" of the work in the audio file, if known.
This could represent almost anything (band, composer, conductor, artist etc).
Reimplemented in OggVorbisFileReader, and MP3FileReader.
Definition at line 63 of file AudioFileReader.h.
Referenced by WaveFileModel::getMaker().
|
inlinevirtualinherited |
Reimplemented in OggVorbisFileReader, and MP3FileReader.
Definition at line 66 of file AudioFileReader.h.
|
virtualinherited |
Return de-interleaved samples for count frames from index start.
Implemented in this class (it calls getInterleavedFrames and de-interleaves). The resulting vector will contain getChannelCount() sample blocks of count samples each (or fewer if end of file is reached).
Definition at line 19 of file AudioFileReader.cpp.
References AudioFileReader::getChannelCount(), and AudioFileReader::getInterleavedFrames().
|
signalinherited |
Referenced by WavFileReader::updateFrameCount().
|
protected |
Definition at line 62 of file DecodingWavFileReader.h.
Referenced by getLocation().
|
protected |
Definition at line 63 of file DecodingWavFileReader.h.
Referenced by DecodingWavFileReader().
|
protected |
Definition at line 64 of file DecodingWavFileReader.h.
Referenced by DecodingWavFileReader(), and getError().
|
protected |
Definition at line 65 of file DecodingWavFileReader.h.
Referenced by cancelled(), DecodingWavFileReader(), DecodingWavFileReader::DecodeThread::run(), and ~DecodingWavFileReader().
|
protected |
Definition at line 66 of file DecodingWavFileReader.h.
Referenced by addBlock().
|
protected |
Definition at line 67 of file DecodingWavFileReader.h.
Referenced by addBlock(), getDecodeCompletion(), and DecodingWavFileReader::DecodeThread::run().
|
protected |
Definition at line 69 of file DecodingWavFileReader.h.
Referenced by addBlock(), DecodingWavFileReader(), DecodingWavFileReader::DecodeThread::run(), and ~DecodingWavFileReader().
|
protected |
Definition at line 70 of file DecodingWavFileReader.h.
Referenced by addBlock(), and DecodingWavFileReader().
|
protected |
Definition at line 84 of file DecodingWavFileReader.h.
Referenced by DecodingWavFileReader(), isUpdating(), and ~DecodingWavFileReader().
|
protectedinherited |
Definition at line 78 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 79 of file CodedAudioFileReader.h.
Referenced by MP3FileReader::accept(), CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), CodedAudioFileReader::pushBufferNonResampling(), DecodingWavFileReader::DecodeThread::run(), and OggVorbisFileReader::DecodeThread::run().
|
protectedinherited |
Definition at line 80 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::pushBufferNonResampling().
|
mutableprotectedinherited |
Definition at line 81 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::getInterleavedFrames(), and CodedAudioFileReader::pushBufferNonResampling().
|
protectedinherited |
Definition at line 82 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::isDecodeCacheInitialised().
|
protectedinherited |
Definition at line 83 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::endSerialised(), and CodedAudioFileReader::startSerialised().
|
protectedinherited |
Definition at line 84 of file CodedAudioFileReader.h.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), addBlock(), DecodingWavFileReader(), CodedAudioFileReader::getNativeRate(), CodedAudioFileReader::initialiseDecodeCache(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), and CodedAudioFileReader::pushBuffer().
|
protectedinherited |
Definition at line 86 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 87 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::initialiseDecodeCache(), CodedAudioFileReader::pushBufferNonResampling(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 88 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 89 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::initialiseDecodeCache(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 90 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), CodedAudioFileReader::finishDecodeCache(), and CodedAudioFileReader::initialiseDecodeCache().
|
protectedinherited |
Definition at line 91 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::addSamplesToDecodeCache(), and CodedAudioFileReader::initialiseDecodeCache().
|
protectedinherited |
|
protectedinherited |
Definition at line 94 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::finishDecodeCache(), CodedAudioFileReader::initialiseDecodeCache(), CodedAudioFileReader::pushBufferResampling(), and CodedAudioFileReader::~CodedAudioFileReader().
|
protectedinherited |
Definition at line 95 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::pushBuffer(), and CodedAudioFileReader::pushBufferResampling().
|
protectedinherited |
Definition at line 97 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::getInterleavedFrames(), and CodedAudioFileReader::pushBufferNonResampling().
|
protectedinherited |
Definition at line 98 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::pushBufferNonResampling().
|
protectedinherited |
Definition at line 99 of file CodedAudioFileReader.h.
Referenced by CodedAudioFileReader::getInterleavedFrames(), and CodedAudioFileReader::pushBufferNonResampling().
|
protectedinherited |
Definition at line 107 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), CodedAudioFileReader::CodedAudioFileReader(), AudioFileReader::getFrameCount(), CodedAudioFileReader::pushBufferNonResampling(), CodedAudioFileReader::pushBufferResampling(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().
|
protectedinherited |
Definition at line 108 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), CodedAudioFileReader::addSamplesToDecodeCache(), DecodingWavFileReader(), CodedAudioFileReader::finishDecodeCache(), AudioFileReader::getChannelCount(), CodedAudioFileReader::getInterleavedFrames(), WavFileReader::getInterleavedFrames(), CodedAudioFileReader::initialiseDecodeCache(), AudioFileReader::isOK(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), CodedAudioFileReader::pushBufferNonResampling(), CodedAudioFileReader::pushBufferResampling(), MP3FileReader::DecodeThread::run(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().
|
protectedinherited |
Definition at line 109 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), addBlock(), CodedAudioFileReader::CodedAudioFileReader(), AudioFileReader::getNativeRate(), AudioFileReader::getSampleRate(), CodedAudioFileReader::initialiseDecodeCache(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), CodedAudioFileReader::pushBuffer(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().