diff --git a/libavcodec/dct.c b/libavcodec/dct.c index fbcfeeb105..7cc383379b 100644 --- a/libavcodec/dct.c +++ b/libavcodec/dct.c @@ -105,7 +105,7 @@ static void ff_dct_calc_c(DCTContext *ctx, FFTSample *data) void ff_dct_calc(DCTContext *s, FFTSample *data) { - ff_dct_calc_c(s, data); + s->dct_calc(s, data); } av_cold int ff_dct_init(DCTContext *s, int nbits, int inverse) @@ -130,6 +130,8 @@ av_cold int ff_dct_init(DCTContext *s, int nbits, int inverse) for (i = 0; i < n/2; i++) s->csc2[i] = 0.5 / sin((M_PI / (2*n) * (2*i + 1))); + s->dct_calc = ff_dct_calc_c; + return 0; } diff --git a/libavcodec/fft.h b/libavcodec/fft.h index 17eb380731..df7ded99a8 100644 --- a/libavcodec/fft.h +++ b/libavcodec/fft.h @@ -220,6 +220,7 @@ struct DCTContext { RDFTContext rdft; const float *costab; FFTSample *csc2; + void (*dct_calc)(struct DCTContext *s, FFTSample *data); }; /**