shithub: opus

Download patch

ref: e84962bcd969d20d736eb5851013b1ddd2c5c45a
parent: 571e861dc31c602e826921ce6766f3b06d16c7e4
author: Jean-Marc Valin <[email protected]>
date: Sat Dec 29 19:17:44 EST 2007

Doing multiple rotation passes instead of one produces better pulse spreading.

--- a/libcelt/bands.c
+++ b/libcelt/bands.c
@@ -266,8 +266,8 @@
    for (i=0;i<m->nbEBands;i++)
    {
       float theta;
-      theta = pow(.1f,1.f*abs(m->nbPulses[i])/(B*(eBands[i+1]-eBands[i])));
-      exp_rotation(X+B*eBands[i], B*(eBands[i+1]-eBands[i]), theta, dir, 2, 1);
+      theta = .007*(B*(eBands[i+1]-eBands[i]))/(.1f+abs(m->nbPulses[i]));
+      exp_rotation(X+B*eBands[i], B*(eBands[i+1]-eBands[i]), theta, dir, B, 8);
    }
    //printf ("\n");
 }