| Index: celt/fixed_c5x.h
|
| diff --git a/celt/pitch.h b/celt/fixed_c5x.h
|
| similarity index 51%
|
| copy from celt/pitch.h
|
| copy to celt/fixed_c5x.h
|
| index 2757071a6fbfaace2ec77bcdc2de5128b0d2feb7..156ba45d05f0b75b4e83be2a2e2f04deadfebe3c 100644
|
| --- a/celt/pitch.h
|
| +++ b/celt/fixed_c5x.h
|
| @@ -1,11 +1,8 @@
|
| -/* Copyright (c) 2007-2008 CSIRO
|
| - Copyright (c) 2007-2009 Xiph.Org Foundation
|
| - Written by Jean-Marc Valin */
|
| +/* Copyright (C) 2003 Jean-Marc Valin */
|
| /**
|
| - @file pitch.h
|
| - @brief Pitch analysis
|
| - */
|
| -
|
| + @file fixed_c5x.h
|
| + @brief Fixed-point operations for the TI C5x DSP family
|
| +*/
|
| /*
|
| Redistribution and use in source and binary forms, with or without
|
| modification, are permitted provided that the following conditions
|
| @@ -31,18 +28,52 @@
|
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
|
|
| -#ifndef PITCH_H
|
| -#define PITCH_H
|
| +#ifndef FIXED_C5X_H
|
| +#define FIXED_C5X_H
|
| +
|
| +#include "dsplib.h"
|
| +
|
| +#undef IMUL32
|
| +static inline long IMUL32(long i, long j)
|
| +{
|
| + long ac0, ac1;
|
| + ac0 = _lmpy(i>>16,j);
|
| + ac1 = ac0 + _lmpy(i,j>>16);
|
| + return _lmpyu(i,j) + (ac1<<16);
|
| +}
|
| +
|
| +#undef MAX16
|
| +#define MAX16(a,b) _max(a,b)
|
| +
|
| +#undef MIN16
|
| +#define MIN16(a,b) _min(a,b)
|
| +
|
| +#undef MAX32
|
| +#define MAX32(a,b) _lmax(a,b)
|
| +
|
| +#undef MIN32
|
| +#define MIN32(a,b) _lmin(a,b)
|
| +
|
| +#undef VSHR32
|
| +#define VSHR32(a, shift) _lshl(a,-(shift))
|
| +
|
| +#undef MULT16_16_Q15
|
| +#define MULT16_16_Q15(a,b) (_smpy(a,b))
|
| +
|
| +#undef MULT16_16SU
|
| +#define MULT16_16SU(a,b) _lmpysu(a,b)
|
|
|
| -#include "modes.h"
|
| +#undef MULT_16_16
|
| +#define MULT_16_16(a,b) _lmpy(a,b)
|
|
|
| -void pitch_downsample(celt_sig * OPUS_RESTRICT x[], opus_val16 * OPUS_RESTRICT x_lp,
|
| - int len, int C);
|
| +/* FIXME: This is technically incorrect and is bound to cause problems. Is there any cleaner solution? */
|
| +#undef MULT16_32_Q15
|
| +#define MULT16_32_Q15(a,b) ADD32(SHL(MULT16_16((a),SHR((b),16)),1), SHR(MULT16_16SU((a),(b)),15))
|
|
|
| -void pitch_search(const opus_val16 * OPUS_RESTRICT x_lp, opus_val16 * OPUS_RESTRICT y,
|
| - int len, int max_pitch, int *pitch);
|
| +#define celt_ilog2(x) (30 - _lnorm(x))
|
| +#define OVERRIDE_CELT_ILOG2
|
|
|
| -opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod,
|
| - int N, int *T0, int prev_period, opus_val16 prev_gain);
|
| +#define celt_maxabs16(x, len) MAX32(EXTEND32(maxval((DATA *)x, len)),-EXTEND32(minval((DATA *)x, len)))
|
| +#define OVERRIDE_CELT_MAXABS16
|
|
|
| -#endif
|
| +#endif /* FIXED_C5X_H */
|
|
|