From e30ab38e94252398e4390e12e1a883d24cc5afa5 Mon Sep 17 00:00:00 2001
From: Vitor Sessak <vitor1001@gmail.com>
Date: Sun, 21 Mar 2010 11:31:11 +0000
Subject: [PATCH] Call DCT by function pointer. Needed for any future ASM
 implementation and allows further cleanup.

Originally committed as revision 22617 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/dct.c | 4 +++-
 libavcodec/fft.h | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

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);
 };
 
 /**