---
libavcodec/ac3enc.c | 20 ++++++--------------
1 files changed, 6 insertions(+), 14 deletions(-)
diff --git libavcodec/ac3enc.c libavcodec/ac3enc.c
index 569ec46..506b709 100644
--- libavcodec/ac3enc.c
+++ libavcodec/ac3enc.c
@@ -87,16 +87,8 @@ static int16_t xsin1[128];
/* new exponents are sent if their Norm 1 exceed this number */
#define EXP_DIFF_THRESHOLD 1000
-static inline int16_t fix15(float a)
-{
- int v;
- v = (int)(a * (float)(1 << 15));
- if (v < -32767)
- v = -32767;
- else if (v > 32767)
- v = 32767;
- return v;
-}
+/** convert float in range [-1..1] to int16_t in range [-32767..32767] */
+#define FIX15(a) ((int16_t)av_clip((int)(a * (float)(1 << 15)), -32767, 32767))
typedef struct IComplex {
int16_t re,im;
@@ -111,8 +103,8 @@ static av_cold void fft_init(int ln)
for (i = 0; i < (n/2); i++) {
alpha = 2 * M_PI * (float)i / (float)n;
- costab[i] = fix15(cos(alpha));
- sintab[i] = fix15(sin(alpha));
+ costab[i] = FIX15(cos(alpha));
+ sintab[i] = FIX15(sin(alpha));
}
}
@@ -123,8 +115,8 @@ static av_cold void mdct_init(void)
fft_init(MDCT_NBITS - 2);
for (i = 0; i < MDCT_SAMPLES/4; i++) {
float alpha = 2 * M_PI * (i + 1.0 / 8.0) / (float)MDCT_SAMPLES;
- xcos1[i] = fix15(-cos(alpha));
- xsin1[i] = fix15(-sin(alpha));
+ xcos1[i] = FIX15(-cos(alpha));
+ xsin1[i] = FIX15(-sin(alpha));
}
}
_______________________________________________
FFmpeg-soc mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc