12 auto audio_buffer = std::dynamic_pointer_cast<AudioBuffer>(buffer);
16 std::span<const double> data_span = audio_buffer->get_data();
18 if (data_span.empty())
21 uint32_t channel_id = audio_buffer->get_channel_id();
23 if (channel_id >=
m_container->get_num_channels()) {
25 "SoundStreamWriter: AudioBuffer channel {} exceeds container channels ({}). Skipping write.",
32 if (frames_written > 0) {
#define MF_ERROR(comp, ctx,...)
void set_write_position_time(double time_seconds)
Set write position to a specific time offset.
double get_write_position_time() const
Get current write position as time offset.
std::shared_ptr< Kakshya::DynamicSoundStream > m_container
void processing_function(const std::shared_ptr< Buffer > &buffer) override
Write buffer audio data to the appropriate container channel.
uint64_t m_write_position
Current write position in frames.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.