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.
This commit is contained in:
Wim Taymans 2013-08-21 09:39:30 +02:00
parent 182f96ff79
commit 2e8955df39

View file

@ -562,24 +562,17 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
/* check if we need to send the caps and taglist now */ /* check if we need to send the caps and taglist now */
if (rtpgstpay->config_interval > 0) { 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, GST_DEBUG_OBJECT (rtpgstpay,
"now %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT, "timestamp %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT,
GST_TIME_ARGS (now), GST_TIME_ARGS (rtpgstpay->last_config)); GST_TIME_ARGS (timestamp), GST_TIME_ARGS (rtpgstpay->last_config));
if (now != GST_CLOCK_TIME_NONE &&
if (timestamp != GST_CLOCK_TIME_NONE &&
rtpgstpay->last_config != GST_CLOCK_TIME_NONE) { rtpgstpay->last_config != GST_CLOCK_TIME_NONE) {
guint64 diff; guint64 diff;
/* calculate diff between last SPS/PPS in milliseconds */ /* calculate diff between last SPS/PPS in milliseconds */
if (now > rtpgstpay->last_config) if (timestamp > rtpgstpay->last_config)
diff = now - rtpgstpay->last_config; diff = timestamp - rtpgstpay->last_config;
else else
diff = 0; diff = 0;
@ -588,9 +581,9 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
/* bigger than interval, queue SPS/PPS */ /* bigger than interval, queue SPS/PPS */
if (GST_TIME_AS_SECONDS (diff) >= rtpgstpay->config_interval) 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 { } else {
gst_rtp_gst_pay_send_config (rtpgstpay, now); gst_rtp_gst_pay_send_config (rtpgstpay, timestamp);
} }
} }