mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 20:42:30 +00:00
videoaggregator: fix up QoS handling for live sources
Only attempt adaptive drop when we are not live https://bugzilla.gnome.org/show_bug.cgi?id=739996
This commit is contained in:
parent
051955e5fa
commit
f4a10c64c8
1 changed files with 5 additions and 1 deletions
|
@ -749,15 +749,19 @@ static void
|
||||||
gst_videoaggregator_update_qos (GstVideoAggregator * vagg, gdouble proportion,
|
gst_videoaggregator_update_qos (GstVideoAggregator * vagg, gdouble proportion,
|
||||||
GstClockTimeDiff diff, GstClockTime timestamp)
|
GstClockTimeDiff diff, GstClockTime timestamp)
|
||||||
{
|
{
|
||||||
|
gboolean live;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (vagg,
|
GST_DEBUG_OBJECT (vagg,
|
||||||
"Updating QoS: proportion %lf, diff %s%" GST_TIME_FORMAT ", timestamp %"
|
"Updating QoS: proportion %lf, diff %s%" GST_TIME_FORMAT ", timestamp %"
|
||||||
GST_TIME_FORMAT, proportion, (diff < 0) ? "-" : "",
|
GST_TIME_FORMAT, proportion, (diff < 0) ? "-" : "",
|
||||||
GST_TIME_ARGS (ABS (diff)), GST_TIME_ARGS (timestamp));
|
GST_TIME_ARGS (ABS (diff)), GST_TIME_ARGS (timestamp));
|
||||||
|
|
||||||
GST_OBJECT_LOCK (vagg);
|
GST_OBJECT_LOCK (vagg);
|
||||||
|
gst_aggregator_get_latency (GST_AGGREGATOR (vagg), &live, NULL, NULL);
|
||||||
|
|
||||||
vagg->priv->proportion = proportion;
|
vagg->priv->proportion = proportion;
|
||||||
if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {
|
if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {
|
||||||
if (G_UNLIKELY (diff > 0))
|
if (!live && G_UNLIKELY (diff > 0))
|
||||||
vagg->priv->earliest_time =
|
vagg->priv->earliest_time =
|
||||||
timestamp + 2 * diff + gst_util_uint64_scale_int_round (GST_SECOND,
|
timestamp + 2 * diff + gst_util_uint64_scale_int_round (GST_SECOND,
|
||||||
GST_VIDEO_INFO_FPS_D (&vagg->info),
|
GST_VIDEO_INFO_FPS_D (&vagg->info),
|
||||||
|
|
Loading…
Reference in a new issue