From 20db7649aad04cb7431e14ce4bbfc9dd62340159 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 27 Dec 2015 11:19:36 -0800 Subject: [PATCH] libobs/media-io: Reset audio array for each input The audio data would get overwritten and become invalid if there was more than one input --- libobs/media-io/audio-io.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libobs/media-io/audio-io.c b/libobs/media-io/audio-io.c index c91c778a2..f4dfdd3db 100644 --- a/libobs/media-io/audio-io.c +++ b/libobs/media-io/audio-io.c @@ -147,17 +147,16 @@ static inline void do_audio_output(struct audio_output *audio, struct audio_mix *mix = &audio->mixes[mix_idx]; struct audio_data data; - for (size_t i = 0; i < audio->planes; i++) - data.data[i] = (uint8_t*)mix->buffer[i]; - - data.frames = frames; - data.timestamp = timestamp; - pthread_mutex_lock(&audio->input_mutex); for (size_t i = mix->inputs.num; i > 0; i--) { struct audio_input *input = mix->inputs.array+(i-1); + for (size_t i = 0; i < audio->planes; i++) + data.data[i] = (uint8_t*)mix->buffer[i]; + data.frames = frames; + data.timestamp = timestamp; + if (resample_audio_output(input, &data)) input->callback(input->param, mix_idx, &data); }