19 AudioResampler::AudioResampler()
21 resample_source = NULL;
24 new_num_of_samples = 0;
27 resampled_buffer = NULL;
34 resample_source =
new juce::ResamplingAudioSource(buffer_source,
false, 2);
38 resampled_buffer->clear();
41 resample_callback_buffer.buffer = resampled_buffer;
42 resample_callback_buffer.numSamples = 1;
43 resample_callback_buffer.startSample = 0;
47 AudioResampler::~AudioResampler()
53 delete resample_source;
55 delete resampled_buffer;
63 if (new_sample_rate <= 0)
64 new_sample_rate = 44100;
67 source_ratio = sample_rate / new_sample_rate;
70 SetBuffer(new_buffer, source_ratio);
78 buffer_source->setBuffer(buffer);
82 dest_ratio = 1.0 / ratio;
83 num_of_samples = buffer->getNumSamples();
84 new_num_of_samples = round(num_of_samples * dest_ratio) - 1;
87 resample_source->setResamplingRatio(source_ratio);
93 resample_source->prepareToPlay(num_of_samples + 10, 0);
98 resampled_buffer->setSize(buffer->getNumChannels(), new_num_of_samples,
true,
true,
true);
99 resample_callback_buffer.numSamples = new_num_of_samples;
100 resample_callback_buffer.startSample = 0;
101 resample_callback_buffer.clearActiveBufferRegion();
108 resample_source->getNextAudioBlock(resample_callback_buffer);
111 return resampled_buffer;
This class is used to expose an AudioBuffer<float> as an AudioSource in JUCE.
Header file for AudioResampler class.
This namespace is the default namespace for all code in the openshot library.