Mercurial > hg > svcore
diff data/fileio/AudioFileReader.cpp @ 327:1d656dcda8ef
* some tweaks to improve usability of these classes in a console application
author | Chris Cannam |
---|---|
date | Fri, 02 Nov 2007 16:50:31 +0000 |
parents | 92e8dbde73cd |
children | 59e7fe1b1003 |
line wrap: on
line diff
--- a/data/fileio/AudioFileReader.cpp Thu Nov 01 16:02:01 2007 +0000 +++ b/data/fileio/AudioFileReader.cpp Fri Nov 02 16:50:31 2007 +0000 @@ -15,3 +15,26 @@ #include "AudioFileReader.h" +void +AudioFileReader::getDeInterleavedFrames(size_t start, size_t count, + std::vector<SampleBlock> &frames) const +{ + SampleBlock interleaved; + getInterleavedFrames(start, count, interleaved); + + size_t channels = getChannelCount(); + size_t rc = interleaved.size() / channels; + + frames.clear(); + + for (size_t c = 0; c < channels; ++c) { + frames.push_back(SampleBlock()); + } + + for (size_t i = 0; i < rc; ++i) { + for (size_t c = 0; c < channels; ++c) { + frames[c].push_back(interleaved[i * channels + c]); + } + } +} +