19 #ifndef AVCODEC_IDCTDSP_H 20 #define AVCODEC_IDCTDSP_H 58 void (*put_signed_pixels_clamped)(
const int16_t *block ,
61 void (*add_pixels_clamped)(
const int16_t *block ,
73 ptrdiff_t line_size, int16_t *block );
80 ptrdiff_t line_size, int16_t *block );
103 ptrdiff_t line_size);
105 ptrdiff_t line_size);
110 unsigned high_bit_depth);
112 unsigned high_bit_depth);
114 unsigned high_bit_depth);
116 unsigned high_bit_depth);
118 unsigned high_bit_depth);
120 unsigned high_bit_depth);
void ff_idctdsp_init_x86(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
int ff_init_scantable_permutation_x86(uint8_t *idct_permutation, enum idct_permutation_type perm_type)
void ff_idctdsp_init(IDCTDSPContext *c, AVCodecContext *avctx)
void ff_add_pixels_clamped_c(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
static void idct(int16_t block[64])
static void idct_add(uint8_t *dst, int stride, const uint8_t *src, int in_linesize, int *block)
void ff_idctdsp_init_arm(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
The exact code depends on how similar the blocks are and how related they are to the block
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
const uint8_t * scantable
void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
void ff_idctdsp_init_mips(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
void ff_init_scantable_permutation(uint8_t *idct_permutation, enum idct_permutation_type perm_type)
void ff_idctdsp_init_aarch64(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
static void idct_put(FourXContext *f, int x, int y)
void ff_idctdsp_init_alpha(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
Libavcodec external API header.
void ff_idctdsp_init_ppc(IDCTDSPContext *c, AVCodecContext *avctx, unsigned high_bit_depth)
main external API structure.
void ff_put_pixels_clamped_c(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)