]> git.sesse.net Git - nageru/blobdiff - audio_mixer.cpp
Fix an issue where silent buses were only partially cleared.
[nageru] / audio_mixer.cpp
index e4eb495953baaa49cd487f2b5e16960857d88efb..401c89bb20ba154cf3f6395236300a7bed441e85 100644 (file)
@@ -403,7 +403,7 @@ void AudioMixer::find_sample_src_from_device(const map<DeviceSpec, vector<float>
 void AudioMixer::fill_audio_bus(const map<DeviceSpec, vector<float>> &samples_card, const InputMapping::Bus &bus, unsigned num_samples, float *output)
 {
        if (bus.device.type == InputSourceType::SILENCE) {
-               memset(output, 0, num_samples * sizeof(*output));
+               memset(output, 0, num_samples * 2 * sizeof(*output));
        } else {
                assert(bus.device.type == InputSourceType::CAPTURE_CARD ||
                       bus.device.type == InputSourceType::ALSA_INPUT);
@@ -987,6 +987,12 @@ InputMapping AudioMixer::get_input_mapping() const
        return input_mapping;
 }
 
+unsigned AudioMixer::num_buses() const
+{
+       lock_guard<timed_mutex> lock(audio_mutex);
+       return input_mapping.buses.size();
+}
+
 void AudioMixer::reset_peak(unsigned bus_index)
 {
        lock_guard<timed_mutex> lock(audio_mutex);