6#include "audio_buffer.h"
8#include <nlohmann/json.hpp>
119 uint32_t block_size_ = 0;
122 std::vector<
float> work_buffer_a_;
123 std::vector<
float> work_buffer_b_;
124 uint32_t max_work_buffer_size_ = 0;
A class representing an audio buffer with multiple channels of non-interleaved audio data.
Definition audio_buffer.h:20
A chain of audio processors that processes audio sequentially.
Definition audio_processor.h:68
AudioProcessorChain(uint32_t block_size)
Constructs an AudioProcessorChain with a specified block size.
void Process(const AudioBuffer &input, AudioBuffer &output) noexcept SFFDN_NONBLOCKING override
Processes the audio buffers through the chain.
uint32_t GetProcessorCount() const
Returns the number of processors in the chain.
bool AddProcessor(std::unique_ptr< AudioProcessor > &&processor)
Adds an audio processor to the chain.
AudioProcessor * GetProcessor(uint32_t index) const
Returns a pointer to the processor at the specified index.
uint32_t InputChannelCount() const noexcept SFFDN_NONBLOCKING override
Returns the number of input channels this processor expects.
Base class for audio processors.
Definition audio_processor.h:24
virtual uint32_t OutputChannelCount() const noexcept SFFDN_NONBLOCKING=0
Returns the number of output channels this processor produces.
virtual std::unique_ptr< AudioProcessor > Clone() const =0
Creates a copy of the audio processor.
virtual void Clear()=0
Clears the internal state of the processor.
virtual uint32_t InputChannelCount() const noexcept SFFDN_NONBLOCKING=0
Returns the number of input channels this processor expects.
virtual void Process(const AudioBuffer &input, AudioBuffer &output) noexcept SFFDN_NONBLOCKING=0
Process audio buffers.