Go to the documentation of this file.
67 const int chroma_format_idc)
70 #define FUNC(a, depth) a ## _ ## depth ## _c
72 #define ADDPX_DSP(depth) \
73 c->h264_add_pixels4_clear = FUNC(ff_h264_add_pixels4, depth);\
74 c->h264_add_pixels8_clear = FUNC(ff_h264_add_pixels8, depth)
82 #define H264_DSP(depth) \
83 c->h264_idct_add= FUNC(ff_h264_idct_add, depth);\
84 c->h264_idct8_add= FUNC(ff_h264_idct8_add, depth);\
85 c->h264_idct_dc_add= FUNC(ff_h264_idct_dc_add, depth);\
86 c->h264_idct8_dc_add= FUNC(ff_h264_idct8_dc_add, depth);\
87 c->h264_idct_add16 = FUNC(ff_h264_idct_add16, depth);\
88 c->h264_idct8_add4 = FUNC(ff_h264_idct8_add4, depth);\
89 if (chroma_format_idc <= 1)\
90 c->h264_idct_add8 = FUNC(ff_h264_idct_add8, depth);\
92 c->h264_idct_add8 = FUNC(ff_h264_idct_add8_422, depth);\
93 c->h264_idct_add16intra= FUNC(ff_h264_idct_add16intra, depth);\
94 c->h264_luma_dc_dequant_idct= FUNC(ff_h264_luma_dc_dequant_idct, depth);\
95 if (chroma_format_idc <= 1)\
96 c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma_dc_dequant_idct, depth);\
98 c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma422_dc_dequant_idct, depth);\
100 c->weight_h264_pixels_tab[0]= FUNC(weight_h264_pixels16, depth);\
101 c->weight_h264_pixels_tab[1]= FUNC(weight_h264_pixels8, depth);\
102 c->weight_h264_pixels_tab[2]= FUNC(weight_h264_pixels4, depth);\
103 c->weight_h264_pixels_tab[3]= FUNC(weight_h264_pixels2, depth);\
104 c->biweight_h264_pixels_tab[0]= FUNC(biweight_h264_pixels16, depth);\
105 c->biweight_h264_pixels_tab[1]= FUNC(biweight_h264_pixels8, depth);\
106 c->biweight_h264_pixels_tab[2]= FUNC(biweight_h264_pixels4, depth);\
107 c->biweight_h264_pixels_tab[3]= FUNC(biweight_h264_pixels2, depth);\
109 c->h264_v_loop_filter_luma= FUNC(h264_v_loop_filter_luma, depth);\
110 c->h264_h_loop_filter_luma= FUNC(h264_h_loop_filter_luma, depth);\
111 c->h264_h_loop_filter_luma_mbaff= FUNC(h264_h_loop_filter_luma_mbaff, depth);\
112 c->h264_v_loop_filter_luma_intra= FUNC(h264_v_loop_filter_luma_intra, depth);\
113 c->h264_h_loop_filter_luma_intra= FUNC(h264_h_loop_filter_luma_intra, depth);\
114 c->h264_h_loop_filter_luma_mbaff_intra= FUNC(h264_h_loop_filter_luma_mbaff_intra, depth);\
115 c->h264_v_loop_filter_chroma= FUNC(h264_v_loop_filter_chroma, depth);\
116 if (chroma_format_idc <= 1)\
117 c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma, depth);\
119 c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma422, depth);\
120 if (chroma_format_idc <= 1)\
121 c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma_mbaff, depth);\
123 c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma422_mbaff, depth);\
124 c->h264_v_loop_filter_chroma_intra= FUNC(h264_v_loop_filter_chroma_intra, depth);\
125 if (chroma_format_idc <= 1)\
126 c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma_intra, depth);\
128 c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma422_intra, depth);\
129 if (chroma_format_idc <= 1)\
130 c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma_mbaff_intra, depth);\
132 c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma422_mbaff_intra, depth);\
133 c->h264_loop_filter_strength= NULL;
void ff_h264dsp_init_mips(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
int ff_startcode_find_candidate_c(const uint8_t *buf, int size)
static void bit_depth(AudioStatsContext *s, const uint64_t *const mask, uint8_t *depth)
void ff_h264dsp_init_loongarch(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
av_cold void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
#define av_assert0(cond)
assert() equivalent, that is always enabled.
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
Context for storing H.264 DSP functions.
av_cold void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
av_cold void ff_h264dsp_init(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
void ff_h264dsp_init_riscv(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
av_cold void ff_h264dsp_init_aarch64(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)