gst/gstclock.h (GstClock): Remove offset property. Add internal_calibration and exter...
authorAndy Wingo <wingo@pobox.com>
Sat, 19 Nov 2005 18:06:56 +0000 (18:06 +0000)
committerAndy Wingo <wingo@pobox.com>
Sat, 19 Nov 2005 18:06:56 +0000 (18:06 +0000)
Original commit message from CVS:
2005-11-19  Andy Wingo  <wingo@pobox.com>

* gst/gstclock.h (GstClock): Remove offset property. Add
internal_calibration and external_calibration. Fix padding. Pad
also by GstClockTime so we don't run into problems.

* gst/gstclock.c (gst_clock_set_rate_offset): Remove.
(gst_clock_get_rate_offset): Remove.
(gst_clock_set_time_adjust): Remove. Fixes #321712.

ChangeLog
gst/gstclock.c
gst/gstclock.h

index ef6654d..6938204 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2005-11-19  Andy Wingo  <wingo@pobox.com>
 
+       * gst/gstclock.h (GstClock): Remove offset property. Add
+       internal_calibration and external_calibration. Fix padding. Pad
+       also by GstClockTime so we don't run into problems.
+
+       * gst/gstclock.c (gst_clock_set_rate_offset): Remove.
+       (gst_clock_get_rate_offset): Remove.
+       (gst_clock_set_time_adjust): Remove. Fixes #321712.
+
        * gst/gstutils.h:
        * gst/gstutils.c (g_static_rec_cond_wait)
        (g_static_rec_cond_timed_wait): Removed, no longer needed.
index 7da6bdb..ad9dbdc 100644 (file)
@@ -526,15 +526,15 @@ gst_clock_class_init (GstClockClass * klass)
 static void
 gst_clock_init (GstClock * clock)
 {
-  clock->adjust = 0;
   clock->last_time = 0;
   clock->entries = NULL;
   clock->entries_changed = g_cond_new ();
   clock->flags = 0;
   clock->stats = FALSE;
 
-  clock->A.rate = 1.0;
-  clock->A.offset = 0;
+  clock->internal_calibration = 0;
+  clock->external_calibration = 0;
+  clock->rate = 1.0;
 }
 
 static void
@@ -617,8 +617,8 @@ gst_clock_adjust_unlocked (GstClock * clock, GstClockTime internal)
 {
   GstClockTime ret;
 
-  ret = (internal - clock->adjust) * clock->A.rate;
-  ret += clock->A.offset;
+  ret = (internal - clock->internal_calibration) * clock->rate;
+  ret += clock->external_calibration;
 
   /* make sure the time is increasing */
   clock->last_time = MAX (ret, clock->last_time);
@@ -693,76 +693,6 @@ gst_clock_get_time (GstClock * clock)
 }
 
 /**
- * gst_clock_set_time_adjust
- * @clock: a #GstClock to adjust
- * @adjust: the new time
- *
- * Adjusts the time of @clock. This function is buggy and is scheduled to die.
- *
- * Obsolete, do not use.
- *
- * MT safe.
- */
-void
-gst_clock_set_time_adjust (GstClock * clock, GstClockTime adjust)
-{
-  g_return_if_fail (GST_IS_CLOCK (clock));
-
-  GST_LOCK (clock);
-  clock->adjust = adjust;
-  GST_UNLOCK (clock);
-}
-
-/**
- * gst_clock_set_rate_offset
- * @clock: a #GstClock to adjust
- * @rate: the new rate
- * @offset: the "initial" offset of @clock relative to its internal time
- *
- * Adjusts the internal rate and offset of @clock. Obsolete, do not use.
- *
- * Obsolete, do not use.
- *
- * MT safe.
- */
-void
-gst_clock_set_rate_offset (GstClock * clock, gdouble rate,
-    GstClockTimeDiff offset)
-{
-  g_return_if_fail (GST_IS_CLOCK (clock));
-  g_return_if_fail (rate > 0.0);
-
-  GST_LOCK (clock);
-  clock->A.rate = rate;
-  clock->A.offset = offset;
-  GST_UNLOCK (clock);
-}
-
-/**
- * gst_clock_get_rate_offset
- * @clock: a #GstClock to adjust
- * @rate: a location to store the rate
- * @offset: a location to store the offset
- *
- * Obsolete, do not use.
- *
- * MT safe.
- */
-void
-gst_clock_get_rate_offset (GstClock * clock, gdouble * rate,
-    GstClockTimeDiff * offset)
-{
-  g_return_if_fail (GST_IS_CLOCK (clock));
-  g_return_if_fail (rate != NULL);
-  g_return_if_fail (offset != NULL);
-
-  GST_LOCK (clock);
-  *rate = clock->A.rate;
-  *offset = clock->A.offset;
-  GST_UNLOCK (clock);
-}
-
-/**
  * gst_clock_set_calibration
  * @clock: a #GstClock to calibrate
  * @internal: a reference internal time
@@ -800,11 +730,9 @@ gst_clock_set_calibration (GstClock * clock, GstClockTime internal, GstClockTime
   g_return_if_fail (internal <= gst_clock_get_internal_time (clock));
 
   GST_LOCK (clock);
-  /* these need to be reworked for the api freeze break, we're really abusing
-   * them now */
-  clock->adjust = internal;
-  clock->A.rate = rate;
-  clock->A.offset = external;
+  clock->internal_calibration = internal;
+  clock->external_calibration = external;
+  clock->rate = rate;
   GST_UNLOCK (clock);
 }
 
