diff --git a/ChangeLog b/ChangeLog index 9dac74ffe3..dff49668c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-20 Wim Taymans + + * libs/gst/base/gstbasesink.c: (gst_base_sink_set_render_delay): + Changing the render delay changes the latency and so we must post a + latency message. + 2008-11-20 Wim Taymans * gst/gstquery.c: diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index f77c46c14d..7df01c51b7 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -1025,13 +1025,22 @@ gst_base_sink_query_latency (GstBaseSink * sink, gboolean * live, void gst_base_sink_set_render_delay (GstBaseSink * sink, GstClockTime delay) { + GstClockTime old_render_delay; + g_return_if_fail (GST_IS_BASE_SINK (sink)); GST_OBJECT_LOCK (sink); + old_render_delay = sink->priv->render_delay; sink->priv->render_delay = delay; GST_LOG_OBJECT (sink, "set render delay to %" GST_TIME_FORMAT, GST_TIME_ARGS (delay)); GST_OBJECT_UNLOCK (sink); + + if (delay != old_render_delay) { + GST_DEBUG_OBJECT (sink, "posting latency changed"); + gst_element_post_message (GST_ELEMENT_CAST (sink), + gst_message_new_latency (GST_OBJECT_CAST (sink))); + } } /**