FFmpeg
Macros | Functions
vp3dsp.c File Reference

Standard C DSP-oriented functions cribbed from the original VP3 source code. More...

#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "rnd_avg.h"
#include "vp3dsp.h"

Go to the source code of this file.

Macros

#define IdctAdjustBeforeShift   8
 
#define xC1S7   64277
 
#define xC2S6   60547
 
#define xC3S5   54491
 
#define xC4S4   46341
 
#define xC5S3   36410
 
#define xC6S2   25080
 
#define xC7S1   12785
 
#define M(a, b)   ((int)((SUINT)(a) * (b)) >> 16)
 
#define LOOP_FILTER(prefix, suffix, dim, count)
 

Functions

static av_always_inline void idct (uint8_t *dst, ptrdiff_t stride, int16_t *input, int type)
 
static av_always_inline void idct10 (uint8_t *dst, ptrdiff_t stride, int16_t *input, int type)
 
void ff_vp3dsp_idct10_put (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
void ff_vp3dsp_idct10_add (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
static void vp3_idct_put_c (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
static void vp3_idct_add_c (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
static void vp3_idct_dc_add_c (uint8_t *dest, ptrdiff_t stride, int16_t *block)
 
static av_always_inline void vp3_v_loop_filter_c (uint8_t *first_pixel, ptrdiff_t stride, int *bounding_values, int count)
 
static av_always_inline void vp3_h_loop_filter_c (uint8_t *first_pixel, ptrdiff_t stride, int *bounding_values, int count)
 
static LOOP_FILTER (static LOOP_FILTER(vp3, static LOOP_FILTER(_c, v, 8)
 
av_cold void ff_vp3dsp_init (VP3DSPContext *c, int flags)
 
void ff_vp3dsp_set_bounding_values (int *bounding_values_array, int filter_limit)
 

Detailed Description

Standard C DSP-oriented functions cribbed from the original VP3 source code.

Definition in file vp3dsp.c.

Macro Definition Documentation

#define IdctAdjustBeforeShift   8

Definition at line 36 of file vp3dsp.c.

Referenced by idct().

#define xC1S7   64277

Definition at line 37 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC2S6   60547

Definition at line 38 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC3S5   54491

Definition at line 39 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC4S4   46341

Definition at line 40 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC5S3   36410

Definition at line 41 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC6S2   25080

Definition at line 42 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define xC7S1   12785

Definition at line 43 of file vp3dsp.c.

Referenced by idct(), and idct10().

#define M (   a,
  b 
)    ((int)((SUINT)(a) * (b)) >> 16)
#define LOOP_FILTER (   prefix,
  suffix,
  dim,
  count 
)
Value:
void prefix##_##dim##_loop_filter_##count##suffix(uint8_t *first_pixel, ptrdiff_t stride, \
int *bounding_values) \
{ \
vp3_##dim##_loop_filter_c(first_pixel, stride, bounding_values, count); \
}
uint8_t
#define _
const char * suffix
Definition: checkasm.c:197
GLsizei count
Definition: opengl_enc.c:108
int dim
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104

Definition at line 416 of file vp3dsp.c.

Function Documentation

static av_always_inline void idct ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  input,
int  type 
)
static

Definition at line 47 of file vp3dsp.c.

Referenced by vp3_idct_add_c(), and vp3_idct_put_c().

static av_always_inline void idct10 ( uint8_t dst,
ptrdiff_t  stride,
int16_t *  input,
int  type 
)
static

Definition at line 198 of file vp3dsp.c.

Referenced by ff_vp3dsp_idct10_add(), and ff_vp3dsp_idct10_put().

void ff_vp3dsp_idct10_put ( uint8_t dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 338 of file vp3dsp.c.

Referenced by vp56_idct_put().

void ff_vp3dsp_idct10_add ( uint8_t dest,
ptrdiff_t  stride,
int16_t *  block 
)

Definition at line 344 of file vp3dsp.c.

Referenced by vp56_idct_add().

static void vp3_idct_put_c ( uint8_t dest,
ptrdiff_t  stride,
int16_t *  block 
)
static

Definition at line 350 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

static void vp3_idct_add_c ( uint8_t dest,
ptrdiff_t  stride,
int16_t *  block 
)
static

Definition at line 357 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

static void vp3_idct_dc_add_c ( uint8_t dest,
ptrdiff_t  stride,
int16_t *  block 
)
static

Definition at line 364 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

static av_always_inline void vp3_v_loop_filter_c ( uint8_t first_pixel,
ptrdiff_t  stride,
int bounding_values,
int  count 
)
static

Definition at line 383 of file vp3dsp.c.

static av_always_inline void vp3_h_loop_filter_c ( uint8_t first_pixel,
ptrdiff_t  stride,
int bounding_values,
int  count 
)
static

Definition at line 400 of file vp3dsp.c.

static LOOP_FILTER ( static LOOP_FILTER(  vp3,
static LOOP_FILTER(  _c,
,
 
)
static

Definition at line 423 of file vp3dsp.c.

av_cold void ff_vp3dsp_init ( VP3DSPContext c,
int  flags 
)

Definition at line 445 of file vp3dsp.c.

Referenced by ff_vp56_init_context(), and vp3_decode_init().

void ff_vp3dsp_set_bounding_values ( int bounding_values_array,
int  filter_limit 
)

Definition at line 473 of file vp3dsp.c.

Referenced by ff_vp56_init_dequant(), and init_loop_filter().