FFmpeg
Macros | Functions
h2656dsp.h File Reference
#include "config.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include <stdlib.h>

Go to the source code of this file.

Macros

#define H2656_PEL_PROTOTYPE(name, D, opt)
 
#define H2656_MC_8TAP_PROTOTYPES(fname, bitd, opt)
 
#define H2656_MC_4TAP_PROTOTYPES(fname, bitd, opt)
 
#define H2656_MC_4TAP_PROTOTYPES_SSE4(bitd)
 
#define H2656_MC_8TAP_PROTOTYPES_AVX2(fname)
 

Functions

 H2656_MC_8TAP_PROTOTYPES (pixels, 8, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (pixels, 10, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (pixels, 12, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_h, 8, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_h, 10, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_h, 12, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_v, 8, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_v, 10, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_v, 12, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_hv, 8, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_hv, 10, sse4)
 
 H2656_MC_8TAP_PROTOTYPES (8tap_hv, 12, sse4)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (pixels)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (8tap_h)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (8tap_v)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (8tap_hv)
 
 H2656_PEL_PROTOTYPE (8tap_hv16, 8, avx2)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (4tap_h)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (4tap_v)
 
 H2656_MC_8TAP_PROTOTYPES_AVX2 (4tap_hv)
 

Macro Definition Documentation

◆ H2656_PEL_PROTOTYPE

#define H2656_PEL_PROTOTYPE (   name,
  D,
  opt 
)
Value:
void ff_h2656_put_ ## name ## _ ## D ## _##opt(int16_t *dst, ptrdiff_t dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width); \
void ff_h2656_put_uni_ ## name ## _ ## D ## _##opt(uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width) \

Definition at line 32 of file h2656dsp.h.

◆ H2656_MC_8TAP_PROTOTYPES

#define H2656_MC_8TAP_PROTOTYPES (   fname,
  bitd,
  opt 
)
Value:
H2656_PEL_PROTOTYPE(fname##4, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##6, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##8, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##12, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##16, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##32, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##64, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##128, bitd, opt)

Definition at line 36 of file h2656dsp.h.

◆ H2656_MC_4TAP_PROTOTYPES

#define H2656_MC_4TAP_PROTOTYPES (   fname,
  bitd,
  opt 
)
Value:
H2656_PEL_PROTOTYPE(fname##2, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##4, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##6, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##8, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##12, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##16, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##32, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##64, bitd, opt); \
H2656_PEL_PROTOTYPE(fname##128, bitd, opt)

Definition at line 59 of file h2656dsp.h.

◆ H2656_MC_4TAP_PROTOTYPES_SSE4

#define H2656_MC_4TAP_PROTOTYPES_SSE4 (   bitd)
Value:
H2656_PEL_PROTOTYPE(pixels2, bitd, sse4); \
H2656_MC_4TAP_PROTOTYPES(4tap_h, bitd, sse4); \
H2656_MC_4TAP_PROTOTYPES(4tap_v, bitd, sse4); \
H2656_MC_4TAP_PROTOTYPES(4tap_hv, bitd, sse4); \

Definition at line 70 of file h2656dsp.h.

◆ H2656_MC_8TAP_PROTOTYPES_AVX2

#define H2656_MC_8TAP_PROTOTYPES_AVX2 (   fname)
Value:
H2656_PEL_PROTOTYPE(fname##32 , 8, avx2); \
H2656_PEL_PROTOTYPE(fname##64 , 8, avx2); \
H2656_PEL_PROTOTYPE(fname##128, 8, avx2); \
H2656_PEL_PROTOTYPE(fname##16 ,10, avx2); \
H2656_PEL_PROTOTYPE(fname##32 ,10, avx2); \
H2656_PEL_PROTOTYPE(fname##64 ,10, avx2); \
H2656_PEL_PROTOTYPE(fname##128,10, avx2); \
H2656_PEL_PROTOTYPE(fname##16 ,12, avx2); \
H2656_PEL_PROTOTYPE(fname##32 ,12, avx2); \
H2656_PEL_PROTOTYPE(fname##64 ,12, avx2); \
H2656_PEL_PROTOTYPE(fname##128,12, avx2) \

Definition at line 80 of file h2656dsp.h.

Function Documentation

◆ H2656_MC_8TAP_PROTOTYPES() [1/12]

H2656_MC_8TAP_PROTOTYPES ( pixels  ,
,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [2/12]

H2656_MC_8TAP_PROTOTYPES ( pixels  ,
10  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [3/12]

H2656_MC_8TAP_PROTOTYPES ( pixels  ,
12  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [4/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_h  ,
,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [5/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_h  ,
10  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [6/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_h  ,
12  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [7/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_v  ,
,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [8/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_v  ,
10  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [9/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_v  ,
12  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [10/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_hv  ,
,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [11/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_hv  ,
10  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES() [12/12]

H2656_MC_8TAP_PROTOTYPES ( 8tap_hv  ,
12  ,
sse4   
)

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [1/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( pixels  )

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [2/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 8tap_h  )

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [3/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 8tap_v  )

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [4/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 8tap_hv  )

◆ H2656_PEL_PROTOTYPE()

H2656_PEL_PROTOTYPE ( 8tap_hv16  ,
,
avx2   
)

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [5/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 4tap_h  )

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [6/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 4tap_v  )

◆ H2656_MC_8TAP_PROTOTYPES_AVX2() [7/7]

H2656_MC_8TAP_PROTOTYPES_AVX2 ( 4tap_hv  )
name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
D
D(D(float, sse)
Definition: rematrix_init.c:29
width
#define width
H2656_PEL_PROTOTYPE
#define H2656_PEL_PROTOTYPE(name, D, opt)
Definition: h2656dsp.h:32
height
#define height
_
#define _