#define DCTSIZE 8
#define DCTSIZE2 64
-typedef void (idct_func_t)(const int16_t*, const uint32_t*, uint8_t*);
+// void* idct_example_alloc(const uint32_t* quant_table);
+typedef void* (idct_alloc_t)(const uint32_t*);
-// Non-factorized reference version (section A.3.3 of the JPEG standard).
-void idct_reference(const int16_t* input, const uint32_t* quant_table, uint8_t* output);
+// void idct_example_free(const void* userdata);
+// userdata is the same as returned by the alloc function.
+typedef void (idct_free_t)(void*);
-// Floating-point IDCT due to Arai, Agui and Nakajima (also known as AA&N).
-// See idct.c for more details.
-void idct_float(const int16_t* input, const uint32_t* quant_table, uint8_t* output);
+// void idct_example(const int16_t* input, const void* userdata, uint8_t* output);
+// userdata is the same as returned by the alloc function.
+typedef void (idct_func_t)(const int16_t*, const void*, uint8_t*);
#endif /* !defined(_IDCT_H) */