diff options
Diffstat (limited to 'apps/codecs/libtremor/floor0.c')
-rw-r--r-- | apps/codecs/libtremor/floor0.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/apps/codecs/libtremor/floor0.c b/apps/codecs/libtremor/floor0.c index 5062450748..075bc36ef7 100644 --- a/apps/codecs/libtremor/floor0.c +++ b/apps/codecs/libtremor/floor0.c | |||
@@ -200,16 +200,19 @@ static void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln, | |||
200 | 200 | ||
201 | #else | 201 | #else |
202 | 202 | ||
203 | qi*=labs(ilsp[0]-wi); | 203 | j=1; |
204 | pi*=labs(ilsp[1]-wi); | 204 | if(m>1){ |
205 | 205 | qi*=labs(ilsp[0]-wi); | |
206 | for(j=3;j<m;j+=2){ | 206 | pi*=labs(ilsp[1]-wi); |
207 | if(!(shift=MLOOP_1[(pi|qi)>>25])) | 207 | |
208 | if(!(shift=MLOOP_2[(pi|qi)>>19])) | 208 | for(j+=2;j<m;j+=2){ |
209 | shift=MLOOP_3[(pi|qi)>>16]; | 209 | if(!(shift=MLOOP_1[(pi|qi)>>25])) |
210 | qi=(qi>>shift)*labs(ilsp[j-1]-wi); | 210 | if(!(shift=MLOOP_2[(pi|qi)>>19])) |
211 | pi=(pi>>shift)*labs(ilsp[j]-wi); | 211 | shift=MLOOP_3[(pi|qi)>>16]; |
212 | qexp+=shift; | 212 | qi=(qi>>shift)*labs(ilsp[j-1]-wi); |
213 | pi=(pi>>shift)*labs(ilsp[j]-wi); | ||
214 | qexp+=shift; | ||
215 | } | ||
213 | } | 216 | } |
214 | if(!(shift=MLOOP_1[(pi|qi)>>25])) | 217 | if(!(shift=MLOOP_1[(pi|qi)>>25])) |
215 | if(!(shift=MLOOP_2[(pi|qi)>>19])) | 218 | if(!(shift=MLOOP_2[(pi|qi)>>19])) |