FFmpeg  4.3
Macros | Functions
hevcdsp_template.c File Reference
#include "get_bits.h"
#include "hevcdec.h"
#include "bit_depth_template.c"
#include "hevcdsp.h"

Go to the source code of this file.

Macros

#define SET(dst, x)   (dst) = (x)
 
#define SCALE(dst, x)   (dst) = av_clip_int16(((x) + add) >> shift)
 
#define TR_4x4_LUMA(dst, src, step, assign)
 
#define TR_4(dst, src, dstep, sstep, assign, end)
 
#define TR_8(dst, src, dstep, sstep, assign, end)
 
#define TR_16(dst, src, dstep, sstep, assign, end)
 
#define TR_32(dst, src, dstep, sstep, assign, end)
 
#define IDCT_VAR4(H)   int limit2 = FFMIN(col_limit + 4, H)
 
#define IDCT_VAR8(H)
 
#define IDCT_VAR16(H)   IDCT_VAR8(H)
 
#define IDCT_VAR32(H)   IDCT_VAR8(H)
 
#define IDCT(H)
 
#define IDCT_DC(H)
 
#define CMP(a, b)   (((a) > (b)) - ((a) < (b)))
 
#define QPEL_FILTER(src, stride)
 
#define EPEL_FILTER(src, stride)
 
#define P3   pix[-4 * xstride]
 
#define P2   pix[-3 * xstride]
 
#define P1   pix[-2 * xstride]
 
#define P0   pix[-1 * xstride]
 
#define Q0   pix[0 * xstride]
 
#define Q1   pix[1 * xstride]
 
#define Q2   pix[2 * xstride]
 
#define Q3   pix[3 * xstride]
 
#define TP3   pix[-4 * xstride + 3 * ystride]
 
#define TP2   pix[-3 * xstride + 3 * ystride]
 
#define TP1   pix[-2 * xstride + 3 * ystride]
 
#define TP0   pix[-1 * xstride + 3 * ystride]
 
#define TQ0   pix[0 * xstride + 3 * ystride]
 
#define TQ1   pix[1 * xstride + 3 * ystride]
 
#define TQ2   pix[2 * xstride + 3 * ystride]
 
#define TQ3   pix[3 * xstride + 3 * ystride]
 

Functions

static void FUNC() put_pcm (uint8_t *_dst, ptrdiff_t stride, int width, int height, GetBitContext *gb, int pcm_bit_depth)
 
static av_always_inline void FUNC() add_residual (uint8_t *_dst, int16_t *res, ptrdiff_t stride, int size)
 
static void FUNC() add_residual4x4 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual8x8 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual16x16 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() add_residual32x32 (uint8_t *_dst, int16_t *res, ptrdiff_t stride)
 
static void FUNC() transform_rdpcm (int16_t *_coeffs, int16_t log2_size, int mode)
 
static void FUNC() dequant (int16_t *coeffs, int16_t log2_size)
 
static void FUNC() transform_4x4_luma (int16_t *coeffs)
 
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)
 
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() sao_edge_restore_0 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t *vert_edge, uint8_t *horiz_edge, uint8_t *diag_edge)
 
static void FUNC() sao_edge_restore_1 (uint8_t *_dst, uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, SAOParams *sao, int *borders, int _width, int _height, int c_idx, uint8_t *vert_edge, uint8_t *horiz_edge, uint8_t *diag_edge)
 