@@ -831,11 +759,11 @@ gst_clock_get_calibration (GstClock * clock, GstClockTime * internal,
 
   GST_LOCK (clock);
   if (rate)
-    *rate = clock->A.rate;
+    *rate = clock->rate;
   if (external)
-    *external = clock->A.offset;
+    *external = clock->external_calibration;
   if (internal)
-    *internal = clock->adjust;
+    *internal = clock->internal_calibration;
   GST_UNLOCK (clock);
 }
 
index fa22807..8827a43 100644 (file)
@@ -373,7 +373,9 @@ struct _GstClock {
   GstClockFlags         flags;
 
   /*< protected >*/ /* with LOCK */
-  GstClockTime  adjust; /* rename me... */
+  GstClockTime  internal_calibration; 
+  GstClockTime  external_calibration;
+  gdouble       rate;
   GstClockTime  last_time;
   GList                *entries;
   GCond                *entries_changed;
@@ -382,15 +384,7 @@ struct _GstClock {
   guint64       resolution;
   gboolean      stats;
 
-  union {
-    struct {
-      /* should be moved to protected -- note the padding is finished now, on 32
-       * bit machines at least */
-      gdouble   rate;
-      GstClockTime offset;
-    } A;
-    gpointer _gst_reserved[GST_PADDING-1+1];
-  };
+  GstClockTime  _gst_reserved[GST_PADDING];
 };
 
 struct _GstClockClass {
@@ -419,18 +413,11 @@ guint64                   gst_clock_set_resolution        (GstClock *clock, guint64 resolution);
 guint64                        gst_clock_get_resolution        (GstClock *clock);
 
 GstClockTime           gst_clock_get_time              (GstClock *clock);
-void                   gst_clock_set_rate_offset       (GstClock *clock, gdouble rate,
-                                                         GstClockTimeDiff offset);
-void                   gst_clock_get_rate_offset       (GstClock *clock, gdouble *rate,
-                                                         GstClockTimeDiff *offset);
 void                   gst_clock_set_calibration       (GstClock *clock, GstClockTime internal,
                                                          GstClockTime external, gdouble rate);
 void                   gst_clock_get_calibration       (GstClock *clock, GstClockTime *internal,
                                                          GstClockTime *external, gdouble *rate);
 
-/* remove me */
-void                   gst_clock_set_time_adjust       (GstClock *clock, GstClockTime adjust);
-
 GstClockTime           gst_clock_get_internal_time     (GstClock *clock);
 GstClockTime           gst_clock_adjust_unlocked       (GstClock *clock, GstClockTime internal);