session: minor cleanups
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 26 Aug 2010 14:00:38 +0000 (16:00 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 6 Sep 2010 09:01:57 +0000 (11:01 +0200)
Make clock snapshots more accurate by only sampling the same clock once.

gst/rtpmanager/gstrtpsession.c

index 061302c..c56ac6d 100644 (file)
@@ -758,7 +758,7 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
 {
   guint64 ntpns;
   GstClock *clock;
-  GstClockTime base_time, rt;
+  GstClockTime base_time, rt, clock_time;
 
   GST_OBJECT_LOCK (rtpsession);
   if ((clock = GST_ELEMENT_CLOCK (rtpsession))) {
@@ -766,8 +766,10 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
     gst_object_ref (clock);
     GST_OBJECT_UNLOCK (rtpsession);
 
+    clock_time = gst_clock_get_time (clock);
+
     if (rtpsession->priv->use_pipeline_clock) {
-      ntpns = gst_clock_get_time (clock);
+      ntpns = clock_time;
     } else {
       GTimeVal current;
 
@@ -780,7 +782,7 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
     ntpns += (2208988800LL * GST_SECOND);
 
     /* get current clock time and convert to running time */
-    rt = gst_clock_get_time (clock) - base_time;
+    rt = clock_time - base_time;
 
     gst_object_unref (clock);
   } else {