X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavcodec%2Fvp3dsp.h;h=39c4408c0f673c439e5e6c845a33b740f626bc30;hb=42b9150b0d4f0a130c1d93dc991fd5412743a8cf;hp=3781bbf3a7d0da274bc64f9d4466cfa2de44bd33;hpb=28f9ab7029bd1a02f659995919f899f84ee7361b;p=ffmpeg diff --git a/libavcodec/vp3dsp.h b/libavcodec/vp3dsp.h index 3781bbf3a7d..39c4408c0f6 100644 --- a/libavcodec/vp3dsp.h +++ b/libavcodec/vp3dsp.h @@ -19,21 +19,35 @@ #ifndef AVCODEC_VP3DSP_H #define AVCODEC_VP3DSP_H +#include #include -#include "dsputil.h" typedef struct VP3DSPContext { - void (*idct_put)(uint8_t *dest, int line_size, DCTELEM *block); - void (*idct_add)(uint8_t *dest, int line_size, DCTELEM *block); - void (*idct_dc_add)(uint8_t *dest, int line_size, const DCTELEM *block); + /** + * Copy 8xH pixels from source to destination buffer using a bilinear + * filter with no rounding (i.e. *dst = (*a + *b) >> 1). + * + * @param dst destination buffer, aligned by 8 + * @param a first source buffer, no alignment + * @param b second source buffer, no alignment + * @param stride distance between two lines in source/dest buffers + * @param h height + */ + void (*put_no_rnd_pixels_l2)(uint8_t *dst, + const uint8_t *a, + const uint8_t *b, + ptrdiff_t stride, int h); + + void (*idct_put)(uint8_t *dest, int line_size, int16_t *block); + void (*idct_add)(uint8_t *dest, int line_size, int16_t *block); + void (*idct_dc_add)(uint8_t *dest, int line_size, int16_t *block); void (*v_loop_filter)(uint8_t *src, int stride, int *bounding_values); void (*h_loop_filter)(uint8_t *src, int stride, int *bounding_values); - - int idct_perm; } VP3DSPContext; void ff_vp3dsp_init(VP3DSPContext *c, int flags); void ff_vp3dsp_init_arm(VP3DSPContext *c, int flags); +void ff_vp3dsp_init_bfin(VP3DSPContext *c, int flags); void ff_vp3dsp_init_ppc(VP3DSPContext *c, int flags); void ff_vp3dsp_init_x86(VP3DSPContext *c, int flags);