Commit 3cfec4de authored by Olivier Crête's avatar Olivier Crête Committed by Wim Taymans

rtsprange: Avoid going through fractions for large numbers

If the number of seconds exceeds 2^31, then it will be truncated if the
conversion is done using fractions, so multiply it directly.
parent 203c27b4
......@@ -439,11 +439,17 @@ gst_rtsp_range_free (GstRTSPTimeRange * range)
static GstClockTime
get_seconds (const GstRTSPTime * t)
{
gint num, denom;
/* don't do direct multiply with GST_SECOND to avoid rounding
* errors */
gst_util_double_to_fraction (t->seconds, &num, &denom);
return gst_util_uint64_scale_int (GST_SECOND, num, denom);
if (t->seconds < G_MAXINT) {
gint num, denom;
/* Don't do direct multiply with GST_SECOND to avoid rounding
* errors.
* This only works for "small" numbers, because num is limited to 32-bit
*/
gst_util_double_to_fraction (t->seconds, &num, &denom);
return gst_util_uint64_scale_int (GST_SECOND, num, denom);
} else {
return t->seconds * GST_SECOND;
}
}
static GstClockTime
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment