summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorMarcus von Appen <mva@FreeBSD.org>2013-05-23 06:05:32 +0000
committerMarcus von Appen <mva@FreeBSD.org>2013-05-23 06:05:32 +0000
commit04e72495dabe64889f549401f993771625eb5719 (patch)
tree48a1bd844cd1ec25fd53a7c559a8f67a85c6c41a /audio
parentupdate zpaq to 6.28 (diff)
- Fix a sound distortion issue for the OSS backend
PR: ports/178343 Submitted by: Yamagi Burmeister <yamagi@yamagi.org>
Notes
Notes: svn path=/head/; revision=318843
Diffstat (limited to 'audio')
-rw-r--r--audio/openal-soft/Makefile1
-rw-r--r--audio/openal-soft/files/patch-Alc-ALu.c37
2 files changed, 38 insertions, 0 deletions
diff --git a/audio/openal-soft/Makefile b/audio/openal-soft/Makefile
index 13bb0a13910d..6a55639cc575 100644
--- a/audio/openal-soft/Makefile
+++ b/audio/openal-soft/Makefile
@@ -2,6 +2,7 @@
PORTNAME= openal-soft
PORTVERSION= 1.15.1
+PORTREVISION= 1
CATEGORIES= audio
MASTER_SITES= http://kcat.strangesoft.net/openal-releases/
diff --git a/audio/openal-soft/files/patch-Alc-ALu.c b/audio/openal-soft/files/patch-Alc-ALu.c
new file mode 100644
index 000000000000..5e673f703562
--- /dev/null
+++ b/audio/openal-soft/files/patch-Alc-ALu.c
@@ -0,0 +1,37 @@
+--- Alc/ALu.c.orig 2013-05-23 08:00:01.000000000 +0200
++++ Alc/ALu.c 2013-05-23 08:01:20.000000000 +0200
+@@ -912,24 +912,27 @@
+ }
+
+
+-static __inline ALfloat aluF2F(ALfloat val)
+-{ return val; }
+-static __inline ALint aluF2I(ALfloat val)
++static __inline ALint aluF2I25(ALfloat val)
+ {
+ /* Clamp the value between -1 and +1. This handles that without branching. */
+ val = val+1.0f - fabsf(val-1.0f);
+ val = (val-2.0f + fabsf(val+2.0f)) * 0.25f;
+- /* Convert to a signed integer, between -2147483647 and +2147483647. */
+- return fastf2i((ALfloat)(val*2147483647.0));
++ /* Convert to a signed integer, between -16777215 and +16777215. */
++ return fastf2i(val*16777215.0f);
+ }
++
++static __inline ALfloat aluF2F(ALfloat val)
++{ return val; }
++static __inline ALint aluF2I(ALfloat val)
++{ return aluF2I25(val)<<7; }
+ static __inline ALuint aluF2UI(ALfloat val)
+ { return aluF2I(val)+2147483648u; }
+ static __inline ALshort aluF2S(ALfloat val)
+-{ return aluF2I(val)>>16; }
++{ return aluF2I(val)>>9; }
+ static __inline ALushort aluF2US(ALfloat val)
+ { return aluF2S(val)+32768; }
+ static __inline ALbyte aluF2B(ALfloat val)
+-{ return aluF2I(val)>>24; }
++{ return aluF2I(val)>>17; }
+ static __inline ALubyte aluF2UB(ALfloat val)
+ { return aluF2B(val)+128; }
+