static void FUNC() put_hevc_pel_pixels (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_uni_pixels (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_bi_pixels (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_uni_w_pixels (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_pel_bi_w_pixels (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_h (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_v (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_hv (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_uni_w_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_qpel_bi_w_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_h (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_v (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_hv (int16_t *dst, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_h (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_v (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_uni_w_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int height, int denom, int wx, int ox, intptr_t mx, intptr_t my, int width)
 
static void FUNC() put_hevc_epel_bi_w_hv (uint8_t *_dst, ptrdiff_t _dststride, uint8_t *_src, ptrdiff_t _srcstride, int16_t *src2, int height, int denom, int wx0, int wx1, int ox0, int ox1, intptr_t mx, intptr_t my, int width)
 
static void FUNC() hevc_loop_filter_luma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int beta, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
static void FUNC() hevc_loop_filter_chroma (uint8_t *_pix, ptrdiff_t _xstride, ptrdiff_t _ystride, int *_tc, uint8_t *_no_p, uint8_t *_no_q)
 
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)
 
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)
 
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)
 
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)
 

Macro Definition Documentation

◆ SET

#define SET (   dst,
  x 
)    (dst) = (x)

Definition at line 131 of file hevcdsp_template.c.

◆ SCALE

#define SCALE (   dst,
  x 
)    (dst) = av_clip_int16(((x) + add) >> shift)

Definition at line 132 of file hevcdsp_template.c.

◆ TR_4x4_LUMA

#define TR_4x4_LUMA (   dst,
  src,
  step,
  assign 
)
Value:
do { \
int c0 = src[0 * step] + src[2 * step]; \
int c1 = src[2 * step] + src[3 * step]; \
int c2 = src[0 * step] - src[3 * step]; \
int c3 = 74 * src[1 * step]; \
assign(dst[2 * step], 74 * (src[0 * step] - \
src[2 * step] + \
src[3 * step])); \
assign(dst[0 * step], 29 * c0 + 55 * c1 + c3); \
assign(dst[1 * step], 55 * c2 - 29 * c1 + c3); \
assign(dst[3 * step], 55 * c0 + 29 * c2 - c3); \
} while (0)

Definition at line 134 of file hevcdsp_template.c.

◆ TR_4

#define TR_4 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
const int e0 = 64 * src[0 * sstep] + 64 * src[2 * sstep]; \
const int e1 = 64 * src[0 * sstep] - 64 * src[2 * sstep]; \
const int o0 = 83 * src[1 * sstep] + 36 * src[3 * sstep]; \
const int o1 = 36 * src[1 * sstep] - 83 * src[3 * sstep]; \
assign(dst[0 * dstep], e0 + o0); \
assign(dst[1 * dstep], e1 + o1); \
assign(dst[2 * dstep], e1 - o1); \
assign(dst[3 * dstep], e0 - o0); \
} while (0)

Definition at line 171 of file hevcdsp_template.c.

◆ TR_8

#define TR_8 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_8[4]; \
int o_8[4] = { 0 }; \
for (i = 0; i < 4; i++) \
for (j = 1; j < end; j += 2) \
o_8[i] += transform[4 * j][i] * src[j * sstep]; \
TR_4(e_8, src, 1, 2 * sstep, SET, 4); \
for (i = 0; i < 4; i++) { \
assign(dst[i * dstep], e_8[i] + o_8[i]); \
assign(dst[(7 - i) * dstep], e_8[i] - o_8[i]); \
} \
} while (0)

Definition at line 184 of file hevcdsp_template.c.

◆ TR_16

#define TR_16 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_16[8]; \
int o_16[8] = { 0 }; \
for (i = 0; i < 8; i++) \
for (j = 1; j < end; j += 2) \
o_16[i] += transform[2 * j][i] * src[j * sstep]; \
TR_8(e_16, src, 1, 2 * sstep, SET, 8); \
for (i = 0; i < 8; i++) { \
assign(dst[i * dstep], e_16[i] + o_16[i]); \
assign(dst[(15 - i) * dstep], e_16[i] - o_16[i]); \
} \
} while (0)

Definition at line 200 of file hevcdsp_template.c.

◆ TR_32

#define TR_32 (   dst,
  src,
  dstep,
  sstep,
  assign,
  end 
)
Value:
do { \
int i, j; \
int e_32[16]; \
int o_32[16] = { 0 }; \
for (i = 0; i < 16; i++) \
for (j = 1; j < end; j += 2) \
o_32[i] += transform[j][i] * src[j * sstep]; \
TR_16(e_32, src, 1, 2 * sstep, SET, end / 2); \
for (i = 0; i < 16; i++) { \
assign(dst[i * dstep], e_32[i] + o_32[i]); \
assign(dst[(31 - i) * dstep], e_32[i] - o_32[i]); \
} \
} while (0)

Definition at line 216 of file hevcdsp_template.c.

◆ IDCT_VAR4

#define IDCT_VAR4 (   H)    int limit2 = FFMIN(col_limit + 4, H)

Definition at line 232 of file hevcdsp_template.c.

◆ IDCT_VAR8

#define IDCT_VAR8 (   H)
Value:
int limit = FFMIN(col_limit, H); \
int limit2 = FFMIN(col_limit + 4, H)

Definition at line 234 of file hevcdsp_template.c.

◆ IDCT_VAR16

#define IDCT_VAR16 (   H)    IDCT_VAR8(H)

Definition at line 237 of file hevcdsp_template.c.

◆ IDCT_VAR32

#define IDCT_VAR32 (   H)    IDCT_VAR8(H)

Definition at line 238 of file hevcdsp_template.c.

◆ IDCT

#define IDCT (   H)
Value:
static void FUNC(idct_ ## H ## x ## H )(int16_t *coeffs, \
int col_limit) \
{ \
int i; \
int shift = 7; \
int add = 1 << (shift - 1); \
int16_t *src = coeffs; \
IDCT_VAR ## H(H); \
for (i = 0; i < H; i++) { \
TR_ ## H(src, src, H, H, SCALE, limit2); \
if (limit2 < H && i%4 == 0 && !!i) \
limit2 -= 4; \
src++; \
} \
\
shift = 20 - BIT_DEPTH; \
add = 1 << (shift - 1); \
for (i = 0; i < H; i++) { \
TR_ ## H(coeffs, coeffs, 1, 1, SCALE, limit); \
coeffs += H; \
} \
}

Definition at line 240 of file hevcdsp_template.c.

◆ IDCT_DC

#define IDCT_DC (   H)
Value:
static void FUNC(idct_ ## H ## x ## H ## _dc)(int16_t *coeffs) \
{ \
int i, j; \
int shift = 14 - BIT_DEPTH; \
int add = 1 << (shift - 1); \
int coeff = (((coeffs[0] + 1) >> 1) + add) >> shift; \
for (j = 0; j < H; j++) { \
for (i = 0; i < H; i++) { \
coeffs[i + j * H] = coeff; \
} \
} \
}

Definition at line 265 of file hevcdsp_template.c.

◆ CMP

#define CMP (   a,
  b 
)    (((a) > (b)) - ((a) < (b)))

Definition at line 322 of file hevcdsp_template.c.

◆ QPEL_FILTER

#define QPEL_FILTER (   src,
  stride 
)
Value:
(filter[0] * src[x - 3 * stride] + \
filter[1] * src[x - 2 * stride] + \
filter[2] * src[x - stride] + \
filter[3] * src[x ] + \
filter[4] * src[x + stride] + \
filter[5] * src[x + 2 * stride] + \
filter[6] * src[x + 3 * stride] + \
filter[7] * src[x + 4 * stride])

