From: Branko Čibej Date: Thu, 17 Dec 2009 16:37:03 +0000 (+0100) Subject: rganalysis: fix timestamp rounding X-Git-Tag: RELEASE-0.10.18~159 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b107f64f33108658f2883d74de3303c07f3a154;p=platform%2Fupstream%2Fgst-plugins-good.git rganalysis: fix timestamp rounding Use scaling function to round and avoid overflows. Fixes #604352 --- diff --git a/gst/replaygain/rganalysis.c b/gst/replaygain/rganalysis.c index 9787c68..2553536 100644 --- a/gst/replaygain/rganalysis.c +++ b/gst/replaygain/rganalysis.c @@ -710,9 +710,11 @@ rg_analysis_analyze (RgAnalysisCtx * ctx, const gfloat * samples_l, (gint) G_N_ELEMENTS (ctx->track.histogram) - 1); /* Compute the per-window gain */ const gdouble gain = PINK_REF - (gdouble) ival / STEPS_PER_DB; - const GstClockTime timestamp = (ctx->buffer_timestamp - + ctx->buffer_n_samples_done * GST_SECOND / ctx->sample_rate - - RMS_WINDOW_MSECS * GST_MSECOND); + const GstClockTime timestamp = ctx->buffer_timestamp + + gst_util_uint64_scale_int_ceil (GST_SECOND, + ctx->buffer_n_samples_done, + ctx->sample_rate) + - RMS_WINDOW_MSECS * GST_MSECOND; ctx->post_message (ctx->analysis, timestamp, RMS_WINDOW_MSECS * GST_MSECOND, -gain);