timespec: Add timespec_to_msec helper
Paralleling timespec_to_nsec, converts to milliseconds. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> [Pekka: added doc about flooring] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
committed by
Pekka Paalanen
parent
61f6d7d372
commit
37ad7e3bae
@@ -2388,7 +2388,7 @@ weston_output_finish_frame(struct weston_output *output,
|
|||||||
output->msc,
|
output->msc,
|
||||||
presented_flags);
|
presented_flags);
|
||||||
|
|
||||||
output->frame_time = stamp->tv_sec * 1000 + stamp->tv_nsec / 1000000;
|
output->frame_time = timespec_to_msec(stamp);
|
||||||
|
|
||||||
weston_compositor_read_presentation_clock(compositor, &now);
|
weston_compositor_read_presentation_clock(compositor, &now);
|
||||||
timespec_sub(&gone, &now, stamp);
|
timespec_sub(&gone, &now, stamp);
|
||||||
|
|||||||
@@ -93,6 +93,19 @@ timespec_to_nsec(const struct timespec *a)
|
|||||||
return (int64_t)a->tv_sec * NSEC_PER_SEC + a->tv_nsec;
|
return (int64_t)a->tv_sec * NSEC_PER_SEC + a->tv_nsec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Convert timespec to milliseconds
|
||||||
|
*
|
||||||
|
* \param a timespec
|
||||||
|
* \return milliseconds
|
||||||
|
*
|
||||||
|
* Rounding to integer milliseconds happens always down (floor()).
|
||||||
|
*/
|
||||||
|
static inline int64_t
|
||||||
|
timespec_to_msec(const struct timespec *a)
|
||||||
|
{
|
||||||
|
return (int64_t)a->tv_sec * 1000 + a->tv_nsec / 1000000;
|
||||||
|
}
|
||||||
|
|
||||||
/* Convert milli-Hertz to nanoseconds
|
/* Convert milli-Hertz to nanoseconds
|
||||||
*
|
*
|
||||||
* \param mhz frequency in mHz, not zero
|
* \param mhz frequency in mHz, not zero
|
||||||
|
|||||||
@@ -60,6 +60,15 @@ ZUC_TEST(timespec_test, timespec_to_nsec)
|
|||||||
ZUC_ASSERT_EQ(timespec_to_nsec(&a), (NSEC_PER_SEC * 4ULL) + 4);
|
ZUC_ASSERT_EQ(timespec_to_nsec(&a), (NSEC_PER_SEC * 4ULL) + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ZUC_TEST(timespec_test, timespec_to_msec)
|
||||||
|
{
|
||||||
|
struct timespec a;
|
||||||
|
|
||||||
|
a.tv_sec = 4;
|
||||||
|
a.tv_nsec = 4000000;
|
||||||
|
ZUC_ASSERT_EQ(timespec_to_msec(&a), (4000ULL) + 4);
|
||||||
|
}
|
||||||
|
|
||||||
ZUC_TEST(timespec_test, millihz_to_nsec)
|
ZUC_TEST(timespec_test, millihz_to_nsec)
|
||||||
{
|
{
|
||||||
ZUC_ASSERT_EQ(millihz_to_nsec(60000), 16666666);
|
ZUC_ASSERT_EQ(millihz_to_nsec(60000), 16666666);
|
||||||
|
|||||||
Reference in New Issue
Block a user