From fc30337a99da84f44b8efd25e58ea8654292a73c Mon Sep 17 00:00:00 2001
From: Michael Smith <msmith@xiph.org>
Date: Fri, 2 Jun 2006 14:19:18 +0000
Subject: [PATCH] gst/audioconvert/audioconvert.c: More correct float->int
 conversion.

Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float):
More correct float->int conversion.
---
 ChangeLog                       | 5 +++++
 gst/audioconvert/audioconvert.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cbac7143d4..55e574202c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-02  Michael Smith  <msmith@fluendo.com>
+
+	* gst/audioconvert/audioconvert.c: (float):
+	  More correct float->int conversion.
+
 2006-06-02  Michael Smith  <msmith@fluendo.com>
 
 	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_perform_seek):
diff --git a/gst/audioconvert/audioconvert.c b/gst/audioconvert/audioconvert.c
index d689592742..5a78ca56ab 100644
--- a/gst/audioconvert/audioconvert.c
+++ b/gst/audioconvert/audioconvert.c
@@ -58,10 +58,10 @@ MAKE_UNPACK_FUNC_NAME (float) (gpointer src, gint32 * dst,
     gint scale, gint count)
 {
   gfloat *p = (gfloat *) src;
-  gint64 temp;
+  gdouble temp;
 
   for (; count; count--) {
-    temp = *p++ * 2147483647.0f;
+    temp = (*p++ * 2147483647.0) + 0.5;
     *dst++ = (gint32) CLAMP (temp, G_MININT32, G_MAXINT32);
   }
 }