diff --git a/libswresample/dither.c b/libswresample/dither.c index 88f788066e7d8b126e929d1090da64e1bdeecb1c..8d5d0bcca9d8050fa78756f656ab98fb17119294 100644 --- a/libswresample/dither.c +++ b/libswresample/dither.c @@ -21,7 +21,7 @@ #include "libavutil/avassert.h" #include "swresample_internal.h" -void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, enum SwrDitherType method) { +void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt) { double scale = 0; #define TMP_EXTRA 2 double *tmp = av_malloc((len + TMP_EXTRA) * sizeof(double)); @@ -40,7 +40,7 @@ void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_ double v; seed = seed* 1664525 + 1013904223; - switch(method){ + switch(s->dither_method){ case SWR_DITHER_RECTANGULAR: v= ((double)seed) / UINT_MAX - 0.5; break; case SWR_DITHER_TRIANGULAR : case SWR_DITHER_TRIANGULAR_HIGHPASS : @@ -56,7 +56,7 @@ void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_ for(i=0; i<len; i++){ double v; - switch(method){ + switch(s->dither_method){ case SWR_DITHER_RECTANGULAR: case SWR_DITHER_TRIANGULAR : v = tmp[i]; diff --git a/libswresample/swresample.c b/libswresample/swresample.c index 78b0355c4f08956a8c6bd6090e6ef45d0ba39053..3078e87c65ee6cea2e19bd1c0f50b38fe7403bd5 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -527,7 +527,7 @@ static int swr_convert_internal(struct SwrContext *s, AudioData *out, int out_co return ret; if(ret) for(ch=0; ch<s->dither.ch_count; ch++) - swri_get_dither(s->dither.ch[ch], s->dither.count, 12345678913579<<ch, s->out_sample_fmt, s->int_sample_fmt, s->dither_method); + swri_get_dither(s, s->dither.ch[ch], s->dither.count, 12345678913579<<ch, s->out_sample_fmt, s->int_sample_fmt); av_assert0(s->dither.ch_count == preout->ch_count); if(s->dither_pos + out_count > s->dither.count) diff --git a/libswresample/swresample_internal.h b/libswresample/swresample_internal.h index 68b51305bc219487bf2b1c720d79e68b1b3622ce..d2cb85b375c82e4e32a7dded1bc0fbb3266e8d2e 100644 --- a/libswresample/swresample_internal.h +++ b/libswresample/swresample_internal.h @@ -94,6 +94,6 @@ int swri_rematrix_init(SwrContext *s); int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy); void swri_sum2(enum AVSampleFormat format, void *dst, const void *src0, const void *src1, float coef0, float coef1, int len); -void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, enum SwrDitherType type); +void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt); #endif