Definition at line 607 of file hevcdsp_template.c.

◆ EPEL_FILTER

#define EPEL_FILTER (   src,
  stride 
)
Value:
(filter[0] * src[x - stride] + \
filter[1] * src[x] + \
filter[2] * src[x + stride] + \
filter[3] * src[x + 2 * stride])

Definition at line 1064 of file hevcdsp_template.c.

◆ P3

#define P3   pix[-4 * xstride]

Definition at line 1497 of file hevcdsp_template.c.

◆ P2

#define P2   pix[-3 * xstride]

Definition at line 1498 of file hevcdsp_template.c.

◆ P1

#define P1   pix[-2 * xstride]

Definition at line 1499 of file hevcdsp_template.c.

◆ P0

#define P0   pix[-1 * xstride]

Definition at line 1500 of file hevcdsp_template.c.

◆ Q0

#define Q0   pix[0 * xstride]

Definition at line 1501 of file hevcdsp_template.c.

◆ Q1

#define Q1   pix[1 * xstride]

Definition at line 1502 of file hevcdsp_template.c.

◆ Q2

#define Q2   pix[2 * xstride]

Definition at line 1503 of file hevcdsp_template.c.

◆ Q3

#define Q3   pix[3 * xstride]

Definition at line 1504 of file hevcdsp_template.c.

◆ TP3

#define TP3   pix[-4 * xstride + 3 * ystride]

Definition at line 1507 of file hevcdsp_template.c.

◆ TP2

#define TP2   pix[-3 * xstride + 3 * ystride]

Definition at line 1508 of file hevcdsp_template.c.

◆ TP1

#define TP1   pix[-2 * xstride + 3 * ystride]

Definition at line 1509 of file hevcdsp_template.c.

◆ TP0

#define TP0   pix[-1 * xstride + 3 * ystride]

