MCPcopy Create free account
hub / github.com/cinder/Cinder / setupSampleRateConversion

Method setupSampleRateConversion

src/cinder/audio/Source.cpp:102–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100}
101
102void SourceFile::setupSampleRateConversion()
103{
104 size_t nativeSampleRate = getSampleRateNative();
105 size_t outputSampleRate = getSampleRate();
106 if( ! outputSampleRate ) {
107 outputSampleRate = nativeSampleRate;
108 setSampleRate( nativeSampleRate );
109 }
110 else if( outputSampleRate != nativeSampleRate ) {
111 mNumFrames = (size_t)std::ceil( (float)mFileNumFrames * (float)outputSampleRate / (float)nativeSampleRate );
112
113 if( ! supportsConversion() ) {
114 size_t numChannels = getNumChannels();
115 mConverter = audio::dsp::Converter::create( nativeSampleRate, outputSampleRate, numChannels, numChannels, getMaxFramesPerRead() );
116 mConverterReadBuffer.setSize( getMaxFramesPerRead(), numChannels );
117 }
118 }
119 else {
120 mNumFrames = mFileNumFrames;
121 mConverter.reset();
122 }
123}
124
125size_t SourceFile::read( Buffer *buffer )
126{

Callers 5

createMethod · 0.80
cloneWithSampleRateMethod · 0.80
cloneWithSampleRateMethod · 0.80
cloneWithSampleRateMethod · 0.80
cloneWithSampleRateMethod · 0.80

Calls 9

setSampleRateFunction · 0.85
ceilFunction · 0.85
supportsConversionFunction · 0.85
getMaxFramesPerReadFunction · 0.85
getSampleRateFunction · 0.50
getNumChannelsFunction · 0.50
createFunction · 0.50
setSizeMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected