gsm compression bad sound quality due to problems with optimization. asterisk patches to include when using gsm with vicidial.

git-svn-id: svn://192.168.202.10@861 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
frankw
2008-05-14 07:05:22 +00:00
parent 2ba5b34810
commit c603b6ee35
3 changed files with 67 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
diff -Naur asterisk-1.2.26.orig/codecs/gsm/Makefile asterisk-1.2.26/codecs/gsm/Makefile
--- asterisk-1.2.26.orig/codecs/gsm/Makefile 2006-07-24 13:05:56.000000000 -0400
+++ asterisk-1.2.26/codecs/gsm/Makefile 2008-01-15 13:21:38.000000000 -0500
@@ -37,6 +37,14 @@
######### ppro's, etc, as well as the AMD K6 and K7. The compile will
######### probably require gcc.
+# Due to the gsm codec beeing broken when compiled with gcc version 4.2
+# and optimization higher than -O2 we are checking for that version and
+# set the optimization to -O2 in this case.
+
+ifeq ($(shell gcc -v 2>&1 | grep "gcc version" | cut -c 13-16 ),4.2.)
+OPTIMIZE=-O2
+endif
+
ifneq (${OSARCH},Darwin)
ifneq (${OSARCH},SunOS)
ifneq (${PROC},x86_64)
+18
View File
@@ -0,0 +1,18 @@
diff -Naur asterisk-1.4.17.orig/codecs/gsm/Makefile asterisk-1.4.17/codecs/gsm/Makefile
--- asterisk-1.4.17.orig/codecs/gsm/Makefile 2007-02-16 19:31:42.000000000 -0500
+++ asterisk-1.4.17/codecs/gsm/Makefile 2008-01-15 13:23:37.000000000 -0500
@@ -37,6 +37,14 @@
######### ppro's, etc, as well as the AMD K6 and K7. The compile will
######### probably require gcc.
+# Due to the gsm codec beeing broken when compiled with gcc version 4.2
+# and optimization higher than -O2 we are checking for that version and
+# set the optimization to -O2 in this case.
+
+ifeq ($(shell gcc -v 2>&1 | grep "gcc version" | cut -c 13-16 ),4.2.)
+OPTIMIZE=-O2
+endif
+
ifeq (, $(findstring $(OSARCH) , Darwin SunOS ))
ifeq (, $(findstring $(PROC) , x86_64 amd64 ultrasparc sparc64 arm armv5b armeb ppc powerpc ppc64 ia64 s390 bfin mipsel ))
ifeq (, $(findstring $(shell uname -m) , ppc ppc64 alpha armv4l s390 ))
@@ -0,0 +1,31 @@
Index: codecs/gsm/inc/private.h
===================================================================
--- codecs/gsm/inc/private.h (revision 109711)
+++ codecs/gsm/inc/private.h (working copy)
@@ -105,7 +105,7 @@
__asm__ __volatile__(
"addl %2,%0; jno 0f; movl $0x7fffffff,%0; adcl $0,%0; 0:"
- : "=r" (a)
+ : "=&r" (a)
: "0" (a), "ir" (b)
: "cc"
);
@@ -116,7 +116,7 @@
{
__asm__ __volatile__(
"addw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:"
- : "=r" (a)
+ : "=&r" (a)
: "0" (a), "ir" (b)
: "cc"
);
@@ -127,7 +127,7 @@
{
__asm__ __volatile__(
"subw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:"
- : "=r" (a)
+ : "=&r" (a)
: "0" (a), "ir" (b)
: "cc"
);