Skip to content

Commit eb45832

Browse files
committed
Add support for windows
1 parent 34d6820 commit eb45832

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

src/celt_lpc.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ void celt_fir(
9696
int ord)
9797
{
9898
int i,j;
99-
opus_val16 rnum[ord];
99+
opus_val16 *rnum = malloc(sizeof(opus_val16) * ord);
100100
for(i=0;i<ord;i++)
101101
rnum[i] = num[ord-i-1];
102102
for (i=0;i<N-3;i+=4)
@@ -119,6 +119,7 @@ void celt_fir(
119119
sum = MAC16_16(sum,rnum[j],x[i+j-ord]);
120120
y[i] = ROUND16(sum, SIG_SHIFT);
121121
}
122+
free(rnum);
122123
}
123124

124125
void celt_iir(const opus_val32 *_x,
@@ -147,8 +148,8 @@ void celt_iir(const opus_val32 *_x,
147148
#else
148149
int i,j;
149150
celt_assert((ord&3)==0);
150-
opus_val16 rden[ord];
151-
opus_val16 y[N+ord];
151+
opus_val16 *rden = malloc(sizeof(opus_val16) * ord);
152+
opus_val16 *y = malloc(sizeof(opus_val16) * (N + ord));
152153
for(i=0;i<ord;i++)
153154
rden[i] = den[ord-i-1];
154155
for(i=0;i<ord;i++)
@@ -192,6 +193,8 @@ void celt_iir(const opus_val32 *_x,
192193
}
193194
for(i=0;i<ord;i++)
194195
mem[i] = _y[N-i-1];
196+
free(rden);
197+
free(y);
195198
#endif
196199
}
197200

@@ -208,7 +211,7 @@ int _celt_autocorr(
208211
int fastN=n-lag;
209212
int shift;
210213
const opus_val16 *xptr;
211-
opus_val16 xx[n];
214+
opus_val16 *xx = malloc(sizeof(opus_val16) * n);
212215
celt_assert(n>0);
213216
celt_assert(overlap>=0);
214217
if (overlap == 0)
@@ -274,6 +277,6 @@ int _celt_autocorr(
274277
shift += shift2;
275278
}
276279
#endif
277-
280+
free(xx);
278281
return shift;
279282
}

src/denoise.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
#include "config.h"
3030
#endif
3131

32+
#define _USE_MATH_DEFINES
33+
3234
#include <stdlib.h>
3335
#include <string.h>
3436
#include <stdio.h>

src/pitch.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,9 @@ void pitch_search(const opus_val16 *x_lp, opus_val16 *y,
297297
celt_assert(max_pitch>0);
298298
lag = len+max_pitch;
299299

300-
opus_val16 x_lp4[len>>2];
301-
opus_val16 y_lp4[lag>>2];
302-
opus_val32 xcorr[max_pitch>>1];
300+
opus_val16 *x_lp4 = malloc(sizeof(opus_val16) * (len >> 2));
301+
opus_val16 *y_lp4 = malloc(sizeof(opus_val16) * (lag >> 2));
302+
opus_val32 *xcorr = malloc(sizeof(opus_val32) * (max_pitch >> 1));
303303

304304
/* Downsample by 2 again */
305305
for (j=0;j<len>>2;j++)
@@ -382,6 +382,10 @@ void pitch_search(const opus_val16 *x_lp, opus_val16 *y,
382382
offset = 0;
383383
}
384384
*pitch = 2*best_pitch[0]-offset;
385+
386+
free(x_lp4);
387+
free(y_lp4);
388+
free(xcorr);
385389
}
386390

387391
#ifdef FIXED_POINT
@@ -443,7 +447,7 @@ opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod,
443447
*T0_=maxperiod-1;
444448

445449
T = T0 = *T0_;
446-
opus_val32 yy_lookup[maxperiod+1];
450+
opus_val32 *yy_lookup = malloc(sizeof(opus_val32) * (maxperiod + 1));
447451
dual_inner_prod(x, x, x-T0, N, &xx, &xy);
448452
yy_lookup[0] = xx;
449453
yy=xx;
@@ -522,5 +526,7 @@ opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod,
522526

523527
if (*T0_<minperiod0)
524528
*T0_=minperiod0;
529+
530+
free(yy_lookup);
525531
return pg;
526532
}

0 commit comments

Comments
 (0)