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 <hiccup...@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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to