4#include <condition_variable>
8#include <unordered_map>
18 AudioMixer(std::shared_ptr<webrtc_streaming::AudioSink> audio_sink,
27 void OnPlayback(uint32_t stream_id, uint32_t stream_sample_rate,
28 uint8_t stream_channels_count,
29 uint8_t stream_bits_per_channel,
float volume,
const uint8_t* buffer,
Definition: audio_mixer.h:16
std::unordered_map< uint32_t, size_t > next_frame_
Definition: audio_mixer.h:59
void MixerLoop()
Definition: audio_mixer.cpp:220
const uint8_t channels_count_
Definition: audio_mixer.h:37
const uint32_t sample_rate_
Definition: audio_mixer.h:38
std::thread mixer_thread_
Definition: audio_mixer.h:74
AudioMixer(std::shared_ptr< webrtc_streaming::AudioSink > audio_sink, const AudioMixerSettings &settings)
Definition: audio_mixer.cpp:138
size_t last_active_frame_
Definition: audio_mixer.h:56
const size_t chunk_frames_count_
Definition: audio_mixer.h:42
std::vector< std::vector< float > > channles_map
Definition: audio_mixer.h:62
void OnStreamStopped(uint32_t stream_id)
Definition: audio_mixer.cpp:159
void Start()
Definition: audio_mixer.cpp:147
~AudioMixer()
Definition: audio_mixer.cpp:145
const size_t sample_size_bytes_
Definition: audio_mixer.h:39
const size_t frame_size_bytes_
Definition: audio_mixer.h:40
void Stop()
Definition: audio_mixer.cpp:151
std::mutex mutex_
Definition: audio_mixer.h:46
std::vector< uint8_t > mixed_buffer_
Definition: audio_mixer.h:53
std::shared_ptr< webrtc_streaming::AudioSink > audio_sink_
Definition: audio_mixer.h:44
void OnPlayback(uint32_t stream_id, uint32_t stream_sample_rate, uint8_t stream_channels_count, uint8_t stream_bits_per_channel, float volume, const uint8_t *buffer, size_t size)
Definition: audio_mixer.cpp:164
std::atomic< bool > stop_mixer_
Definition: audio_mixer.h:75
std::condition_variable mixer_cv_
Definition: audio_mixer.h:76
uint32_t size
Definition: io.h:2
Definition: alloc_driver.h:20
Definition: audio_settings.h:50