32 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
34 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
36 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
38 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
40 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
42 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
44 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
46 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
48 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
50 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
52 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
54 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
149#define NEON8_FNASSIGN(member, v, h, fn, ext) \
150 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
151 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
152 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
153 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
154 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
155 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
156 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
157 member[8][v][h] = ff_hevc_put_hevc_##fn##48_8_neon##ext; \
158 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
160#define NEON8_FNASSIGN_SHARED_32(member, v, h, fn, ext) \
161 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
162 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
163 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
164 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
165 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
166 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
169 member[9][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext;
171#define NEON8_FNASSIGN_PARTIAL_4(member, v, h, fn, ext) \
172 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
173 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
174 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
175 member[7][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
176 member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
177 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
179#define NEON8_FNASSIGN_PARTIAL_5(member, v, h, fn, ext) \
180 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
181 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
182 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
183 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
184 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
186#define NEON8_FNASSIGN_PARTIAL_6(member, v, h, fn, ext) \
187 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
188 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
189 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
190 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
191 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
192 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
193 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
194 member[8][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
195 member[9][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext;
204#define NEON8_FNASSIGN_QPEL_H(member, fn) \
205 member[1][0][1] = ff_hevc_put_hevc_##fn##_h4_8_neon; \
206 member[2][0][1] = ff_hevc_put_hevc_##fn##_h6_8_neon; \
207 member[3][0][1] = ff_hevc_put_hevc_##fn##_h8_8_neon; \
209 member[6][0][1] = ff_hevc_put_hevc_##fn##_h12_8_neon; \
210 member[5][0][1] = ff_hevc_put_hevc_##fn##_h16_8_neon; \
213 member[9][0][1] = ff_hevc_put_hevc_##fn##_h32_8_neon;
240 c->sao_band_filter[1] =
241 c->sao_band_filter[2] =
242 c->sao_band_filter[3] =
245 c->sao_edge_filter[1] =
246 c->sao_edge_filter[2] =
247 c->sao_edge_filter[3] =
void ff_hevc_sao_edge_filter_8x8_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
void ff_hevc_sao_edge_filter_16x16_8_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, const int16_t *sao_offset_val, int eo, int width, int height)
void ff_h26x_sao_band_filter_8x8_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
void ff_h26x_sao_band_filter_16x16_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
static void bit_depth(AudioStatsContext *s, const uint64_t *const mask, uint8_t *depth)
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_unreachable(msg)
Asserts that are used as compiler optimization hints depending upon ASSERT_LEVEL and NBDEBUG.
void ff_hevc_v_loop_filter_luma_10_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_dequant_16x16_10_neon(int16_t *coeffs)
void ff_hevc_add_residual_4x4_8_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_32x32_dc_8_neon(int16_t *coeffs)
void ff_hevc_idct_8x8_dc_8_neon(int16_t *coeffs)
void ff_hevc_h_loop_filter_luma_12_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
static void hevc_dequant_12_neon(int16_t *coeffs, int16_t log2_size)
#define NEON8_FNASSIGN_PARTIAL_6(member, v, h, fn, ext)
void ff_hevc_dequant_16x16_8_neon(int16_t *coeffs)
void ff_hevc_add_residual_32x32_8_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_32x32_10_neon(int16_t *coeffs, int col_limit)
void ff_hevc_add_residual_4x4_10_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_v_loop_filter_luma_8_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_idct_32x32_dc_10_neon(int16_t *coeffs)
void ff_hevc_idct_32x32_8_neon(int16_t *coeffs, int col_limit)
void ff_hevc_add_residual_8x8_8_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_v_loop_filter_luma_12_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_idct_16x16_dc_8_neon(int16_t *coeffs)
void ff_hevc_add_residual_16x16_8_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_4x4_8_neon(int16_t *coeffs, int col_limit)
void ff_hevc_dequant_32x32_10_neon(int16_t *coeffs)
void ff_hevc_idct_16x16_dc_12_neon(int16_t *coeffs)
void ff_hevc_idct_4x4_10_neon(int16_t *coeffs, int col_limit)
void ff_hevc_add_residual_16x16_10_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_add_residual_16x16_12_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_dequant_4x4_8_neon(int16_t *coeffs)
void ff_hevc_v_loop_filter_chroma_8_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_dequant_8x8_10_neon(int16_t *coeffs)
#define NEON8_FNASSIGN_QPEL_H(member, fn)
#define NEON8_FNASSIGN(member, v, h, fn, ext)
void ff_hevc_add_residual_32x32_12_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_32x32_dc_12_neon(int16_t *coeffs)
void ff_hevc_dequant_4x4_10_neon(int16_t *coeffs)
static void hevc_dequant_8_neon(int16_t *coeffs, int16_t log2_size)
void ff_hevc_h_loop_filter_chroma_12_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_idct_8x8_8_neon(int16_t *coeffs, int col_limit)
void ff_hevc_idct_16x16_dc_10_neon(int16_t *coeffs)
void ff_hevc_idct_4x4_dc_8_neon(int16_t *coeffs)
void ff_hevc_idct_4x4_dc_12_neon(int16_t *coeffs)
void ff_hevc_h_loop_filter_chroma_8_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_dequant_4x4_12_neon(int16_t *coeffs)
void ff_hevc_h_loop_filter_luma_8_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_dequant_16x16_12_neon(int16_t *coeffs)
void ff_hevc_add_residual_32x32_10_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_dequant_32x32_8_neon(int16_t *coeffs)
void ff_hevc_add_residual_4x4_12_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_8x8_dc_12_neon(int16_t *coeffs)
void ff_hevc_idct_16x16_10_neon(int16_t *coeffs, int col_limit)
void ff_hevc_add_residual_8x8_12_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_idct_8x8_10_neon(int16_t *coeffs, int col_limit)
void ff_hevc_v_loop_filter_chroma_10_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
static void hevc_dequant_10_neon(int16_t *coeffs, int16_t log2_size)
void ff_hevc_idct_8x8_dc_10_neon(int16_t *coeffs)
#define NEON8_FNASSIGN_SHARED_32(member, v, h, fn, ext)
void ff_hevc_dequant_8x8_12_neon(int16_t *coeffs)
void ff_hevc_v_loop_filter_chroma_12_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_transform_luma_4x4_neon_8(int16_t *coeffs)
void ff_hevc_idct_16x16_8_neon(int16_t *coeffs, int col_limit)
void ff_hevc_idct_4x4_dc_10_neon(int16_t *coeffs)
av_cold void ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int bit_depth)
void ff_hevc_dequant_32x32_12_neon(int16_t *coeffs)
void ff_hevc_h_loop_filter_luma_10_neon(uint8_t *_pix, ptrdiff_t _stride, int beta, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
void ff_hevc_add_residual_8x8_10_neon(uint8_t *_dst, const int16_t *coeffs, ptrdiff_t stride)
void ff_hevc_dequant_8x8_8_neon(int16_t *coeffs)
void ff_hevc_h_loop_filter_chroma_10_neon(uint8_t *_pix, ptrdiff_t _stride, const int *_tc, const uint8_t *_no_p, const uint8_t *_no_q)
Macro definitions for various function/variable attributes.
static atomic_int cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.