mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-20 10:09:15 +00:00
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
This commit is contained in:
parent
3c68196c5c
commit
20db7649aa
|
@ -147,17 +147,16 @@ static inline void do_audio_output(struct audio_output *audio,
|
||||||
struct audio_mix *mix = &audio->mixes[mix_idx];
|
struct audio_mix *mix = &audio->mixes[mix_idx];
|
||||||
struct audio_data data;
|
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);
|
pthread_mutex_lock(&audio->input_mutex);
|
||||||
|
|
||||||
for (size_t i = mix->inputs.num; i > 0; i--) {
|
for (size_t i = mix->inputs.num; i > 0; i--) {
|
||||||
struct audio_input *input = mix->inputs.array+(i-1);
|
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))
|
if (resample_audio_output(input, &data))
|
||||||
input->callback(input->param, mix_idx, &data);
|
input->callback(input->param, mix_idx, &data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue