videomixer: 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
8aa2630068
commit
0053ad0847
@ -808,7 +808,7 @@ gst_videomixer2_update_qos (GstVideoMixer2 * mix, gdouble proportion,
|
|||||||
GST_OBJECT_LOCK (mix);
|
GST_OBJECT_LOCK (mix);
|
||||||
mix->proportion = proportion;
|
mix->proportion = proportion;
|
||||||
if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {
|
if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) {
|
||||||
if (G_UNLIKELY (diff > 0))
|
if (!mix->live && G_UNLIKELY (diff > 0))
|
||||||
mix->earliest_time =
|
mix->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 (&mix->info), GST_VIDEO_INFO_FPS_N (&mix->info));
|
GST_VIDEO_INFO_FPS_D (&mix->info), GST_VIDEO_INFO_FPS_N (&mix->info));
|
||||||
@ -1503,6 +1503,8 @@ gst_videomixer2_query_latency (GstVideoMixer2 * mix, GstQuery * query)
|
|||||||
g_value_unset (&item);
|
g_value_unset (&item);
|
||||||
gst_iterator_free (it);
|
gst_iterator_free (it);
|
||||||
|
|
||||||
|
mix->live = live;
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
/* store the results */
|
/* store the results */
|
||||||
GST_DEBUG_OBJECT (mix, "Calculated total latency: live %s, min %"
|
GST_DEBUG_OBJECT (mix, "Calculated total latency: live %s, min %"
|
||||||
|
@ -116,6 +116,9 @@ struct _GstVideoMixer2
|
|||||||
|
|
||||||
gboolean send_stream_start;
|
gboolean send_stream_start;
|
||||||
|
|
||||||
|
/* latency */
|
||||||
|
gboolean live;
|
||||||
|
|
||||||
GstTagList *pending_tags;
|
GstTagList *pending_tags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user