25 #ifndef AVCODEC_X86_HEVCDSP_H 
   26 #define AVCODEC_X86_HEVCDSP_H 
   32 #define PEL_LINK(dst, idx1, idx2, idx3, name, D, opt) \ 
   33 dst[idx1][idx2][idx3] = ff_hevc_put_hevc_ ## name ## _ ## D ## _##opt; \ 
   34 dst ## _bi[idx1][idx2][idx3] = ff_hevc_put_hevc_bi_ ## name ## _ ## D ## _##opt; \ 
   35 dst ## _uni[idx1][idx2][idx3] = ff_hevc_put_hevc_uni_ ## name ## _ ## D ## _##opt; \ 
   36 dst ## _uni_w[idx1][idx2][idx3] = ff_hevc_put_hevc_uni_w_ ## name ## _ ## D ## _##opt; \ 
   37 dst ## _bi_w[idx1][idx2][idx3] = ff_hevc_put_hevc_bi_w_ ## name ## _ ## D ## _##opt 
   40 #define PEL_PROTOTYPE(name, D, opt) \ 
   41 void ff_hevc_put_hevc_ ## name ## _ ## D ## _##opt(int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my,int width); \ 
   42 void ff_hevc_put_hevc_bi_ ## name ## _ ## D ## _##opt(uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width); \ 
   43 void ff_hevc_put_hevc_uni_ ## name ## _ ## D ## _##opt(uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width); \ 
   44 void ff_hevc_put_hevc_uni_w_ ## name ## _ ## D ## _##opt(uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width); \ 
   45 void ff_hevc_put_hevc_bi_w_ ## name ## _ ## D ## _##opt(uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width) 
   52 #define EPEL_PROTOTYPES(fname, bitd, opt) \ 
   53         PEL_PROTOTYPE(fname##4,  bitd, opt); \ 
   54         PEL_PROTOTYPE(fname##6,  bitd, opt); \ 
   55         PEL_PROTOTYPE(fname##8,  bitd, opt); \ 
   56         PEL_PROTOTYPE(fname##12, bitd, opt); \ 
   57         PEL_PROTOTYPE(fname##16, bitd, opt); \ 
   58         PEL_PROTOTYPE(fname##24, bitd, opt); \ 
   59         PEL_PROTOTYPE(fname##32, bitd, opt); \ 
   60         PEL_PROTOTYPE(fname##48, bitd, opt); \ 
   61         PEL_PROTOTYPE(fname##64, bitd, opt) 
   63 #define QPEL_PROTOTYPES(fname, bitd, opt) \ 
   64         PEL_PROTOTYPE(fname##4,  bitd, opt); \ 
   65         PEL_PROTOTYPE(fname##8,  bitd, opt); \ 
   66         PEL_PROTOTYPE(fname##12, bitd, opt); \ 
   67         PEL_PROTOTYPE(fname##16, bitd, opt); \ 
   68         PEL_PROTOTYPE(fname##24, bitd, opt); \ 
   69         PEL_PROTOTYPE(fname##32, bitd, opt); \ 
   70         PEL_PROTOTYPE(fname##48, bitd, opt); \ 
   71         PEL_PROTOTYPE(fname##64, bitd, opt) 
   73 #define WEIGHTING_PROTOTYPE(width, bitd, opt) \ 
   74 void ff_hevc_put_hevc_uni_w##width##_##bitd##_##opt(uint8_t *dst, ptrdiff_t dststride, int16_t *_src, int height, int denom,  int _wx, int _ox); \ 
   75 void ff_hevc_put_hevc_bi_w##width##_##bitd##_##opt(uint8_t *dst, ptrdiff_t dststride, int16_t *_src, int16_t *_src2, int height, int denom,  int _wx0,  int _wx1, int _ox0, int _ox1) 
   77 #define WEIGHTING_PROTOTYPES(bitd, opt) \ 
   78         WEIGHTING_PROTOTYPE(2, bitd, opt); \ 
   79         WEIGHTING_PROTOTYPE(4, bitd, opt); \ 
   80         WEIGHTING_PROTOTYPE(6, bitd, opt); \ 
   81         WEIGHTING_PROTOTYPE(8, bitd, opt); \ 
   82         WEIGHTING_PROTOTYPE(12, bitd, opt); \ 
   83         WEIGHTING_PROTOTYPE(16, bitd, opt); \ 
   84         WEIGHTING_PROTOTYPE(24, bitd, opt); \ 
   85         WEIGHTING_PROTOTYPE(32, bitd, opt); \ 
   86         WEIGHTING_PROTOTYPE(48, bitd, opt); \ 
   87         WEIGHTING_PROTOTYPE(64, bitd, opt) 
  259 #endif // AVCODEC_X86_HEVCDSP_H