return (v1 + (((v2-v1) * (ofs & FRACTION_MASK)) >> FRACTION_BITS));
return (v1 + ((resample_t)((v2 - v1) * (ofs & FRACTION_MASK)) >> FRACTION_BITS));
static resample_t resample_cspline(sample_t *src, splen_t ofs, resample_rec_t *rec){    int32 ofsi, ofsf, v0, v1, v2, v3, temp;    ofsi = ofs >> FRACTION_BITS;    v1 = src[ofsi];    v2 = src[ofsi + 1];    if((ofs<rec->loop_start+(1L<<FRACTION_BITS))||       ((ofs+(2L<<FRACTION_BITS))>rec->loop_end)){	return (v1 + (((v2-v1) * (ofs & FRACTION_MASK)) >> FRACTION_BITS));    } else {	v0 = src[ofsi - 1];	v3 = src[ofsi + 2];	ofsf = ofs & FRACTION_MASK;	temp = v2;	v2 = (6 * v2 + ((((5 * v3 - 11 * v2 + 7 * v1 - v0) >> 2) *			 (ofsf + (1L << FRACTION_BITS)) >> FRACTION_BITS) *			(ofsf - (1L << FRACTION_BITS)) >> FRACTION_BITS))	    * ofsf;	v1 = (((6 * v1+((((5 * v0 - 11 * v1 + 7 * temp - v3) >> 2) *			 ofsf >> FRACTION_BITS) * (ofsf - (2L << FRACTION_BITS))			>> FRACTION_BITS)) * ((1L << FRACTION_BITS) - ofsf)) + v2)	    / (6L << FRACTION_BITS);	return v1;    }}