From 8ee78e87ce7961a5b02762fd71c6e348198307fe Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 8 Jan 2005 21:34:06 +0000 Subject: always cancel down fractions (frac_t) to avoid overflows and playback problems (e.g. when using resample and equalizer filters together, see http://mplayerhq.hu/pipermail/mplayer-users/2004-December/050058.html) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14434 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libaf/af_lavcresample.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'libaf/af_lavcresample.c') diff --git a/libaf/af_lavcresample.c b/libaf/af_lavcresample.c index c99e29e7ee..db970a1615 100644 --- a/libaf/af_lavcresample.c +++ b/libaf/af_lavcresample.c @@ -40,7 +40,6 @@ typedef struct af_resample_s{ // Initialization and runtime control static int control(struct af_instance_s* af, int cmd, void* arg) { - int g; af_resample_t* s = (af_resample_t*)af->setup; af_data_t *data= (af_data_t*)arg; int out_rate, test_output_res; // helpers for checking input format @@ -54,9 +53,9 @@ static int control(struct af_instance_s* af, int cmd, void* arg) if (af->data->nch > CHANS) af->data->nch = CHANS; af->data->format = AF_FORMAT_S16_NE; af->data->bps = 2; - g= ff_gcd(af->data->rate, data->rate); - af->mul.n = af->data->rate/g; - af->mul.d = data->rate/g; + af->mul.n = af->data->rate; + af->mul.d = data->rate; + af_frac_cancel(&af->mul); af->delay = 500*s->filter_length/(double)min(af->data->rate, data->rate); if(s->avrctx) av_resample_close(s->avrctx); -- cgit v1.2.3