dv1394src: Fix internal clock

Fixes #593910.
This commit is contained in:
Andoni Morales Alastruey 2010-03-04 22:12:35 +01:00 committed by Tim-Philipp Müller
parent 073201b329
commit 63624f966e

View file

@ -124,10 +124,13 @@ gst_1394_clock_get_internal_time (GstClock * clock)
}
_1394clock->cycle_timer_lo = cycle_timer;
result = (((guint64) _1394clock->cycle_timer_hi) << 32) | cycle_timer;
result *= 40;
/* get the seconds from the cycleSeconds counter */
result = (((((guint64) _1394clock->cycle_timer_hi) << 32) |
cycle_timer) >> 25) * GST_SECOND;
/* add the microseconds from the cycleCount counter */
result += (((cycle_timer >> 13) & 0x1fff) * 125) * GST_USECOND;
GST_LOG_OBJECT (clock, "result %" G_GINT64_FORMAT, result);
GST_LOG_OBJECT (clock, "result %" GST_TIME_FORMAT, GST_TIME_ARGS (result));
} else {
result = GST_CLOCK_TIME_NONE;
}