From 9bc7ee8a9874be3c6a0e54d9a008c6d94f5b7c6e Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 6 Feb 2015 18:48:12 +0100 Subject: avcodec/avfft: Add simple self test Signed-off-by: Michael Niedermayer --- libavcodec/Makefile | 1 + libavcodec/avfft.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) (limited to 'libavcodec') diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c366020c2a..7d3b423462 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -862,6 +862,7 @@ SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h TESTPROGS = imgconvert \ options \ + avfft \ TESTPROGS-$(CONFIG_CABAC) += cabac diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c index 2200f37708..675d2b906b 100644 --- a/libavcodec/avfft.c +++ b/libavcodec/avfft.c @@ -142,4 +142,38 @@ av_cold void av_dct_end(DCTContext *s) } } +#ifdef TEST +int main(int argc, char **argv) +{ + int i; +#define LEN 1024 + FFTSample *ref = av_malloc_array(LEN, sizeof(*ref)); + FFTSample *data = av_malloc_array(LEN, sizeof(*data)); + RDFTContext *rdft_context = av_rdft_init(10, DFT_R2C); + RDFTContext *irdft_context = av_rdft_init(10, IDFT_C2R); + + if (!ref || !data || !rdft_context || !irdft_context) + return 2; + for (i=0; i 1) { + fprintf(stderr, "Failed at %d (%f %f)\n", i, ref[i], data[i]/LEN*2); + return 1; + } + } + + av_rdft_end(rdft_context); + av_rdft_end(irdft_context); + av_free(data); + av_free(ref); + + return 0; +} +#endif + #endif /* CONFIG_DCT */ -- cgit v1.2.3