32 #if FF_API_AVCODEC_RESAMPLE 
   34 #ifndef CONFIG_RESAMPLE_HP 
   35 #define FILTER_SHIFT 15 
   38 #define FELEM2 int32_t 
   39 #define FELEML int64_t 
   40 #define FELEM_MAX INT16_MAX 
   41 #define FELEM_MIN INT16_MIN 
   43 #elif !defined(CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE) 
   44 #define FILTER_SHIFT 30 
   47 #define FELEM2 int64_t 
   48 #define FELEML int64_t 
   49 #define FELEM_MAX INT32_MAX 
   50 #define FELEM_MIN INT32_MIN 
   51 #define WINDOW_TYPE 12 
   53 #define FILTER_SHIFT 0 
   58 #define WINDOW_TYPE 24 
   87     for(i=1; v != lastv; i++){
 
  106     const int center= (tap_count-1)/2;
 
  115     for(ph=0;ph<phase_count;ph++) {
 
  117         for(i=0;i<tap_count;i++) {
 
  118             x = 
M_PI * ((double)(i - center) - (double)ph / phase_count) * 
factor;
 
  124                 x = fabs(((
double)(i - center) - (
double)ph / phase_count) * factor);
 
  125                 if(x<1.0) y= 1 - 3*x*x + 2*x*x*x + d*(            -x*x + x*x*x);
 
  126                 else      y=                       d*(-4 + 8*x - 5*x*x + x*x*x);
 
  129                 w = 2.0*x / (factor*tap_count) + 
M_PI;
 
  130                 y *= 0.3635819 - 0.4891775 * cos(w) + 0.1365995 * cos(2*w) - 0.0106411 * cos(3*w);
 
  133                 w = 2.0*x / (factor*tap_count*
M_PI);
 
  143         for(i=0;i<tap_count;i++) {
 
  144 #ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE 
  145             filter[ph * tap_count + i] = tab[i] / norm;
 
  155         double sine[
LEN + tap_count];
 
  156         double filtered[
LEN];
 
  157         double maxff=-2, minff=2, maxsf=-2, minsf=2;
 
  158         for(i=0; i<
LEN; i++){
 
  159             double ss=0, sf=0, ff=0;
 
  160             for(j=0; j<LEN+tap_count; j++)
 
  161                 sine[j]= cos(i*j*
M_PI/LEN);
 
  162             for(j=0; j<LEN; j++){
 
  165                 for(k=0; k<tap_count; k++)
 
  166                     sum += filter[ph * tap_count + k] * sine[k+j];
 
  168                 ss+= sine[j + center] * sine[j + center];
 
  169                 ff+= filtered[j] * filtered[j];
 
  170                 sf+= sine[j + center] * filtered[j];
 
  175             maxff= 
FFMAX(maxff, ff);
 
  176             minff= 
FFMIN(minff, ff);
 
  177             maxsf= 
FFMAX(maxsf, sf);
 
  178             minsf= 
FFMIN(minsf, sf);
 
  180                 av_log(NULL, 
AV_LOG_ERROR, 
"i:%4d ss:%f ff:%13.6e-%13.6e sf:%13.6e-%13.6e\n", i, ss, maxff, minff, maxsf, minsf);
 
  194     double factor= 
FFMIN(out_rate * cutoff / in_rate, 1.0);
 
  195     int phase_count= 1<<phase_shift;
 
  246         int64_t index2= ((int64_t)index)<<32;
 
  250         for(dst_index=0; dst_index < dst_size; dst_index++){
 
  251             dst[dst_index] = src[index2>>32];
 
  254         index += dst_index * dst_incr;
 
  255         index += (frac + dst_index * (int64_t)dst_incr_frac) / c->
src_incr;
 
  256         frac   = (frac + dst_index * (int64_t)dst_incr_frac) % c->
src_incr;
 
  258     for(dst_index=0; dst_index < dst_size; dst_index++){
 
  263         if(sample_index < 0){
 
  265                 val += src[
FFABS(sample_index + i) % src_size] * filter[i];
 
  271                 val += src[sample_index + i] * (
FELEM2)filter[i];
 
  277                 val += src[sample_index + i] * (
FELEM2)filter[i];
 
  281 #ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE 
  282         dst[dst_index] = av_clip_int16(
lrintf(val));
 
  285         dst[dst_index] = (unsigned)(val + 32768) > 65535 ? (val>>31) ^ 32767 : val;
 
  288         frac += dst_incr_frac;
 
  295         if(dst_index + 1 == compensation_distance){
 
  296             compensation_distance= 0;
 
  305     if(compensation_distance){
 
  306         compensation_distance -= dst_index;