]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
ast_samp2tv needs floating point for 16khz audio
authorDavid Vossel <dvossel@digium.com>
Wed, 8 Jul 2009 16:53:40 +0000 (16:53 +0000)
committerDavid Vossel <dvossel@digium.com>
Wed, 8 Jul 2009 16:53:40 +0000 (16:53 +0000)
In ast_samp2tv(), (1000000 / _rate) = 62.5 when _rate is 16000.
The .5 is currently stripped off because we don't calculate
using floating points.  This causes madness with 16khz audio.

(issue ABE-1899)

Review: https://reviewboard.asterisk.org/r/305/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@205215 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/time.h

index 92a5346a5a8bfaf1e552080e02b7e7896c871e9a..306ea7ffb0f1add2a1d648d1161cbc796ac1c28a 100644 (file)
@@ -137,7 +137,7 @@ struct timeval ast_tv(ast_time_t sec, ast_suseconds_t usec),
 AST_INLINE_API(
 struct timeval ast_samp2tv(unsigned int _nsamp, unsigned int _rate),
 {
-       return ast_tv(_nsamp / _rate, (_nsamp % _rate) * (1000000 / _rate));
+       return ast_tv(_nsamp / _rate, (_nsamp % _rate) * (1000000 / (float) _rate));
 }
 )