[FFmpeg-cvslog] r13277 - trunk/libavcodec/ra144.c
vitor
subversion
Sat May 24 11:20:09 CEST 2008
Author: vitor
Date: Sat May 24 11:20:09 2008
New Revision: 13277
Log:
Simplify final()
Modified:
trunk/libavcodec/ra144.c
Modified: trunk/libavcodec/ra144.c
==============================================================================
--- trunk/libavcodec/ra144.c (original)
+++ trunk/libavcodec/ra144.c Sat May 24 11:20:09 2008
@@ -145,38 +145,33 @@ static void add_wav(int n, int f, int m1
static void final(const short *i1, const short *i2,
void *out, int *statbuf, int len)
{
- int x, sum, i;
- int buffer[10];
- short *ptr;
- short *ptr2;
+ int x, i;
unsigned short int work[50];
+ short *ptr = work;
memcpy(work, statbuf,20);
memcpy(work + 10, i2, len * 2);
- for(i=0; i<10; i++)
- buffer[9-i] = i1[i];
-
- ptr2 = (ptr = work) + len;
+ for (i=0; i<len; i++) {
+ int sum = 0;
- while (ptr < ptr2) {
- for(sum=0, x=0; x<=9; x++)
- sum += buffer[x] * (ptr[x]);
+ for(x=0; x<10; x++)
+ sum += i1[9-x] * ptr[x];
- sum = sum >> 12;
- x = ptr[10] - sum;
+ sum >>= 12;
- if (x<-32768 || x>32767) {
+ if (ptr[10] - sum < -32768 || ptr[10] - sum > 32767) {
memset(out, 0, len * 2);
memset(statbuf, 0, 20);
return;
}
- ptr[10] = x;
+ ptr[10] -= sum;
ptr++;
}
- memcpy(out, ptr+10 - len, len * 2);
- memcpy(statbuf, ptr, 20);
+
+ memcpy(out, work+10, len * 2);
+ memcpy(statbuf, work + 40, 20);
}
static unsigned int rms(const int *data, int f)
More information about the ffmpeg-cvslog
mailing list