diff --git a/ChangeLog b/ChangeLog index ef6654dee0..693820479d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2005-11-19 Andy Wingo + * 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. diff --git a/gst/gstclock.c b/gst/gstclock.c index 7da6bdb53d..ad9dbdc036 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -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); @@ -692,76 +692,6 @@ gst_clock_get_time (GstClock * clock) return ret; } -/** - * 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 @@ -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); } diff --git a/gst/gstclock.h b/gst/gstclock.h index fa2280758c..8827a434b5 100644 --- a/gst/gstclock.h +++ b/gst/gstclock.h @@ -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);