audiomixer: We're only EOS if all our pads are actually EOS

Having a buffer or not on the pad is irrelevant.
This commit is contained in:
Sebastian Dröge 2014-12-18 23:33:58 +01:00
parent 0d38b2212c
commit 654d201375

View file

@ -1430,6 +1430,9 @@ gst_audiomixer_aggregate (GstAggregator * agg, gboolean timeout)
GstAudioMixerPad *pad = GST_AUDIO_MIXER_PAD (iter->data); GstAudioMixerPad *pad = GST_AUDIO_MIXER_PAD (iter->data);
GstAggregatorPad *aggpad = GST_AGGREGATOR_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); inbuf = gst_aggregator_pad_get_buffer (aggpad);
if (!inbuf) if (!inbuf)
continue; continue;
@ -1450,8 +1453,6 @@ gst_audiomixer_aggregate (GstAggregator * agg, gboolean timeout)
if (!pad->buffer && !dropped && GST_AGGREGATOR_PAD (pad)->eos) { if (!pad->buffer && !dropped && GST_AGGREGATOR_PAD (pad)->eos) {
GST_DEBUG_OBJECT (aggpad, "Pad is in EOS state"); GST_DEBUG_OBJECT (aggpad, "Pad is in EOS state");
continue; continue;
} else {
is_eos = FALSE;
} }
g_assert (pad->buffer); g_assert (pad->buffer);