[FFmpeg-devel] [PATCH] avfilter/af_amix: fix amix decreased sound output
Shiqi Zhu
hiccupzhu at gmail.com
Wed Jun 12 13:10:16 EEST 2024
fix he issue of decreased sound output when one or more input of the amix settings is set to EOF.
Signed-off-by: Shiqi Zhu <hiccupzhu at gmail.com>
---
libavfilter/af_amix.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c
index ade4ef76a8..3ff85650a7 100644
--- a/libavfilter/af_amix.c
+++ b/libavfilter/af_amix.c
@@ -216,11 +216,11 @@ static void calculate_scales(MixContext *s, int nb_samples)
int i;
for (i = 0; i < s->nb_inputs; i++)
- if (s->input_state[i] & INPUT_ON)
+ if ((s->input_state[i] & INPUT_ON) && av_audio_fifo_size(s->fifos[i]) > 0)
weight_sum += FFABS(s->weights[i]);
for (i = 0; i < s->nb_inputs; i++) {
- if (s->input_state[i] & INPUT_ON) {
+ if ((s->input_state[i] & INPUT_ON) && av_audio_fifo_size(s->fifos[i]) > 0) {
if (s->scale_norm[i] > weight_sum / FFABS(s->weights[i])) {
s->scale_norm[i] -= ((s->weight_sum / FFABS(s->weights[i])) / s->nb_inputs) *
nb_samples / (s->dropout_transition * s->sample_rate);
@@ -230,7 +230,7 @@ static void calculate_scales(MixContext *s, int nb_samples)
}
for (i = 0; i < s->nb_inputs; i++) {
- if (s->input_state[i] & INPUT_ON) {
+ if ((s->input_state[i] & INPUT_ON) && av_audio_fifo_size(s->fifos[i]) > 0) {
if (!s->normalize)
s->input_scale[i] = FFABS(s->weights[i]);
else
--
2.34.1
More information about the ffmpeg-devel
mailing list