# HG changeset patch # User michael # Date 1174533362 0 # Node ID a8794f26ea9807df95a22a91608e01480c24e987 # Parent 5fa551fb7640a3c8a8ec24f26d938998978e28ff AUDIOPHILE_KIDDY_MODE diff -r 5fa551fb7640 -r a8794f26ea98 resample2.c --- a/resample2.c Thu Mar 22 00:52:49 2007 +0000 +++ b/resample2.c Thu Mar 22 03:16:02 2007 +0000 @@ -35,17 +35,26 @@ #define FELEM int16_t #define FELEM2 int32_t +#define FELEML int64_t #define FELEM_MAX INT16_MAX #define FELEM_MIN INT16_MIN #define WINDOW_TYPE 9 -#else +#elif !defined(CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE) #define FILTER_SHIFT 30 #define FELEM int32_t #define FELEM2 int64_t +#define FELEML int64_t #define FELEM_MAX INT32_MAX #define FELEM_MIN INT32_MIN #define WINDOW_TYPE 12 +#else +#define FILTER_SHIFT 0 + +#define FELEM long double +#define FELEM2 long double +#define FELEML long double +#define WINDOW_TYPE 24 #endif @@ -123,8 +132,11 @@ /* normalize so that an uniform color remains the same */ for(i=0;isrc_incr; for(i=0; ifilter_length; i++){ - int64_t coeff= filter[i]*(256 - sub_phase) + filter[i + c->filter_length]*sub_phase; + FELEML coeff= filter[i]*(256 - sub_phase) + filter[i + c->filter_length]*sub_phase; v += src[sample_index + i] * coeff; } val= v>>8; @@ -269,8 +281,12 @@ } } +#ifdef CONFIG_RESAMPLE_AUDIOPHILE_KIDDY_MODE + dst[dst_index] = av_clip(lrintf(val), -32768, 32767); +#else val = (val + (1<<(FILTER_SHIFT-1)))>>FILTER_SHIFT; dst[dst_index] = (unsigned)(val + 32768) > 65535 ? (val>>31) ^ 32767 : val; +#endif frac += dst_incr_frac; index += dst_incr;