From 2e8955df39c6b8375609f213a83eafe771d21734 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 21 Aug 2013 09:39:30 +0200 Subject: [PATCH] rtpgstpay: don't use clock for config interval We can't use the clock to time our config-interval because we are not live (or there might not be a clock or the clock might not be running). Instead just simply take the timestamp diff. --- gst/rtp/gstrtpgstpay.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c index 1804ac5..75f5cd7 100644 --- a/gst/rtp/gstrtpgstpay.c +++ b/gst/rtp/gstrtpgstpay.c @@ -562,24 +562,17 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, /* check if we need to send the caps and taglist now */ if (rtpgstpay->config_interval > 0) { - GstClock *clock = gst_element_get_clock (GST_ELEMENT (basepayload)); - GstClockTime now = GST_CLOCK_TIME_NONE; - - if (clock) { - now = gst_clock_get_time (clock); - gst_object_unref (clock); - } - GST_DEBUG_OBJECT (rtpgstpay, - "now %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT, - GST_TIME_ARGS (now), GST_TIME_ARGS (rtpgstpay->last_config)); - if (now != GST_CLOCK_TIME_NONE && + "timestamp %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp), GST_TIME_ARGS (rtpgstpay->last_config)); + + if (timestamp != GST_CLOCK_TIME_NONE && rtpgstpay->last_config != GST_CLOCK_TIME_NONE) { guint64 diff; /* calculate diff between last SPS/PPS in milliseconds */ - if (now > rtpgstpay->last_config) - diff = now - rtpgstpay->last_config; + if (timestamp > rtpgstpay->last_config) + diff = timestamp - rtpgstpay->last_config; else diff = 0; @@ -588,9 +581,9 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload, /* bigger than interval, queue SPS/PPS */ if (GST_TIME_AS_SECONDS (diff) >= rtpgstpay->config_interval) - gst_rtp_gst_pay_send_config (rtpgstpay, now); + gst_rtp_gst_pay_send_config (rtpgstpay, timestamp); } else { - gst_rtp_gst_pay_send_config (rtpgstpay, now); + gst_rtp_gst_pay_send_config (rtpgstpay, timestamp); } } -- 2.7.4