From 85f45a3ef6bbb6ca54310dc9599a86f0f7dde4b0 Mon Sep 17 00:00:00 2001 From: Norihiro Kamae Date: Tue, 12 Oct 2021 09:37:09 +0900 Subject: [PATCH] libobs/audio-monitoring: Fix PulseAudio monitoring volume for u8 format Change `char` to `uint8_t` in `process_byte` because the type is expected unsigned 8-bit. --- libobs/audio-monitoring/pulse/pulseaudio-output.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libobs/audio-monitoring/pulse/pulseaudio-output.c b/libobs/audio-monitoring/pulse/pulseaudio-output.c index 788b579a4..4346c22d4 100644 --- a/libobs/audio-monitoring/pulse/pulseaudio-output.c +++ b/libobs/audio-monitoring/pulse/pulseaudio-output.c @@ -126,11 +126,11 @@ static pa_channel_map pulseaudio_channel_map(enum speaker_layout layout) static void process_byte(void *p, size_t frames, size_t channels, float vol) { - register char *cur = (char *)p; - register char *end = cur + frames * channels; + register uint8_t *cur = (uint8_t *)p; + register uint8_t *end = cur + frames * channels; - while (cur < end) - *(cur++) *= vol; + for (; cur < end; cur++) + *cur = ((int)*cur - 128) * vol + 128; } static void process_s16(void *p, size_t frames, size_t channels, float vol)