diff --git a/gst/gstutils.c b/gst/gstutils.c index 9f6ffa6eba..867fd562ae 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -3422,6 +3422,13 @@ gst_util_fraction_multiply (gint a_n, gint a_d, gint b_n, gint b_d, g_return_val_if_fail (a_d != 0, FALSE); g_return_val_if_fail (b_d != 0, FALSE); + /* early out if either is 0, as its gcd would be 0 */ + if (a_n == 0 || b_n == 0) { + *res_n = 0; + *res_d = 1; + return TRUE; + } + gcd = gst_util_greatest_common_divisor (a_n, a_d); a_n /= gcd; a_d /= gcd;