mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-02 02:03:54 +00:00
sink: Only add processing latency if upstream is live
Only add it if upstream is live, otherwise leave the latency at 0. https://bugzilla.gnome.org/show_bug.cgi?id=640610
This commit is contained in:
parent
f79b871a6a
commit
4f3aea316a
1 changed files with 18 additions and 16 deletions
|
@ -1201,28 +1201,30 @@ gst_base_sink_query_latency (GstBaseSink * sink, gboolean * live,
|
||||||
* values to create the complete latency. */
|
* values to create the complete latency. */
|
||||||
min = us_min;
|
min = us_min;
|
||||||
max = us_max;
|
max = us_max;
|
||||||
|
|
||||||
|
if (l) {
|
||||||
|
if (max == -1 || min + processing_deadline <= max)
|
||||||
|
min += processing_deadline;
|
||||||
|
else {
|
||||||
|
GST_ELEMENT_WARNING (sink, CORE, CLOCK,
|
||||||
|
(_("Pipeline construction is invalid, please add queues.")),
|
||||||
|
("Not enough buffering available for "
|
||||||
|
" the processing deadline of %" GST_TIME_FORMAT
|
||||||
|
", add enough queues to buffer %" GST_TIME_FORMAT
|
||||||
|
" additional data. Shortening processing latency to %"
|
||||||
|
GST_TIME_FORMAT ".",
|
||||||
|
GST_TIME_ARGS (processing_deadline),
|
||||||
|
GST_TIME_ARGS (min + processing_deadline - max),
|
||||||
|
GST_TIME_ARGS (max - min)));
|
||||||
|
min = max;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (l) {
|
if (l) {
|
||||||
/* we need to add the render delay if we are live */
|
/* we need to add the render delay if we are live */
|
||||||
min += render_delay;
|
min += render_delay;
|
||||||
if (max != -1)
|
if (max != -1)
|
||||||
max += render_delay;
|
max += render_delay;
|
||||||
|
|
||||||
if (max == -1 || min + processing_deadline <= max)
|
|
||||||
min += processing_deadline;
|
|
||||||
else {
|
|
||||||
GST_ELEMENT_WARNING (sink, CORE, CLOCK,
|
|
||||||
(_("Pipeline construction is invalid, please add queues.")),
|
|
||||||
("Not enough buffering available for "
|
|
||||||
" the processing deadline of %" GST_TIME_FORMAT
|
|
||||||
", add enough queues to buffer %" GST_TIME_FORMAT
|
|
||||||
" additional data. Shortening processing latency to %"
|
|
||||||
GST_TIME_FORMAT ".",
|
|
||||||
GST_TIME_ARGS (processing_deadline),
|
|
||||||
GST_TIME_ARGS (min + processing_deadline - max),
|
|
||||||
GST_TIME_ARGS (max - min)));
|
|
||||||
min = max;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gst_query_unref (query);
|
gst_query_unref (query);
|
||||||
|
|
Loading…
Reference in a new issue