#ifndef idct_h
#define idct_h

#include "inttypes.h"

extern void (*idct_block_copy) (int32_t * block, uint8_t * dest, int stride);
extern void (*idct_block_copy_dc) (int32_t * block, uint8_t * dest, int stride);
extern void (*idct_block_add) (int32_t * block, uint8_t * dest, int stride);
extern void (*idct_block_add_dc) (int32_t * block, uint8_t * dest, int stride);

extern void idct_block_copy_neon(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_add_neon(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_copy_dc_neon(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_add_dc_neon(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_copy_dc_arm(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_add_dc_arm(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_copy_c(int32_t *block, uint8_t *dest, int stride);
extern void idct_block_add_c(int32_t *block, uint8_t *dest, int stride);

#endif
