This website works better with JavaScript.
Home
Help
Sign In
falkTX
/
FFmpeg
mirror of
https://github.com/falkTX/FFmpeg.git
Watch
1
Star
0
Fork
0
Code
Issues
0
Releases
338
Wiki
Activity
Browse Source
adx: use 12-bit coefficients instead of 14-bit to avoid integer overflow
tags/n0.9
Justin Ruggles
14 years ago
parent
c52ddc6024
commit
954d94dd5e
3 changed files
with
5 additions
and
5 deletions
Split View
Diff Options
Show Stats
Download Patch File
Download Diff File
+3
-3
libavcodec/adx.h
+1
-1
libavcodec/adxdec.c
+1
-1
libavcodec/adxenc.c
+ 3
- 3
libavcodec/adx.h
View File
@@ -43,8 +43,8 @@ typedef struct {
int in_temp;
} ADXContext;
#define
BASEVOL 0x4000
#define
SCALE1 0x7298
#define
SCALE2 0x3350
#define
COEFF_BITS 12
#define
COEFF1 0x1CA6
#define
COEFF2 0x0CD4
#endif /* AVCODEC_ADX_H */
+ 1
- 1
libavcodec/adxdec.c
View File
@@ -59,7 +59,7 @@ static void adx_decode(ADXContext *c, int16_t *out, const uint8_t *in, int ch)
s2 = prev->s2;
for (i = 0; i < 32; i++) {
d = get_sbits(&gb, 4);
s0 = (
BASEVOL * d * scale + SCALE1 * s1 - SCALE2 * s2) >> 14
;
s0 = (
(d << COEFF_BITS) * scale + COEFF1 * s1 - COEFF2 * s2) >> COEFF_BITS
;
s2 = s1;
s1 = av_clip_int16(s0);
*out = s1;
+ 1
- 1
libavcodec/adxenc.c
View File
@@ -48,7 +48,7 @@ static void adx_encode(unsigned char *adx,const short *wav,
s2 = prev->s2;
for(i=0;i<32;i++) {
s0 = wav[i];
d = ((s0
<<14) - SCALE1*s1 + SCALE2*s2)/BASEVOL
;
d = ((s0
<< COEFF_BITS) - COEFF1 * s1 + COEFF2 * s2) >> COEFF_BITS
;
data[i]=d;
if (max<d) max=d;
if (min>d) min=d;
Write
Preview
Loading…
Cancel
Save