Definition at line 1510 of file hevcdsp_template.c.

◆ TQ0

#define TQ0   pix[0 * xstride + 3 * ystride]

Definition at line 1511 of file hevcdsp_template.c.

◆ TQ1

#define TQ1   pix[1 * xstride + 3 * ystride]

Definition at line 1512 of file hevcdsp_template.c.

◆ TQ2

#define TQ2   pix[2 * xstride + 3 * ystride]

Definition at line 1513 of file hevcdsp_template.c.

◆ TQ3

#define TQ3   pix[3 * xstride + 3 * ystride]

Definition at line 1514 of file hevcdsp_template.c.

Function Documentation

◆ put_pcm()

static void FUNC() put_pcm ( uint8_t _dst,
ptrdiff_t  stride,
int  width,
int  height,
GetBitContext gb,
int  pcm_bit_depth 
)
static

Definition at line 29 of file hevcdsp_template.c.

◆ add_residual()

static av_always_inline void FUNC() add_residual ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride,
int  size 
)
static

◆ add_residual4x4()

static void FUNC() add_residual4x4 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 61 of file hevcdsp_template.c.

◆ add_residual8x8()

static void FUNC() add_residual8x8 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 67 of file hevcdsp_template.c.

◆ add_residual16x16()

static void FUNC() add_residual16x16 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 73 of file hevcdsp_template.c.

◆ add_residual32x32()

static void FUNC() add_residual32x32 ( uint8_t _dst,
int16_t *  res,
ptrdiff_t  stride 
)
static

Definition at line 79 of file hevcdsp_template.c.

◆ transform_rdpcm()

static void FUNC() transform_rdpcm ( int16_t *  _coeffs,
int16_t  log2_size,
int  mode 
)
static

Definition at line 85 of file hevcdsp_template.c.

◆ dequant()

static void FUNC() dequant ( int16_t *  coeffs,
int16_t  log2_size 
)
static

Definition at line 107 of file hevcdsp_template.c.

◆ transform_4x4_luma()

static void FUNC() transform_4x4_luma ( int16_t *  coeffs)
static

Definition at line 149 of file hevcdsp_template.c.

◆ sao_band_filter()

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 
)
static

Definition at line 298 of file hevcdsp_template.c.

◆ sao_edge_filter()

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

Definition at line 324 of file hevcdsp_template.c.

◆ sao_edge_restore_0()

static void FUNC() sao_edge_restore_0 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
SAOParams sao,
int borders,
int  _width,
int  _height,
int  c_idx,
uint8_t vert_edge,
uint8_t horiz_edge,
uint8_t diag_edge 
)
static

Definition at line 355 of file hevcdsp_template.c.

◆ sao_edge_restore_1()

static void FUNC() sao_edge_restore_1 ( uint8_t _dst,
uint8_t _src,
ptrdiff_t  stride_dst,
ptrdiff_t  stride_src,
SAOParams sao,
int borders,
int  _width,
int  _height,
int  c_idx,
uint8_t vert_edge,
uint8_t horiz_edge,
uint8_t diag_edge 
)
static

Definition at line 405 of file hevcdsp_template.c.

◆ put_hevc_pel_pixels()

static void FUNC() put_hevc_pel_pixels ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 496 of file hevcdsp_template.c.

◆ put_hevc_pel_uni_pixels()

static void FUNC() put_hevc_pel_uni_pixels ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 512 of file hevcdsp_template.c.

◆ put_hevc_pel_bi_pixels()

static void FUNC() put_hevc_pel_bi_pixels ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 528 of file hevcdsp_template.c.

◆ put_hevc_pel_uni_w_pixels()

static void FUNC() put_hevc_pel_uni_w_pixels ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 554 of file hevcdsp_template.c.

◆ put_hevc_pel_bi_w_pixels()

static void FUNC() put_hevc_pel_bi_w_pixels ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 578 of file hevcdsp_template.c.

◆ put_hevc_qpel_h()

static void FUNC() put_hevc_qpel_h ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 617 of file hevcdsp_template.c.

◆ put_hevc_qpel_v()

static void FUNC() put_hevc_qpel_v ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 633 of file hevcdsp_template.c.

◆ put_hevc_qpel_hv()

static void FUNC() put_hevc_qpel_hv ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 649 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_h()

static void FUNC() put_hevc_qpel_uni_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 681 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_h()

