Commit e58a00b2 authored by Wim Taymans's avatar Wim Taymans

mpegpsmux: fix timestamp handling

If the first buffer that we handle for a stream has no timestamp, we
would never consider this pad again for muxing which causes queues to
fill up and pipelines to stall. Instead, try to mux pads with -1
timestamps as soon as possible.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722330
parent 4e10667a
......@@ -456,21 +456,14 @@ mpegpsmux_choose_best_stream (MpegPsMux * mux)
ps_data->eos = TRUE;
continue;
}
/* Choose a stream we've never seen a timestamp for to ensure
* we push enough buffers from it to reach a timestamp */
if (ps_data->last_ts == GST_CLOCK_TIME_NONE) {
best = ps_data;
c_best = c_data;
}
}
/* If we don't yet have a best pad, take this one, otherwise take
* whichever has the oldest timestamp */
if (best != NULL) {
if (ps_data->last_ts != GST_CLOCK_TIME_NONE &&
best->last_ts != GST_CLOCK_TIME_NONE &&
ps_data->last_ts < best->last_ts) {
if (ps_data->last_ts == GST_CLOCK_TIME_NONE ||
(best->last_ts != GST_CLOCK_TIME_NONE &&
ps_data->last_ts < best->last_ts)) {
best = ps_data;
c_best = c_data;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment