mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 21:23:18 +02:00
Add support for deinterleaved float-point audio (native format)
This commit is contained in:
parent
d3c006b5da
commit
ad8f17a142
2 changed files with 9 additions and 5 deletions
|
@ -824,7 +824,7 @@ void AudioSRC::convertOutputToFloat(float** inputs, float* output, int numFrames
|
|||
|
||||
#endif
|
||||
|
||||
int AudioSRC::processFloat(float** inputs, float** outputs, int inputFrames) {
|
||||
int AudioSRC::render(float** inputs, float** outputs, int inputFrames) {
|
||||
int outputFrames = 0;
|
||||
|
||||
int nh = std::min(_numHistory, inputFrames); // number of frames from history buffer
|
||||
|
@ -955,7 +955,7 @@ int AudioSRC::render(const int16_t* input, int16_t* output, int inputFrames) {
|
|||
|
||||
convertInputFromInt16(input, _inputs, ni);
|
||||
|
||||
int no = processFloat(_inputs, _outputs, ni);
|
||||
int no = render(_inputs, _outputs, ni);
|
||||
assert(no <= SRC_BLOCK);
|
||||
|
||||
convertOutputToInt16(_outputs, output, no);
|
||||
|
@ -981,7 +981,7 @@ int AudioSRC::render(const float* input, float* output, int inputFrames) {
|
|||
|
||||
convertInputFromFloat(input, _inputs, ni);
|
||||
|
||||
int no = processFloat(_inputs, _outputs, ni);
|
||||
int no = render(_inputs, _outputs, ni);
|
||||
assert(no <= SRC_BLOCK);
|
||||
|
||||
convertOutputToFloat(_outputs, output, no);
|
||||
|
|
|
@ -34,7 +34,13 @@ public:
|
|||
AudioSRC(int inputSampleRate, int outputSampleRate, int numChannels);
|
||||
~AudioSRC();
|
||||
|
||||
// deinterleaved float input/output (native format)
|
||||
int render(float** inputs, float** outputs, int inputFrames);
|
||||
|
||||
// interleaved int16_t input/output
|
||||
int render(const int16_t* input, int16_t* output, int inputFrames);
|
||||
|
||||
// interleaved float input/output
|
||||
int render(const float* input, float* output, int inputFrames);
|
||||
|
||||
int getMinOutput(int inputFrames);
|
||||
|
@ -81,8 +87,6 @@ private:
|
|||
|
||||
void convertInputFromFloat(const float* input, float** outputs, int numFrames);
|
||||
void convertOutputToFloat(float** inputs, float* output, int numFrames);
|
||||
|
||||
int processFloat(float** inputs, float** outputs, int inputFrames);
|
||||
};
|
||||
|
||||
#endif // AudioSRC_h
|
||||
|
|
Loading…
Reference in a new issue