mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +00:00
clock: assert about timestamp overflows
Assert when converting to timeval and timespec about overflows. This can happen on platforms with 32bits long. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=678181
This commit is contained in:
parent
df18a3e148
commit
fb874e2104
1 changed files with 6 additions and 2 deletions
|
@ -183,6 +183,8 @@ typedef gpointer GstClockID;
|
|||
*/
|
||||
#define GST_TIME_TO_TIMEVAL(t,tv) \
|
||||
G_STMT_START { \
|
||||
g_assert ("Value of time " #t " is out of timeval's range" && \
|
||||
((t) / GST_SECOND) < G_MAXLONG); \
|
||||
(tv).tv_sec = (glong) (((GstClockTime) (t)) / GST_SECOND); \
|
||||
(tv).tv_usec = (glong) ((((GstClockTime) (t)) - \
|
||||
((GstClockTime) (tv).tv_sec) * GST_SECOND) \
|
||||
|
@ -203,8 +205,10 @@ G_STMT_START { \
|
|||
*
|
||||
* Convert a #GstClockTime to a struct timespec (see man pselect)
|
||||
*/
|
||||
#define GST_TIME_TO_TIMESPEC(t,ts) \
|
||||
G_STMT_START { \
|
||||
#define GST_TIME_TO_TIMESPEC(t,ts) \
|
||||
G_STMT_START { \
|
||||
g_assert ("Value of time " #t " is out of timespec's range" && \
|
||||
((t) / GST_SECOND) < G_MAXLONG); \
|
||||
(ts).tv_sec = (glong) ((t) / GST_SECOND); \
|
||||
(ts).tv_nsec = (glong) (((t) - (ts).tv_sec * GST_SECOND) / GST_NSECOND); \
|
||||
} G_STMT_END
|
||||
|
|
Loading…
Reference in a new issue