static void FUNC() put_hevc_qpel_bi_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 707 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_v()

static void FUNC() put_hevc_qpel_uni_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 735 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_v()

static void FUNC() put_hevc_qpel_bi_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 762 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_hv()

static void FUNC() put_hevc_qpel_uni_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 790 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_hv()

static void FUNC() put_hevc_qpel_bi_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 830 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_h()

static void FUNC() put_hevc_qpel_uni_w_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 870 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_h()

static void FUNC() put_hevc_qpel_bi_w_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 897 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_v()

static void FUNC() put_hevc_qpel_uni_w_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 925 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_v()

static void FUNC() put_hevc_qpel_bi_w_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 952 of file hevcdsp_template.c.

◆ put_hevc_qpel_uni_w_hv()

static void FUNC() put_hevc_qpel_uni_w_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 980 of file hevcdsp_template.c.

◆ put_hevc_qpel_bi_w_hv()

static void FUNC() put_hevc_qpel_bi_w_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1021 of file hevcdsp_template.c.

◆ put_hevc_epel_h()

static void FUNC() put_hevc_epel_h ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1070 of file hevcdsp_template.c.

◆ put_hevc_epel_v()

static void FUNC() put_hevc_epel_v ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1086 of file hevcdsp_template.c.

◆ put_hevc_epel_hv()

static void FUNC() put_hevc_epel_hv ( int16_t *  dst,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1103 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_h()

static void FUNC() put_hevc_epel_uni_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1134 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_h()

static void FUNC() put_hevc_epel_bi_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1158 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_v()

static void FUNC() put_hevc_epel_uni_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1185 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_v()

static void FUNC() put_hevc_epel_bi_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1209 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_hv()

static void FUNC() put_hevc_epel_uni_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1235 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_hv()

static void FUNC() put_hevc_epel_bi_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1273 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_h()

static void FUNC() put_hevc_epel_uni_w_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1313 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_h()

static void FUNC() put_hevc_epel_bi_w_h ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1339 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_v()

static void FUNC() put_hevc_epel_uni_w_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1365 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_v()

static void FUNC() put_hevc_epel_bi_w_v ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1391 of file hevcdsp_template.c.

◆ put_hevc_epel_uni_w_hv()

static void FUNC() put_hevc_epel_uni_w_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int  height,
int  denom,
int  wx,
int  ox,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1417 of file hevcdsp_template.c.

◆ put_hevc_epel_bi_w_hv()

static void FUNC() put_hevc_epel_bi_w_hv ( uint8_t _dst,
ptrdiff_t  _dststride,
uint8_t _src,
ptrdiff_t  _srcstride,
int16_t *  src2,
int  height,
int  denom,
int  wx0,
int  wx1,
int  ox0,
int  ox1,
intptr_t  mx,
intptr_t  my,
int  width 
)
static

Definition at line 1456 of file hevcdsp_template.c.

◆ hevc_loop_filter_luma()

static void FUNC() hevc_loop_filter_luma ( uint8_t _pix,
ptrdiff_t  _xstride,
ptrdiff_t  _ystride,
int  beta,
int _tc,
uint8_t _no_p,
uint8_t _no_q 
)
static

Definition at line 1516 of file hevcdsp_template.c.

Referenced by hevc_h_loop_filter_luma(), and hevc_v_loop_filter_luma().

◆ hevc_loop_filter_chroma()

static void FUNC() hevc_loop_filter_chroma ( uint8_t _pix,
ptrdiff_t  _xstride,
ptrdiff_t  _ystride,
int _tc,
uint8_t _no_p,
uint8_t _no_q 
)
static

Definition at line 1612 of file hevcdsp_template.c.

Referenced by hevc_h_loop_filter_chroma(), and hevc_v_loop_filter_chroma().

◆ hevc_h_loop_filter_chroma()

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 
)
static

Definition at line 1646 of file hevcdsp_template.c.

◆ hevc_v_loop_filter_chroma()

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 
)
static

Definition at line 1653 of file hevcdsp_template.c.

◆ hevc_h_loop_filter_luma()

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 
)
static

Definition at line 1660 of file hevcdsp_template.c.

◆ hevc_v_loop_filter_luma()

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 
)
static

Definition at line 1668 of file hevcdsp_template.c.

