videoaggregator: fix gaps at end of streams.

When the pad has received EOS, its buffer may still be mixed
any number of times, when the pad's framerate is inferior
to the output framerate.

This was introduced by my patch in
https://bugzilla.gnome.org/show_bug.cgi?id=782962, this patch
also correctly addresses the initial issue.
This commit is contained in:
Mathieu Duponchelle 2017-04-11 01:18:51 +02:00
parent 1dc6f66310
commit 027a62a9d1

View file

@ -1219,16 +1219,16 @@ gst_video_aggregator_fill_queues (GstVideoAggregator * vagg,
if (pad->priv->end_time != -1) { if (pad->priv->end_time != -1) {
if (pad->priv->end_time <= output_start_running_time) { if (pad->priv->end_time <= output_start_running_time) {
pad->priv->start_time = pad->priv->end_time = -1; pad->priv->start_time = pad->priv->end_time = -1;
if (is_eos) { if (!is_eos) {
GST_DEBUG ("I just need more data"); GST_DEBUG ("I just need more data");
need_more_data = TRUE; need_more_data = TRUE;
} else {
gst_buffer_replace (&pad->buffer, NULL);
} }
} else if (is_eos) { } else if (is_eos) {
eos = FALSE; eos = FALSE;
} }
} } else if (is_eos) {
if (is_eos) {
gst_buffer_replace (&pad->buffer, NULL); gst_buffer_replace (&pad->buffer, NULL);
} }
} }