utilUint64ScaleIntRound

fnulong utilUint64ScaleIntRound(ulong val, int num, int denom)

Scale val by the rational number num / denom, avoiding overflows and underflows and without loss of precision. num must be non-negative and denom must be positive.

Parameters

valguint64 (such as a #GstClockTime) to scale.
numnumerator of the scale factor.
denomdenominator of the scale factor.

Returns

val * num / denom. In the case of an overflow, this

function returns G_MAXUINT64. If the result is not exactly representable as an integer, it is rounded to the nearest integer (half-way cases are rounded up). See also [gst.global.utilUint64ScaleInt], [gst.global.utilUint64ScaleIntCeil], [gst.global.utilUint64Scale], [gst.global.utilUint64ScaleRound], [gst.global.utilUint64ScaleCeil].