audiomixer: We're only EOS if all our pads are actually EOS
authorSebastian Dröge <sebastian@centricular.com>
Thu, 18 Dec 2014 22:33:58 +0000 (23:33 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 18 Dec 2014 22:33:58 +0000 (23:33 +0100)
Having a buffer or not on the pad is irrelevant.

gst/audiomixer/gstaudiomixer.c

index e219132..0e8c306 100644 (file)
@@ -1430,6 +1430,9 @@ gst_audiomixer_aggregate (GstAggregator * agg, gboolean timeout)
     GstAudioMixerPad *pad = GST_AUDIO_MIXER_PAD (iter->data);
     GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (iter->data);
 
+    if (!GST_AGGREGATOR_PAD (pad)->eos)
+      is_eos = FALSE;
+
     inbuf = gst_aggregator_pad_get_buffer (aggpad);
     if (!inbuf)
       continue;
@@ -1450,8 +1453,6 @@ gst_audiomixer_aggregate (GstAggregator * agg, gboolean timeout)
     if (!pad->buffer && !dropped && GST_AGGREGATOR_PAD (pad)->eos) {
       GST_DEBUG_OBJECT (aggpad, "Pad is in EOS state");
       continue;
-    } else {
-      is_eos = FALSE;
     }
 
     g_assert (pad->buffer);