Commit a3a5bb9b authored by vaillancour's avatar vaillancour
Browse files

Fixes for stv16c_7200_16kHz.f06.COD

parent a1883462
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -71,19 +71,35 @@ cldfb_init_proto_and_twiddles(HANDLE_CLDFB_FILTER_BANK hs);
																					 iyr 	= CL_Extract_real( CL_iy ); \
																					 iyi  	= CL_Extract_imag( CL_iy ); \
																					 rxr+=sx, rxi+=sx, ixr+=sx, ixi+=sx, cr+=sr, ci+=sr
#ifdef BASOP_NOGLOB

#define add1(y1,y2,y3,y4,rr12,ri12,ir12,ii12,s)             { Flag Overflow = 0;\
                                                                *y1 = round_fx_o(L_shl_o(L_negate(L_add_o(rr12,ii12, &Overflow)),s, &Overflow), &Overflow);                 \
                                                                *y2 = round_fx_o(L_shl_o(L_negate(L_add_o(ri12,ir12, &Overflow)),s, &Overflow), &Overflow);                 \
                                                                *y3 = round_fx_o(L_shl_o(L_sub_o(rr12,ii12, &Overflow),s, &Overflow), &Overflow);                           \
                                                                *y4 = round_fx_o(L_shl_o(L_sub_o(ir12,ri12, &Overflow),s, &Overflow), &Overflow);}                          \
                                                                y1+=2, y2-=2, y3-=2, y4+=2

#define add2(y1,y2,y3,y4,rr12,ri12,ir12,ii12,s)             { Flag Overflow = 0;\
                                                                *y1 = round_fx_o(L_shl_o(L_add_o(ri12,ir12, &Overflow),s, &Overflow), &Overflow);                           \
                                                                *y2 = round_fx_o(L_shl_o(L_add_o(rr12,ii12, &Overflow),s, &Overflow), &Overflow);                           \
                                                                *y3 = round_fx_o(L_shl_o(L_sub_o(ir12,ri12, &Overflow),s, &Overflow), &Overflow);                           \
                                                                *y4 = round_fx_o(L_shl_o(L_sub_o(rr12,ii12, &Overflow),s, &Overflow), &Overflow);}                          \
                                                                y1+=2, y2-=2, y3-=2, y4+=2

#else
#define add1(y1,y2,y3,y4,rr12,ri12,ir12,ii12,s)                 *y1 = round_fx(L_shl(L_negate(L_add(rr12,ii12)),s));                 \
                                                                *y2 = round_fx(L_shl(L_negate(L_add(ri12,ir12)),s));                 \
                                                                *y3 = round_fx(L_shl(L_sub(rr12,ii12),s));                           \
                                                                *y4 = round_fx(L_shl(L_sub(ir12,ri12),s));                           \
                                                                y1+=2, y2-=2, y3-=2, y4+=2


#define add2(y1,y2,y3,y4,rr12,ri12,ir12,ii12,s)                 *y1 = round_fx(L_shl(L_add(ri12,ir12),s));                           \
                                                                *y2 = round_fx(L_shl(L_add(rr12,ii12),s));                           \
                                                                *y3 = round_fx(L_shl(L_sub(ir12,ri12),s));                           \
                                                                *y4 = round_fx(L_shl(L_sub(rr12,ii12),s));                           \
                                                                y1+=2, y2-=2, y3-=2, y4+=2
#endif

#define ptrUpdate16(y11,y12,y13,y14,r11,x11,x12,x13,x14,r12,y21,y22,y23,y24,r21,x21,x22,x23,x24,r22)                                 \
                                                                y11 += 2*N8, y12 -= 2*N8, y13 -= 2*N8, y14 += 2*N8, r11 -= 1*N8;     \
+4 −1
Original line number Diff line number Diff line
@@ -228,8 +228,11 @@ void FEC_scale_syn_fx(
                    /*rr0 = dotp( h1, h1, L_FRAME/2-1 ) + 0.1f;*/
                    /*rr1 = dotp( h1, h1+1, L_FRAME/2-1 );*/
                    /*tilt = rr1 / rr0;*/
#ifdef BASOP_NOGLOB
                    tilt = extract_h(L_shl_o(get_gain(h1+1, h1, L_FRAME/2-1),15, &Overflow));
#else
                    tilt = extract_h(L_shl(get_gain(h1+1, h1, L_FRAME/2-1),15));

#endif
                    pitch_dist = 0;
                    move16();
                    L_mean_pitch = L_mult(pitch[0], 8192);