* DSPContext.
*/
typedef struct DSPContext {
- /* pixel ops : interface with DCT */
- void (*get_pixels)(int16_t *block /* align 16 */,
- const uint8_t *pixels /* align 8 */,
- int line_size);
- void (*diff_pixels)(int16_t *block /* align 16 */,
- const uint8_t *s1 /* align 8 */,
- const uint8_t *s2 /* align 8 */,
- int stride);
int (*sum_abs_dctelem)(int16_t *block /* align 16 */);
- int (*pix_sum)(uint8_t *pix, int line_size);
- int (*pix_norm1)(uint8_t *pix, int line_size);
-
me_cmp_func sad[6]; /* identical to pix_absAxA except additional void * */
me_cmp_func sse[6];
me_cmp_func hadamard8_diff[6];
me_cmp_func frame_skip_cmp[6]; // only width 8 used
me_cmp_func pix_abs[2][4];
-
- /* (I)DCT */
- void (*fdct)(int16_t *block /* align 16 */);
- void (*fdct248)(int16_t *block /* align 16 */);
-
- int (*try_8x8basis)(int16_t rem[64], int16_t weight[64],
- int16_t basis[64], int scale);
- void (*add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale);
-#define BASIS_SHIFT 16
-#define RECON_SHIFT 6
-
- void (*draw_edges)(uint8_t *buf, int wrap, int width, int height,
- int w, int h, int sides);
-#define EDGE_WIDTH 16
-#define EDGE_TOP 1
-#define EDGE_BOTTOM 2
-
- void (*shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src,
- int src_wrap, int width, int height);
} DSPContext;
void ff_dsputil_static_init(void);
void ff_set_cmp(DSPContext *c, me_cmp_func *cmp, int type);
void ff_dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
-void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx,
- unsigned high_bit_depth);
-void ff_dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx,
- unsigned high_bit_depth);
-void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx,
- unsigned high_bit_depth);
+void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx);
+void ff_dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx);
+void ff_dsputil_init_x86(DSPContext *c, AVCodecContext *avctx);
void ff_dsputil_init_dwt(DSPContext *c);