basesink: fix once-per-second 'emergency rendering' for case where all buffers but the very first are late

Due to a typo basesink didn't do any emergency rendering of late buffers
if the only buffer ever rendered was the first one with timestamp 0. This
means that in cases where the decoder is very very slow, we'd never see
any buffers but the very first one rendered. Fixes #576381.
This commit is contained in:
Tim-Philipp Müller 2009-03-23 12:34:34 +00:00
parent cf4387d1ef
commit 13f8041238

View file

@ -2232,7 +2232,7 @@ gst_base_sink_is_too_late (GstBaseSink * basesink, GstMiniObject * obj,
GST_TIME_ARGS (max_lateness)); GST_TIME_ARGS (max_lateness));
/* !!emergency!!, if we did not receive anything valid for more than a /* !!emergency!!, if we did not receive anything valid for more than a
* second, render it anyway so the user sees something */ * second, render it anyway so the user sees something */
if (priv->last_in_time && start - priv->last_in_time > GST_SECOND) { if (priv->last_in_time != -1 && start - priv->last_in_time > GST_SECOND) {
late = FALSE; late = FALSE;
GST_DEBUG_OBJECT (basesink, GST_DEBUG_OBJECT (basesink,
"**emergency** last buffer at %" GST_TIME_FORMAT " > GST_SECOND", "**emergency** last buffer at %" GST_TIME_FORMAT " > GST_SECOND",