Go to the documentation of this file.
   35                                 const uint8_t *
src1, 
const uint8_t *
src2,
 
   36                                 ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   38                                   const uint8_t *
src1, 
const uint8_t *
src2,
 
   39                                   ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   41                                        const uint8_t *
src1, 
const uint8_t *
src2,
 
   42                                        ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   44                                        const uint8_t *
src1, 
const uint8_t *
src2,
 
   45                                        ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   47                                          const uint8_t *
src1, 
const uint8_t *
src2,
 
   48                                          ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   50                                          const uint8_t *
src1, 
const uint8_t *
src2,
 
   51                                          ptrdiff_t dstStride, ptrdiff_t src1Stride);
 
   53                                           ptrdiff_t dstStride, ptrdiff_t srcStride, 
int h);
 
   55                                           ptrdiff_t dstStride, ptrdiff_t srcStride, 
int h);
 
   58                                                  ptrdiff_t dstStride, ptrdiff_t srcStride,
 
   61                                          ptrdiff_t dstStride, ptrdiff_t srcStride, 
int h);
 
   63                                          ptrdiff_t dstStride, ptrdiff_t srcStride, 
int h);
 
   66                                                 ptrdiff_t dstStride, ptrdiff_t srcStride,
 
   69                                           ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   71                                           ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   74                                                  ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   76                                          ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   78                                          ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   81                                                 ptrdiff_t dstStride, ptrdiff_t srcStride);
 
   85 #define QPEL_OP(OPNAME, RND, MMX)                                       \ 
   86 static void OPNAME ## qpel8_mc10_ ## MMX(uint8_t *dst,                  \ 
   91     uint8_t *const half = (uint8_t *) temp;                             \ 
   92     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8,        \ 
   94     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, src, half,               \ 
   98 static void OPNAME ## qpel8_mc20_ ## MMX(uint8_t *dst,                  \ 
  102     ff_ ## OPNAME ## mpeg4_qpel8_h_lowpass_ ## MMX(dst, src, stride,    \ 
  106 static void OPNAME ## qpel8_mc30_ ## MMX(uint8_t *dst,                  \ 
  107                                          const uint8_t *src,            \ 
  111     uint8_t *const half = (uint8_t *) temp;                             \ 
  112     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(half, src, 8,        \ 
  114     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, src + 1, half,           \ 
  118 static void OPNAME ## qpel8_mc01_ ## MMX(uint8_t *dst,                  \ 
  119                                          const uint8_t *src,            \ 
  123     uint8_t *const half = (uint8_t *) temp;                             \ 
  124     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src,           \ 
  126     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, src, half,               \ 
  130 static void OPNAME ## qpel8_mc02_ ## MMX(uint8_t *dst,                  \ 
  131                                          const uint8_t *src,            \ 
  134     ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, src,            \ 
  138 static void OPNAME ## qpel8_mc03_ ## MMX(uint8_t *dst,                  \ 
  139                                          const uint8_t *src,            \ 
  143     uint8_t *const half = (uint8_t *) temp;                             \ 
  144     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(half, src,           \ 
  146     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, src + stride, half,      \ 
  150 static void OPNAME ## qpel8_mc11_ ## MMX(uint8_t *dst,                  \ 
  151                                          const uint8_t *src,            \ 
  154     uint64_t half[8 + 9];                                               \ 
  155     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  156     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  157     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  159     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src, halfH, 8,         \ 
  161     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  162     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH, halfHV,           \ 
  166 static void OPNAME ## qpel8_mc31_ ## MMX(uint8_t *dst,                  \ 
  167                                          const uint8_t *src,            \ 
  170     uint64_t half[8 + 9];                                               \ 
  171     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  172     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  173     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  175     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src + 1, halfH, 8,     \ 
  177     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  178     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH, halfHV,           \ 
  182 static void OPNAME ## qpel8_mc13_ ## MMX(uint8_t *dst,                  \ 
  183                                          const uint8_t *src,            \ 
  186     uint64_t half[8 + 9];                                               \ 
  187     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  188     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  189     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  191     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src, halfH, 8,         \ 
  193     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  194     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH + 8, halfHV,       \ 
  198 static void OPNAME ## qpel8_mc33_ ## MMX(uint8_t *dst,                  \ 
  199                                          const uint8_t *src,            \ 
  202     uint64_t half[8 + 9];                                               \ 
  203     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  204     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  205     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  207     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src + 1, halfH, 8,     \ 
  209     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  210     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH + 8, halfHV,       \ 
  214 static void OPNAME ## qpel8_mc21_ ## MMX(uint8_t *dst,                  \ 
  215                                          const uint8_t *src,            \ 
  218     uint64_t half[8 + 9];                                               \ 
  219     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  220     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  221     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  223     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  224     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH, halfHV,           \ 
  228 static void OPNAME ## qpel8_mc23_ ## MMX(uint8_t *dst,                  \ 
  229                                          const uint8_t *src,            \ 
  232     uint64_t half[8 + 9];                                               \ 
  233     uint8_t *const halfH  = (uint8_t *) half + 64;                      \ 
  234     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  235     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  237     ff_put ## RND ## mpeg4_qpel8_v_lowpass_ ## MMX(halfHV, halfH, 8, 8);\ 
  238     ff_ ## OPNAME ## pixels8x8_l2_ ## MMX(dst, halfH + 8, halfHV,       \ 
  242 static void OPNAME ## qpel8_mc12_ ## MMX(uint8_t *dst,                  \ 
  243                                          const uint8_t *src,            \ 
  246     uint64_t half[8 + 9];                                               \ 
  247     uint8_t *const halfH = (uint8_t *) half;                            \ 
  248     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  250     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src, halfH,            \ 
  252     ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, halfH,          \ 
  256 static void OPNAME ## qpel8_mc32_ ## MMX(uint8_t *dst,                  \ 
  257                                          const uint8_t *src,            \ 
  260     uint64_t half[8 + 9];                                               \ 
  261     uint8_t *const halfH = (uint8_t *) half;                            \ 
  262     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  264     ff_put ## RND ## pixels8x9_l2_ ## MMX(halfH, src + 1, halfH, 8,     \ 
  266     ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, halfH,          \ 
  270 static void OPNAME ## qpel8_mc22_ ## MMX(uint8_t *dst,                  \ 
  271                                          const uint8_t *src,            \ 
  275     uint8_t *const halfH = (uint8_t *) half;                            \ 
  276     ff_put ## RND ## mpeg4_qpel8_h_lowpass_ ## MMX(halfH, src, 8,       \ 
  278     ff_ ## OPNAME ## mpeg4_qpel8_v_lowpass_ ## MMX(dst, halfH,          \ 
  282 static void OPNAME ## qpel16_mc10_ ## MMX(uint8_t *dst,                 \ 
  283                                           const uint8_t *src,           \ 
  287     uint8_t *const half = (uint8_t *) temp;                             \ 
  288     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16,      \ 
  290     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, src, half,             \ 
  294 static void OPNAME ## qpel16_mc20_ ## MMX(uint8_t *dst,                 \ 
  295                                           const uint8_t *src,           \ 
  298     ff_ ## OPNAME ## mpeg4_qpel16_h_lowpass_ ## MMX(dst, src,           \ 
  299                                                     stride, stride, 16);\ 
  302 static void OPNAME ## qpel16_mc30_ ## MMX(uint8_t *dst,                 \ 
  303                                           const uint8_t *src,           \ 
  307     uint8_t *const half = (uint8_t*) temp;                              \ 
  308     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(half, src, 16,      \ 
  310     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, src + 1, half,         \ 
  314 static void OPNAME ## qpel16_mc01_ ## MMX(uint8_t *dst,                 \ 
  315                                           const uint8_t *src,           \ 
  319     uint8_t *const half = (uint8_t *) temp;                             \ 
  320     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16,      \ 
  322     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, src, half,             \ 
  326 static void OPNAME ## qpel16_mc02_ ## MMX(uint8_t *dst,                 \ 
  327                                           const uint8_t *src,           \ 
  330     ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, src,           \ 
  334 static void OPNAME ## qpel16_mc03_ ## MMX(uint8_t *dst,                 \ 
  335                                           const uint8_t *src,           \ 
  339     uint8_t *const half = (uint8_t *) temp;                             \ 
  340     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(half, src, 16,      \ 
  342     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, src+stride, half,      \ 
  346 static void OPNAME ## qpel16_mc11_ ## MMX(uint8_t *dst,                 \ 
  347                                           const uint8_t *src,           \ 
  350     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  351     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  352     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  353     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  355     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src, halfH, 16,      \ 
  357     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  359     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH, halfHV,         \ 
  363 static void OPNAME ## qpel16_mc31_ ## MMX(uint8_t *dst,                 \ 
  364                                           const uint8_t *src,           \ 
  367     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  368     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  369     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  370     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  372     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src + 1, halfH, 16,  \ 
  374     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  376     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH, halfHV,         \ 
  380 static void OPNAME ## qpel16_mc13_ ## MMX(uint8_t *dst,                 \ 
  381                                           const uint8_t *src,           \ 
  384     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  385     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  386     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  387     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  389     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src, halfH, 16,      \ 
  391     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  393     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH + 16, halfHV,    \ 
  397 static void OPNAME ## qpel16_mc33_ ## MMX(uint8_t *dst,                 \ 
  398                                           const uint8_t *src,           \ 
  401     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  402     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  403     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  404     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  406     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src + 1, halfH, 16,  \ 
  408     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  410     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH + 16, halfHV,    \ 
  414 static void OPNAME ## qpel16_mc21_ ## MMX(uint8_t *dst,                 \ 
  415                                           const uint8_t *src,           \ 
  418     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  419     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  420     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  421     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  423     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  425     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH, halfHV,         \ 
  429 static void OPNAME ## qpel16_mc23_ ## MMX(uint8_t *dst,                 \ 
  430                                           const uint8_t *src,           \ 
  433     uint64_t half[16 * 2 + 17 * 2];                                     \ 
  434     uint8_t *const halfH  = (uint8_t *) half + 256;                     \ 
  435     uint8_t *const halfHV = (uint8_t *) half;                           \ 
  436     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  438     ff_put ## RND ## mpeg4_qpel16_v_lowpass_ ## MMX(halfHV, halfH,      \ 
  440     ff_ ## OPNAME ## pixels16x16_l2_ ## MMX(dst, halfH + 16, halfHV,    \ 
  444 static void OPNAME ## qpel16_mc12_ ## MMX(uint8_t *dst,                 \ 
  445                                           const uint8_t *src,           \ 
  448     uint64_t half[17 * 2];                                              \ 
  449     uint8_t *const halfH = (uint8_t *) half;                            \ 
  450     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  452     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src, halfH, 16,      \ 
  454     ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, halfH,         \ 
  458 static void OPNAME ## qpel16_mc32_ ## MMX(uint8_t *dst,                 \ 
  459                                           const uint8_t *src,           \ 
  462     uint64_t half[17 * 2];                                              \ 
  463     uint8_t *const halfH = (uint8_t *) half;                            \ 
  464     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  466     ff_put ## RND ## pixels16x17_l2_ ## MMX(halfH, src + 1, halfH, 16,  \ 
  468     ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, halfH,         \ 
  472 static void OPNAME ## qpel16_mc22_ ## MMX(uint8_t *dst,                 \ 
  473                                           const uint8_t *src,           \ 
  476     uint64_t half[17 * 2];                                              \ 
  477     uint8_t *const halfH = (uint8_t *) half;                            \ 
  478     ff_put ## RND ## mpeg4_qpel16_h_lowpass_ ## MMX(halfH, src, 16,     \ 
  480     ff_ ## OPNAME ## mpeg4_qpel16_v_lowpass_ ## MMX(dst, halfH,         \ 
  484 QPEL_OP(put_,        
_,        mmxext)
 
  485 QPEL_OP(avg_,        
_,        mmxext)
 
  486 QPEL_OP(put_no_rnd_, _no_rnd_, mmxext)
 
  490 #define SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU, PREFIX)                          \ 
  492     c->PFX ## _pixels_tab[IDX][ 1] = PREFIX ## PFX ## SIZE ## _mc10_ ## CPU; \ 
  493     c->PFX ## _pixels_tab[IDX][ 2] = PREFIX ## PFX ## SIZE ## _mc20_ ## CPU; \ 
  494     c->PFX ## _pixels_tab[IDX][ 3] = PREFIX ## PFX ## SIZE ## _mc30_ ## CPU; \ 
  495     c->PFX ## _pixels_tab[IDX][ 4] = PREFIX ## PFX ## SIZE ## _mc01_ ## CPU; \ 
  496     c->PFX ## _pixels_tab[IDX][ 5] = PREFIX ## PFX ## SIZE ## _mc11_ ## CPU; \ 
  497     c->PFX ## _pixels_tab[IDX][ 6] = PREFIX ## PFX ## SIZE ## _mc21_ ## CPU; \ 
  498     c->PFX ## _pixels_tab[IDX][ 7] = PREFIX ## PFX ## SIZE ## _mc31_ ## CPU; \ 
  499     c->PFX ## _pixels_tab[IDX][ 8] = PREFIX ## PFX ## SIZE ## _mc02_ ## CPU; \ 
  500     c->PFX ## _pixels_tab[IDX][ 9] = PREFIX ## PFX ## SIZE ## _mc12_ ## CPU; \ 
  501     c->PFX ## _pixels_tab[IDX][10] = PREFIX ## PFX ## SIZE ## _mc22_ ## CPU; \ 
  502     c->PFX ## _pixels_tab[IDX][11] = PREFIX ## PFX ## SIZE ## _mc32_ ## CPU; \ 
  503     c->PFX ## _pixels_tab[IDX][12] = PREFIX ## PFX ## SIZE ## _mc03_ ## CPU; \ 
  504     c->PFX ## _pixels_tab[IDX][13] = PREFIX ## PFX ## SIZE ## _mc13_ ## CPU; \ 
  505     c->PFX ## _pixels_tab[IDX][14] = PREFIX ## PFX ## SIZE ## _mc23_ ## CPU; \ 
  506     c->PFX ## _pixels_tab[IDX][15] = PREFIX ## PFX ## SIZE ## _mc33_ ## CPU; \ 
  514 #if HAVE_MMXEXT_EXTERNAL 
  525 #if HAVE_SSE2_EXTERNAL 
  527         c->put_no_rnd_qpel_pixels_tab[0][0] =
 
  529         c->put_no_rnd_qpel_pixels_tab[1][0] =
 
  
void ff_avg_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)
 
void ff_put_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
void ff_avg_pixels16x16_sse2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size)
 
void ff_avg_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
 
static atomic_int cpu_flags
 
void ff_put_no_rnd_pixels8x9_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
void ff_put_no_rnd_pixels8x8_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
void ff_put_pixels16x17_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
void ff_avg_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
void ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)
 
void ff_avg_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)
 
void ff_put_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)
 
void ff_put_pixels16x16_sse2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size)
 
#define SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU, PREFIX)
 
void ff_put_pixels8x8_sse2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size)
 
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
 
void ff_put_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
 
av_cold void ff_qpeldsp_init_x86(QpelDSPContext *c)
 
void ff_put_no_rnd_mpeg4_qpel16_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
void ff_put_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)
 
#define EXTERNAL_SSE2(flags)
 
void ff_put_no_rnd_mpeg4_qpel8_h_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)
 
void ff_put_no_rnd_pixels16x16_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
void ff_avg_pixels8x8_mmxext(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size)
 
void ff_put_pixels8x9_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
void ff_put_no_rnd_pixels16x17_l2_mmxext(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t src1Stride)
 
#define X86_MMXEXT(flags)
 
void ff_put_no_rnd_mpeg4_qpel16_v_lowpass_mmxext(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)