summaryrefslogtreecommitdiff
path: root/libavcodec/avfft.h
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2010-03-23 19:48:16 +0000
committerVitor Sessak <vitor1001@gmail.com>2010-03-23 19:48:16 +0000
commite1484ebed6d7a7e193d27e5d5fdf1ee585127081 (patch)
tree0f169f26370c6f76d65da974d42d0e11035cd82b /libavcodec/avfft.h
parentbe548816dc05c7e7a07659d499f1005fc0bc1d55 (diff)
Implement the discrete sine/cosine transforms DCT-I and DST-I
Originally committed as revision 22649 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/avfft.h')
-rw-r--r--libavcodec/avfft.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h
index d0babc0909..623f0a33b5 100644
--- a/libavcodec/avfft.h
+++ b/libavcodec/avfft.h
@@ -77,12 +77,22 @@ void av_rdft_end(RDFTContext *s);
typedef struct DCTContext DCTContext;
+enum DCTTransformType {
+ DCT_II = 0,
+ DCT_III,
+ DCT_I,
+ DST_I,
+};
+
/**
- * Set up (Inverse)DCT.
- * @param nbits log2 of the length of the input array
- * @param inverse >0 forward transform, <0 inverse transform
+ * Sets up DCT.
+ * @param nbits size of the input array:
+ * (1 << nbits) for DCT-II, DCT-III and DST-I
+ * (1 << nbits) + 1 for DCT-I
+ *
+ * @note the first element of the input of DST-I is ignored
*/
-DCTContext *av_dct_init(int nbits, int inverse);
+DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
void av_dct_calc(DCTContext *s, FFTSample *data);
void av_dct_end (DCTContext *s);