19AudioResampler::AudioResampler(
int numChannels)
22 resample_source = NULL;
25 new_num_of_samples = 0;
28 resampled_buffer = NULL;
35 resample_source =
new juce::ResamplingAudioSource(buffer_source,
false, numChannels);
39 resampled_buffer->clear();
42 resample_callback_buffer.buffer = resampled_buffer;
43 resample_callback_buffer.numSamples = 1;
44 resample_callback_buffer.startSample = 0;
54 delete resample_source;
56 delete resampled_buffer;
64 if (new_sample_rate <= 0)
65 new_sample_rate = 44100;
68 source_ratio = sample_rate / new_sample_rate;
83 dest_ratio = 1.0 / ratio;
84 num_of_samples = buffer->getNumSamples();
85 new_num_of_samples = round(num_of_samples * dest_ratio);
88 resample_source->setResamplingRatio(source_ratio);
94 resample_source->prepareToPlay(num_of_samples + 10, 0);
99 resampled_buffer->setSize(buffer->getNumChannels(), new_num_of_samples,
true,
true,
true);
100 resample_callback_buffer.numSamples = new_num_of_samples;
101 resample_callback_buffer.startSample = 0;
102 resample_callback_buffer.clearActiveBufferRegion();
109 resample_source->getNextAudioBlock(resample_callback_buffer);
112 return resampled_buffer;
Header file for AudioResampler class.
This class is used to expose an AudioBuffer<float> as an AudioSource in JUCE.
void setBuffer(juce::AudioBuffer< float > *audio_buffer)
Update the internal buffer used by this source.
void SetBuffer(juce::AudioBuffer< float > *new_buffer, double sample_rate, double new_sample_rate)
Sets the audio buffer and key settings.
~AudioResampler()
Destructor.
juce::AudioBuffer< float > * GetResampledBuffer()
Get the resampled audio buffer.
This namespace is the default namespace for all code in the openshot library.