37AudioResampler::AudioResampler()
39 resample_source = NULL;
42 new_num_of_samples = 0;
45 resampled_buffer = NULL;
52 resample_source =
new juce::ResamplingAudioSource(buffer_source,
false, 2);
55 resampled_buffer =
new juce::AudioSampleBuffer(2, 1);
56 resampled_buffer->clear();
59 resample_callback_buffer.buffer = resampled_buffer;
60 resample_callback_buffer.numSamples = 1;
61 resample_callback_buffer.startSample = 0;
71 delete resample_source;
73 delete resampled_buffer;
81 if (new_sample_rate <= 0)
82 new_sample_rate = 44100;
85 source_ratio = sample_rate / new_sample_rate;
100 dest_ratio = 1.0 / ratio;
101 num_of_samples = buffer->getNumSamples();
102 new_num_of_samples = round(num_of_samples * dest_ratio) - 1;
105 resample_source->setResamplingRatio(source_ratio);
111 resample_source->prepareToPlay(num_of_samples + 10, 0);
116 resampled_buffer->setSize(buffer->getNumChannels(), new_num_of_samples,
true,
true,
true);
117 resample_callback_buffer.numSamples = new_num_of_samples;
118 resample_callback_buffer.startSample = 0;
119 resample_callback_buffer.clearActiveBufferRegion();
126 resample_source->getNextAudioBlock(resample_callback_buffer);
129 return resampled_buffer;
Header file for AudioResampler class.
This class is used to expose an AudioSampleBuffer as an AudioSource in JUCE.
void setBuffer(juce::AudioSampleBuffer *audio_buffer)
Update the internal buffer used by this source.
juce::AudioSampleBuffer * GetResampledBuffer()
Get the resampled audio buffer.
void SetBuffer(juce::AudioSampleBuffer *new_buffer, double sample_rate, double new_sample_rate)
Sets the audio buffer and key settings.
~AudioResampler()
Destructor.
This namespace is the default namespace for all code in the openshot library.