diff options
author | Michael Giacomelli <giac2000@hotmail.com> | 2011-05-26 21:22:29 +0000 |
---|---|---|
committer | Michael Giacomelli <giac2000@hotmail.com> | 2011-05-26 21:22:29 +0000 |
commit | 0497adffcf18e700215ce47f86eca0307a60bffc (patch) | |
tree | e757bd83373786f61addfdd5f4000a0e2d447ab4 /apps/codecs | |
parent | 79dd27de82f5620b3052eeed11cb874c3e82c94c (diff) | |
download | rockbox-0497adffcf18e700215ce47f86eca0307a60bffc.tar.gz rockbox-0497adffcf18e700215ce47f86eca0307a60bffc.zip |
Commit FS#12130 - Fix ADX decoding on 64-bit systems by Sean Bartell. Fixes an incorrect assumption in the ADX decoder that sizeof(int) == 32 when performing fixed point math. Update comments in the fixed point library to correct this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29927 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs')
-rw-r--r-- | apps/codecs/adx.c | 2 | ||||
-rw-r--r-- | apps/codecs/lib/fixedpoint.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/apps/codecs/adx.c b/apps/codecs/adx.c index a1b57fce58..e75e7dca1e 100644 --- a/apps/codecs/adx.c +++ b/apps/codecs/adx.c | |||
@@ -129,7 +129,7 @@ enum codec_status codec_run(void) | |||
129 | 129 | ||
130 | fp_sincos((unsigned long)phasemultiple,&z); | 130 | fp_sincos((unsigned long)phasemultiple,&z); |
131 | 131 | ||
132 | a = (M_SQRT2*big28)-(z*big28/LONG_MAX); | 132 | a = (M_SQRT2*big28) - (z >> 3); |
133 | 133 | ||
134 | /** | 134 | /** |
135 | * In the long passed to fsqrt there are only 4 nonfractional bits, | 135 | * In the long passed to fsqrt there are only 4 nonfractional bits, |
diff --git a/apps/codecs/lib/fixedpoint.h b/apps/codecs/lib/fixedpoint.h index b912cbe66b..1cbd1573bb 100644 --- a/apps/codecs/lib/fixedpoint.h +++ b/apps/codecs/lib/fixedpoint.h | |||
@@ -33,7 +33,7 @@ | |||
33 | * where phase is a 32 bit unsigned integer with 0 representing 0 | 33 | * where phase is a 32 bit unsigned integer with 0 representing 0 |
34 | * and 0xFFFFFFFF representing 2*pi, and *cos is the address to | 34 | * and 0xFFFFFFFF representing 2*pi, and *cos is the address to |
35 | * a long signed integer. Value returned is a long signed integer | 35 | * a long signed integer. Value returned is a long signed integer |
36 | * from LONG_MIN to LONG_MAX, representing -1 to 1 respectively. | 36 | * from -0x80000000 to 0x7fffffff, representing -1 to 1 respectively. |
37 | * That is, value is a fixed point integer with 31 fractional bits. | 37 | * That is, value is a fixed point integer with 31 fractional bits. |
38 | * | 38 | * |
39 | * Take square root of a fixed point number: | 39 | * Take square root of a fixed point number: |