FFmpeg
Macros | Functions
vc1dsp_init.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavcodec/vc1dsp.h"
#include "fpel.h"
#include "vc1dsp.h"
#include "config.h"

Go to the source code of this file.

Macros

#define LOOP_FILTER4(EXT)
 
#define LOOP_FILTER816(EXT)
 
#define DECLARE_FUNCTION(OP, DEPTH, INSN)
 
#define MSPEL_FUNC(OP, X, Y, SIZE, XMM)
 
#define MSPEL_FUNCS_SIZE(X, Y, SIZE, XMM)
 
#define MSPEL_FUNCS(X, Y, XMM)
 
#define ASSIGN_LF4(EXT)
 
#define ASSIGN_LF816(EXT)
 

Functions

void ff_vc1_h_loop_filter8_sse4 (uint8_t *src, ptrdiff_t stride, int pq)
 
static void vc1_h_loop_filter16_sse4 (uint8_t *src, ptrdiff_t stride, int pq)
 
void ff_put_vc1_chroma_mc8_nornd_ssse3 (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_avg_vc1_chroma_mc8_nornd_ssse3 (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_vc1_inv_trans_4x4_dc_mmxext (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_4x8_dc_mmxext (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_8x4_dc_mmxext (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_8x8_dc_mmxext (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
av_cold void ff_vc1dsp_init_x86 (VC1DSPContext *dsp)
 

Macro Definition Documentation

◆ LOOP_FILTER4

#define LOOP_FILTER4 (   EXT)
Value:
void ff_vc1_v_loop_filter4_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \
void ff_vc1_h_loop_filter4_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq);

Definition at line 36 of file vc1dsp_init.c.

◆ LOOP_FILTER816

#define LOOP_FILTER816 (   EXT)
Value:
void ff_vc1_v_loop_filter8_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \
void ff_vc1_h_loop_filter8_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq); \
\
static void vc1_v_loop_filter16_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq) \
{ \
ff_vc1_v_loop_filter8_ ## EXT(src, stride, pq); \
ff_vc1_v_loop_filter8_ ## EXT(src+8, stride, pq); \
} \
\
static void vc1_h_loop_filter16_ ## EXT(uint8_t *src, ptrdiff_t stride, int pq) \
{ \
ff_vc1_h_loop_filter8_ ## EXT(src, stride, pq); \
ff_vc1_h_loop_filter8_ ## EXT(src+8*stride, stride, pq); \
}

Definition at line 39 of file vc1dsp_init.c.

◆ DECLARE_FUNCTION

#define DECLARE_FUNCTION (   OP,
  DEPTH,
  INSN 
)
Value:
static void OP##vc1_mspel_mc00_##DEPTH##INSN(uint8_t *dst, \
const uint8_t *src, ptrdiff_t stride, int rnd) \
{ \
ff_ ## OP ## pixels ## DEPTH ## INSN(dst, src, stride, DEPTH); \
}

Definition at line 67 of file vc1dsp_init.c.

◆ MSPEL_FUNC

#define MSPEL_FUNC (   OP,
  X,
  Y,
  SIZE,
  XMM 
)
Value:
void ff_vc1_ ## OP ## _mspel_mc ## X ## Y ## _ ## SIZE ##_ ## XMM \
(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd); \
dsp->OP ## _vc1_mspel_pixels_tab[SIZE == 8][X + 4 * Y] = \
ff_vc1_ ## OP ## _mspel_mc ## X ## Y## _ ## SIZE ##_ ## XMM

Definition at line 92 of file vc1dsp_init.c.

◆ MSPEL_FUNCS_SIZE

#define MSPEL_FUNCS_SIZE (   X,
  Y,
  SIZE,
  XMM 
)
Value:
MSPEL_FUNC(put, X, Y, SIZE, XMM); \
MSPEL_FUNC(avg, X, Y, SIZE, XMM)

Definition at line 97 of file vc1dsp_init.c.

◆ MSPEL_FUNCS

#define MSPEL_FUNCS (   X,
  Y,
  XMM 
)
Value:
MSPEL_FUNCS_SIZE(X, Y, 8, XMM); \
MSPEL_FUNCS_SIZE(X, Y, 16, XMM)

Definition at line 100 of file vc1dsp_init.c.

◆ ASSIGN_LF4

#define ASSIGN_LF4 (   EXT)
Value:
dsp->vc1_v_loop_filter4 = ff_vc1_v_loop_filter4_ ## EXT; \
dsp->vc1_h_loop_filter4 = ff_vc1_h_loop_filter4_ ## EXT

◆ ASSIGN_LF816

#define ASSIGN_LF816 (   EXT)
Value:
dsp->vc1_v_loop_filter8 = ff_vc1_v_loop_filter8_ ## EXT; \
dsp->vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_ ## EXT; \
dsp->vc1_v_loop_filter16 = vc1_v_loop_filter16_ ## EXT; \
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_ ## EXT

Function Documentation

◆ ff_vc1_h_loop_filter8_sse4()

void ff_vc1_h_loop_filter8_sse4 ( uint8_t *  src,
ptrdiff_t  stride,
int  pq 
)

◆ vc1_h_loop_filter16_sse4()

static void vc1_h_loop_filter16_sse4 ( uint8_t *  src,
ptrdiff_t  stride,
int  pq 
)
static

Definition at line 61 of file vc1dsp_init.c.

Referenced by ff_vc1dsp_init_x86().

◆ ff_put_vc1_chroma_mc8_nornd_ssse3()

void ff_put_vc1_chroma_mc8_nornd_ssse3 ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  h,
int  x,
int  y 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_avg_vc1_chroma_mc8_nornd_ssse3()

void ff_avg_vc1_chroma_mc8_nornd_ssse3 ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride,
int  h,
int  x,
int  y 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_vc1_inv_trans_4x4_dc_mmxext()

void ff_vc1_inv_trans_4x4_dc_mmxext ( uint8_t *  dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_vc1_inv_trans_4x8_dc_mmxext()

void ff_vc1_inv_trans_4x8_dc_mmxext ( uint8_t *  dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_vc1_inv_trans_8x4_dc_mmxext()

void ff_vc1_inv_trans_8x4_dc_mmxext ( uint8_t *  dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_vc1_inv_trans_8x8_dc_mmxext()

void ff_vc1_inv_trans_8x8_dc_mmxext ( uint8_t *  dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Referenced by ff_vc1dsp_init_x86().

◆ ff_vc1dsp_init_x86()

av_cold void ff_vc1dsp_init_x86 ( VC1DSPContext dsp)

Definition at line 104 of file vc1dsp_init.c.

Referenced by ff_vc1dsp_init().

dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:87
MSPEL_FUNC
#define MSPEL_FUNC(OP, X, Y, SIZE, XMM)
Definition: vc1dsp_init.c:92
rnd
#define rnd
Definition: checkasm.h:136
SIZE
#define SIZE
Definition: bitstream_template.c:36
avg
#define avg(a, b, c, d)
Definition: colorspacedsp_template.c:28
Y
#define Y
Definition: boxblur.h:37
DEPTH
#define DEPTH
Definition: v210enc.c:43
OP
#define OP(gb, pixel, count)
_
#define _
stride
#define stride
Definition: h264pred_template.c:536
X
@ X
Definition: vf_addroi.c:27
src
#define src
Definition: vp8dsp.c:248
MSPEL_FUNCS_SIZE
#define MSPEL_FUNCS_SIZE(X, Y, SIZE, XMM)
Definition: vc1dsp_init.c:97