Skip to content
Snippets Groups Projects
Commit 303bd95c authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

optimize linear filter coeff interpolation code, this also makes the code less prone to overflows

Originally committed as revision 8480 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d971a5fa
No related branches found
No related tags found
No related merge requests found
......@@ -268,13 +268,12 @@ int av_resample(AVResampleContext *c, short *dst, short *src, int *consumed, int
}else if(sample_index + c->filter_length > src_size){
break;
}else if(c->linear){
int64_t v=0;
int sub_phase= (frac<<8) / c->src_incr;
FELEM2 v2=0;
for(i=0; i<c->filter_length; i++){
FELEML coeff= filter[i]*(256 - sub_phase) + filter[i + c->filter_length]*sub_phase;
v += src[sample_index + i] * coeff;
val += src[sample_index + i] * (FELEM2)filter[i];
v2 += src[sample_index + i] * (FELEM2)filter[i + c->filter_length];
}
val= v>>8;
val+=(v2-val)*(FELEML)frac / c->src_incr;
}else{
for(i=0; i<c->filter_length; i++){
val += src[sample_index + i] * (FELEM2)filter[i];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment