X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvc1dsp.h;h=3e0a88e28d45588aae693b8134f57780d88c1bce;hb=b6e8ff72ea055f40ee272a97bde3ff21b3ea6c27;hp=32bb25b7f7759647ae6d0bcabc45dfaea6cf7300;hpb=2912e87a6c9264d556734e2bf94a99c64cf9b102;p=ffmpeg diff --git a/libavcodec/vc1dsp.h b/libavcodec/vc1dsp.h index 32bb25b7f77..3e0a88e28d4 100644 --- a/libavcodec/vc1dsp.h +++ b/libavcodec/vc1dsp.h @@ -30,13 +30,9 @@ #include "dsputil.h" -typedef void (*vc1_idct_func)(uint8_t *dest, int line_size, DCTELEM *block); - typedef struct VC1DSPContext { /* vc1 functions */ - vc1_idct_func vc1_inv_trans_8x8_add; - vc1_idct_func vc1_inv_trans_8x8_put_signed[2]; - vc1_idct_func vc1_inv_trans_8x8_put[2]; + void (*vc1_inv_trans_8x8)(DCTELEM *b); void (*vc1_inv_trans_8x4)(uint8_t *dest, int line_size, DCTELEM *block); void (*vc1_inv_trans_4x8)(uint8_t *dest, int line_size, DCTELEM *block); void (*vc1_inv_trans_4x4)(uint8_t *dest, int line_size, DCTELEM *block); @@ -44,8 +40,10 @@ typedef struct VC1DSPContext { void (*vc1_inv_trans_8x4_dc)(uint8_t *dest, int line_size, DCTELEM *block); void (*vc1_inv_trans_4x8_dc)(uint8_t *dest, int line_size, DCTELEM *block); void (*vc1_inv_trans_4x4_dc)(uint8_t *dest, int line_size, DCTELEM *block); - void (*vc1_v_overlap)(uint8_t* src, int stride); - void (*vc1_h_overlap)(uint8_t* src, int stride); + void (*vc1_v_overlap)(uint8_t *src, int stride); + void (*vc1_h_overlap)(uint8_t *src, int stride); + void (*vc1_v_s_overlap)(DCTELEM *top, DCTELEM *bottom); + void (*vc1_h_s_overlap)(DCTELEM *left, DCTELEM *right); void (*vc1_v_loop_filter4)(uint8_t *src, int stride, int pq); void (*vc1_h_loop_filter4)(uint8_t *src, int stride, int pq); void (*vc1_v_loop_filter8)(uint8_t *src, int stride, int pq); @@ -62,6 +60,16 @@ typedef struct VC1DSPContext { /* This is really one func used in VC-1 decoding */ h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3]; h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3]; + + /* Windows Media Image functions */ + void (*sprite_h)(uint8_t *dst, const uint8_t *src, int offset, int advance, int count); + void (*sprite_v_single)(uint8_t *dst, const uint8_t *src1a, const uint8_t *src1b, int offset, int width); + void (*sprite_v_double_noscale)(uint8_t *dst, const uint8_t *src1a, const uint8_t *src2a, int alpha, int width); + void (*sprite_v_double_onescale)(uint8_t *dst, const uint8_t *src1a, const uint8_t *src1b, int offset1, + const uint8_t *src2a, int alpha, int width); + void (*sprite_v_double_twoscale)(uint8_t *dst, const uint8_t *src1a, const uint8_t *src1b, int offset1, + const uint8_t *src2a, const uint8_t *src2b, int offset2, + int alpha, int width); } VC1DSPContext; void ff_vc1dsp_init(VC1DSPContext* c);