From: Wim Taymans Date: Thu, 24 Nov 2005 18:03:15 +0000 (+0000) Subject: gst/gstutils.c: Chain trivial case to _scale_int. X-Git-Tag: RELEASE-0_9_7~125 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ceca6153b269d3e4e490392804bb27f2f49ac1c;p=platform%2Fupstream%2Fgstreamer.git gst/gstutils.c: Chain trivial case to _scale_int. Original commit message from CVS: * gst/gstutils.c: (gst_util_uint64_scale), (gst_util_uint64_scale_int): Chain trivial case to _scale_int. --- diff --git a/ChangeLog b/ChangeLog index 8fe32c9..d827f31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2005-11-24 Wim Taymans + * gst/gstutils.c: (gst_util_uint64_scale), + (gst_util_uint64_scale_int): + Chain trivial case to _scale_int. + +2005-11-24 Wim Taymans + * check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite): Added test for scaling. diff --git a/gst/gstutils.c b/gst/gstutils.c index d955719..7944006 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -369,9 +369,19 @@ typedef union guint64 gst_util_uint64_scale (guint64 val, guint64 num, guint64 denom) { - /* implement me with fixed point, if you care */ - return gst_gdouble_to_guint64 (gst_guint64_to_gdouble (val) * - ((gst_guint64_to_gdouble (num)) / gst_guint64_to_gdouble (denom))); + guint64 result; + + g_return_val_if_fail (denom != 0, G_MAXUINT64); + + if (num <= G_MAXINT32 && denom <= G_MAXINT32) { + result = gst_util_uint64_scale_int (val, (gint) num, (gint) denom); + } else { + /* implement me with fixed point, if you care */ + result = gst_gdouble_to_guint64 (gst_guint64_to_gdouble (val) * + ((gst_guint64_to_gdouble (num)) / gst_guint64_to_gdouble (denom))); + } + + return result; } /**