stride
int stride
Definition: mace.c:144
BIT_DEPTH
#define BIT_DEPTH
Definition: bit_depth_template.c:24
end
static av_cold int end(AVCodecContext *avctx)
Definition: avrndec.c:90
step
trying all byte sequences megabyte in length and selecting the best looking sequence will yield cases to try But a word about which is also called distortion Distortion can be quantified by almost any quality measurement one chooses the sum of squared differences is used but more complex methods that consider psychovisual effects can be used as well It makes no difference in this discussion First step
Definition: rate_distortion.txt:58
SET
#define SET(dst, x)
Definition: hevcdsp_template.c:131
filter
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
Definition: filter_design.txt:228
c1
static const uint64_t c1
Definition: murmur3.c:49
x
FFmpeg Automated Testing Environment ************************************Introduction Using FATE from your FFmpeg source directory Submitting the results to the FFmpeg result aggregation server Uploading new samples to the fate suite FATE makefile targets and variables Makefile targets Makefile variables Examples Introduction **************FATE is an extended regression suite on the client side and a means for results aggregation and presentation on the server side The first part of this document explains how you can use FATE from your FFmpeg source directory to test your ffmpeg binary The second part describes how you can run FATE to submit the results to FFmpeg’s FATE server In any way you can have a look at the publicly viewable FATE results by visiting this as it can be seen if some test on some platform broke with their recent contribution This usually happens on the platforms the developers could not test on The second part of this document describes how you can run FATE to submit your results to FFmpeg’s FATE server If you want to submit your results be sure to check that your combination of OS and compiler is not already listed on the above mentioned website In the third part you can find a comprehensive listing of FATE makefile targets and variables Using FATE from your FFmpeg source directory **********************************************If you want to run FATE on your machine you need to have the samples in place You can get the samples via the build target fate rsync Use this command from the top level source this will cause FATE to fail NOTE To use a custom wrapper to run the pass ‘ target exec’ to ‘configure’ or set the TARGET_EXEC Make variable Submitting the results to the FFmpeg result aggregation server ****************************************************************To submit your results to the server you should run fate through the shell script ‘tests fate sh’ from the FFmpeg sources This script needs to be invoked with a configuration file as its first argument tests fate sh path to fate_config A configuration file template with comments describing the individual configuration variables can be found at ‘doc fate_config sh template’ Create a configuration that suits your based on the configuration template The ‘slot’ configuration variable can be any string that is not yet but it is suggested that you name it adhering to the following pattern ‘ARCH OS COMPILER COMPILER VERSION’ The configuration file itself will be sourced in a shell therefore all shell features may be used This enables you to setup the environment as you need it for your build For your first test runs the ‘fate_recv’ variable should be empty or commented out This will run everything as normal except that it will omit the submission of the results to the server The following files should be present in $workdir as specified in the configuration it may help to try out the ‘ssh’ command with one or more ‘ v’ options You should get detailed output concerning your SSH configuration and the authentication process The only thing left is to automate the execution of the fate sh script and the synchronisation of the samples directory Uploading new samples to the fate suite *****************************************If you need a sample uploaded send a mail to samples request This is for developers who have an account on the fate suite server If you upload new please make sure they are as small as space on each network bandwidth and so on benefit from smaller test cases Also keep in mind older checkouts use existing sample that means in practice generally do not remove or overwrite files as it likely would break older checkouts or releases Also all needed samples for a commit should be ideally before the push If you need an account for frequently uploading samples or you wish to help others by doing that send a mail to ffmpeg devel rsync vauL Duo x
Definition: fate.txt:150
FUNC
static void FUNC(ff_hevc_idct_4x4, BIT_DEPTH)
Definition: hevcdsp_template.c:21
transform
static const int8_t transform[32][32]
Definition: hevcdsp.c:27
src
#define src
Definition: vp8dsp.c:254
for
for(j=16;j >0;--j)
Definition: h264pred_template.c:469
FFMIN
#define FFMIN(a, b)
Definition: common.h:96
H
#define H
Definition: pixlet.c:39
SCALE
#define SCALE(dst, x)
Definition: hevcdsp_template.c:132
assign
#define assign(var, type, n)
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:269
c2
static const uint64_t c2
Definition: murmur3.c:50
shift
static int shift(int a, int b)
Definition: sonic.c:82
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:72