Author: randy
Date: 2005-11-18 08:12:42 -0700 (Fri, 18 Nov 2005)
New Revision: 1266

Added:
   trunk/libvorbis/
   trunk/libvorbis/libvorbis-1.1.1-gcc4-1.patch
Log:
Added libvorbis GCC4 patch

Added: trunk/libvorbis/libvorbis-1.1.1-gcc4-1.patch
===================================================================
--- trunk/libvorbis/libvorbis-1.1.1-gcc4-1.patch        2005-11-18 06:56:02 UTC 
(rev 1265)
+++ trunk/libvorbis/libvorbis-1.1.1-gcc4-1.patch        2005-11-18 15:12:42 UTC 
(rev 1266)
@@ -0,0 +1,60 @@
+Submitted By: Steffen Knollmann <sknolli at astro.physik.uni-goettingen.de>
+Date: 2005-11-09
+Initial Package Version: 1.1.1
+Upstream Status: From Upstream
+Origin: msmith, courtesy of upstream SVN
+Description: Fixes an optimization problem with gcc-4.0.x that results in
+             dysfunctional library that will produce bigger encoded files
+             with a poor audio quality. Detailed description at:
+             http://trac.xiph.org/cgi-bin/trac.cgi/ticket/583
+
+$LastChangedBy$
+$Date$
+
+
+--- libvorbis-1.1.1/lib/scales.h       (revision 9958)
++++ libvorbis-1.1.1/lib/scales.h       (revision 9959)
+@@ -26,20 +26,24 @@
+ #ifdef VORBIS_IEEE_FLOAT32
+ 
+ static float unitnorm(float x){
+-  ogg_uint32_t *ix=(ogg_uint32_t *)&x;
+-  *ix=(*ix&0x80000000UL)|(0x3f800000UL);
+-  return(x);
+-}
+-
+-static float FABS(float *x){
+-  ogg_uint32_t *ix=(ogg_uint32_t *)x;
+-  *ix&=0x7fffffffUL;
+-  return(*x);
++  union {
++    ogg_uint32_t i;
++    float f;
++  } ix;
++  ix.f = x;
++  ix.i = (ix.i & 0x80000000U) | (0x3f800000U);
++  return ix.f;
+ }
+ 
+ /* Segher was off (too high) by ~ .3 decibel.  Center the conversion 
correctly. */
+ static float todB(const float *x){
+-  return (float)((*(ogg_int32_t *)x)&0x7fffffff) * 7.17711438e-7f 
-764.6161886f;
++  union {
++    ogg_uint32_t i;
++    float f;
++  } ix;
++  ix.f = *x;
++  ix.i = ix.i&0x7fffffff;
++  return (float)(ix.i * 7.17711438e-7f -764.6161886f);
+ }
+ 
+ #define todB_nn(x) todB(x)
+@@ -51,8 +55,6 @@
+   return(1.f);
+ }
+ 
+-#define FABS(x) fabs(*(x))
+-
+ #define todB(x)   (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f)
+ #define todB_nn(x)   (*(x)==0.f?-400.f:log(*(x))*8.6858896f)
+


Property changes on: trunk/libvorbis/libvorbis-1.1.1-gcc4-1.patch
___________________________________________________________________
Name: svn:keywords
   + LastChangedBy Date

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to