25 #ifndef AVCODEC_HEVCDSP_H 26 #define AVCODEC_HEVCDSP_H 32 #define MAX_PB_SIZE 64 59 void (*
idct[4])(int16_t *coeffs,
int col_limit);
61 void (*idct_dc[4])(int16_t *coeffs);
64 int16_t *sao_offset_val,
int sao_left_class,
int width,
int height);
68 int16_t *sao_offset_val,
int sao_eo_class,
int width,
int height);
70 void (*sao_edge_restore[2])(
uint8_t *_dst,
uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src,
71 struct SAOParams *sao,
int *borders,
int _width,
int _height,
int c_idx,
74 void (*put_hevc_qpel[10][2][2])(int16_t *dst,
uint8_t *
src, ptrdiff_t srcstride,
78 void (*put_hevc_qpel_uni_w[10][2][2])(
uint8_t *_dst, ptrdiff_t _dststride,
uint8_t *_src, ptrdiff_t _srcstride,
79 int height,
int denom,
int wx,
int ox, intptr_t mx, intptr_t my,
int width);
81 void (*put_hevc_qpel_bi[10][2][2])(
uint8_t *dst, ptrdiff_t dststride,
uint8_t *_src, ptrdiff_t _srcstride,
84 void (*put_hevc_qpel_bi_w[10][2][2])(
uint8_t *dst, ptrdiff_t dststride,
uint8_t *_src, ptrdiff_t _srcstride,
86 int height,
int denom,
int wx0,
int wx1,
87 int ox0,
int ox1, intptr_t mx, intptr_t my,
int width);
88 void (*put_hevc_epel[10][2][2])(int16_t *dst,
uint8_t *
src, ptrdiff_t srcstride,
91 void (*put_hevc_epel_uni[10][2][2])(
uint8_t *dst, ptrdiff_t dststride,
uint8_t *_src, ptrdiff_t _srcstride,
93 void (*put_hevc_epel_uni_w[10][2][2])(
uint8_t *_dst, ptrdiff_t _dststride,
uint8_t *_src, ptrdiff_t _srcstride,
94 int height,
int denom,
int wx,
int ox, intptr_t mx, intptr_t my,
int width);
95 void (*put_hevc_epel_bi[10][2][2])(
uint8_t *dst, ptrdiff_t dststride,
uint8_t *_src, ptrdiff_t _srcstride,
98 void (*put_hevc_epel_bi_w[10][2][2])(
uint8_t *dst, ptrdiff_t dststride,
uint8_t *_src, ptrdiff_t _srcstride,
100 int height,
int denom,
int wx0,
int ox0,
int wx1,
101 int ox1, intptr_t mx, intptr_t my,
int width);
static void idct(int16_t block[64])
const int8_t ff_hevc_qpel_filters[3][16]
static av_always_inline void FUNC() add_residual(uint8_t *_dst, int16_t *res, ptrdiff_t stride, int size)
void ff_hevc_dsp_init_ppc(HEVCDSPContext *c, const int bit_depth)
static int dequant(AVSContext *h, int16_t *level_buf, uint8_t *run_buf, int16_t *dst, int mul, int shift, int coeff_num)
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
static void FUNC() hevc_h_loop_filter_luma(uint8_t *pix, ptrdiff_t stride, int beta, int32_t *tc, uint8_t *no_p, uint8_t *no_q)
bitstream reader API header.
void ff_hevc_dsp_init(HEVCDSPContext *hpc, int bit_depth)
const int8_t ff_hevc_epel_filters[7][4]
int eo_class[3]
sao_eo_class
static void FUNC() sao_band_filter(uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, int16_t *sao_offset_val, int sao_left_class, int width, int height)
uint8_t type_idx[3]
sao_type_idx
int offset_abs[3][4]
sao_offset_abs
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
static void bit_depth(AudioStatsContext *s, uint64_t mask, uint64_t imask, AVRational *depth)
static void FUNC() hevc_v_loop_filter_luma(uint8_t *pix, ptrdiff_t stride, int beta, int32_t *tc, uint8_t *no_p, uint8_t *no_q)
void ff_hevc_dsp_init_mips(HEVCDSPContext *c, const int bit_depth)
void ff_hevc_dsp_init_arm(HEVCDSPContext *c, const int bit_depth)
void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int bit_depth)
static void FUNC() hevc_h_loop_filter_chroma(uint8_t *pix, ptrdiff_t stride, int32_t *tc, uint8_t *no_p, uint8_t *no_q)
void ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int bit_depth)
static void FUNC() put_pcm(uint8_t *_dst, ptrdiff_t stride, int width, int height, GetBitContext *gb, int pcm_bit_depth)
static void FUNC() transform_rdpcm(int16_t *_coeffs, int16_t log2_size, int mode)
static void FUNC() hevc_v_loop_filter_chroma(uint8_t *pix, ptrdiff_t stride, int32_t *tc, uint8_t *no_p, uint8_t *no_q)
int16_t offset_val[3][5]
SaoOffsetVal.
uint8_t band_position[3]
sao_band_position
static void FUNC() sao_edge_filter(uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, int16_t *sao_offset_val, int eo, int width, int height)
static void FUNC() transform_4x4_luma(int16_t *coeffs)
mode
Use these values in ebur128_init (or'ed).
int offset_sign[3][4]
sao_offset_sign