Adds a fuzzing mode that causes the encoder to make random decisions
[opus.git] / libcelt / pitch.c
index 3173b15..89a00f8 100644 (file)
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
-   
+
    - Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
-   
+
    - Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
-   
+
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -31,7 +31,6 @@
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -43,7 +42,7 @@
 #include "mathops.h"
 
 static void find_best_pitch(opus_val32 *xcorr, opus_val32 maxcorr, opus_val16 *y,
-                            int yshift, int len, int max_pitch, int best_pitch[2])
+                            int yshift, int len, int max_pitch, int *best_pitch)
 {
    int i, j;
    opus_val32 Syy=1;
@@ -151,7 +150,7 @@ void pitch_search(const opus_val16 * restrict x_lp, opus_val16 * restrict y,
 {
    int i, j;
    int lag;
-   int best_pitch[2]={0};
+   int best_pitch[2]={0,0};
    VARDECL(opus_val16, x_lp4);
    VARDECL(opus_val16, y_lp4);
    VARDECL(opus_val32, xcorr);
@@ -226,7 +225,7 @@ void pitch_search(const opus_val16 * restrict x_lp, opus_val16 * restrict y,
          offset = 1;
       else if ((a-c) > MULT16_32_Q15(QCONST16(.7f,15),b-c))
          offset = -1;
-      else 
+      else
          offset = 0;
    } else {
       offset = 0;
@@ -279,7 +278,7 @@ opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod,
          g = g0 = VSHR32(MULT16_32_Q15(celt_rsqrt_norm(t), xy),sh+1);
       }
 #else
-      g = g0 = xy/sqrt(1+xx*yy);
+      g = g0 = xy/celt_sqrt(1+xx*yy);
 #endif
    /* Look for any pitch at T/k */
    for (k=2;k<=15;k++)
@@ -320,7 +319,7 @@ opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod,
          g1 = VSHR32(MULT16_32_Q15(celt_rsqrt_norm(t), xy),sh+1);
       }
 #else
-      g1 = xy/sqrt(1+2.f*xx*1.f*yy);
+      g1 = xy/celt_sqrt(1+2.f*xx*1.f*yy);
 #endif
       if (abs(T1-prev_period)<=1)
          cont = prev_gain;