Mercurial > libavcodec.hg
comparison vp8dsp.h @ 11950:56aba5a9761c libavcodec
Make VP8 DSP functions take two strides
This isn't useful for the C functions, but will allow re-using H and V functions
for HV functions without adding separate H and V wrappers.
author | darkshikari |
---|---|
date | Fri, 25 Jun 2010 18:14:07 +0000 |
parents | f2007d7c3f1d |
children | 356b20a6566d |
comparison
equal
deleted
inserted
replaced
11949:778bdafd5496 | 11950:56aba5a9761c |
---|---|
25 #ifndef AVCODEC_VP8DSP_H | 25 #ifndef AVCODEC_VP8DSP_H |
26 #define AVCODEC_VP8DSP_H | 26 #define AVCODEC_VP8DSP_H |
27 | 27 |
28 #include "dsputil.h" | 28 #include "dsputil.h" |
29 | 29 |
30 typedef void (*vp8_mc_func)(uint8_t *dst/*align 8*/, int dstStride, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); | |
31 | |
30 typedef struct VP8DSPContext { | 32 typedef struct VP8DSPContext { |
31 void (*vp8_luma_dc_wht)(DCTELEM block[4][4][16], DCTELEM dc[16]); | 33 void (*vp8_luma_dc_wht)(DCTELEM block[4][4][16], DCTELEM dc[16]); |
32 void (*vp8_idct_add)(uint8_t *dst, DCTELEM block[16], int stride); | 34 void (*vp8_idct_add)(uint8_t *dst, DCTELEM block[16], int stride); |
33 void (*vp8_idct_dc_add)(uint8_t *dst, DCTELEM block[16], int stride); | 35 void (*vp8_idct_dc_add)(uint8_t *dst, DCTELEM block[16], int stride); |
34 | 36 |
53 * 1 4-tap vertical interpolation filter (my & 1) | 55 * 1 4-tap vertical interpolation filter (my & 1) |
54 * 2 6-tap vertical interpolation filter (!(my & 1)) | 56 * 2 6-tap vertical interpolation filter (!(my & 1)) |
55 * third dimension: same as second dimention, for horizontal interpolation | 57 * third dimension: same as second dimention, for horizontal interpolation |
56 * so something like put_vp8_epel_pixels_tab[width>>3][2*!!my-(my&1)][2*!!mx-(mx&1)](..., mx, my) | 58 * so something like put_vp8_epel_pixels_tab[width>>3][2*!!my-(my&1)][2*!!mx-(mx&1)](..., mx, my) |
57 */ | 59 */ |
58 h264_chroma_mc_func put_vp8_epel_pixels_tab[3][3][3]; | 60 vp8_mc_func put_vp8_epel_pixels_tab[3][3][3]; |
59 } VP8DSPContext; | 61 } VP8DSPContext; |
60 | 62 |
61 void ff_put_vp8_pixels16_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); | 63 void ff_put_vp8_pixels16_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); |
62 void ff_put_vp8_pixels8_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); | 64 void ff_put_vp8_pixels8_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); |
63 void ff_put_vp8_pixels4_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); | 65 void ff_put_vp8_pixels4_c(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y); |