FFmpeg
Macros | Functions
vp3dsp.c File Reference
#include <string.h>
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.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

◆ IdctAdjustBeforeShift

#define IdctAdjustBeforeShift   8

Definition at line 39 of file vp3dsp.c.

◆ xC1S7

#define xC1S7   64277

Definition at line 40 of file vp3dsp.c.

◆ xC2S6

#define xC2S6   60547

Definition at line 41 of file vp3dsp.c.

◆ xC3S5

#define xC3S5   54491

Definition at line 42 of file vp3dsp.c.

◆ xC4S4

#define xC4S4   46341

Definition at line 43 of file vp3dsp.c.

◆ xC5S3

#define xC5S3   36410

Definition at line 44 of file vp3dsp.c.

◆ xC6S2

#define xC6S2   25080

Definition at line 45 of file vp3dsp.c.

◆ xC7S1

#define xC7S1   12785

Definition at line 46 of file vp3dsp.c.

◆ M

#define M (   a,
  b 
)    ((int)((SUINT)(a) * (b)) >> 16)

Definition at line 48 of file vp3dsp.c.

◆ LOOP_FILTER

#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); \
}

Definition at line 419 of file vp3dsp.c.

Function Documentation

◆ idct()

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

Definition at line 50 of file vp3dsp.c.

Referenced by vp3_idct_add_c(), and vp3_idct_put_c().

◆ idct10()

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

Definition at line 201 of file vp3dsp.c.

Referenced by ff_vp3dsp_idct10_add(), and ff_vp3dsp_idct10_put().

◆ ff_vp3dsp_idct10_put()

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

Definition at line 341 of file vp3dsp.c.

Referenced by vp56_idct_put().

◆ ff_vp3dsp_idct10_add()

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

Definition at line 347 of file vp3dsp.c.

Referenced by vp56_idct_add().

◆ vp3_idct_put_c()

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

Definition at line 353 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

◆ vp3_idct_add_c()

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

Definition at line 360 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

◆ vp3_idct_dc_add_c()

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

Definition at line 367 of file vp3dsp.c.

Referenced by ff_vp3dsp_init().

◆ vp3_v_loop_filter_c()

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 386 of file vp3dsp.c.

◆ vp3_h_loop_filter_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 403 of file vp3dsp.c.

◆ LOOP_FILTER()

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

Definition at line 426 of file vp3dsp.c.

◆ ff_vp3dsp_init()

av_cold void ff_vp3dsp_init ( VP3DSPContext c,
int  flags 
)

Definition at line 448 of file vp3dsp.c.

Referenced by ff_vp56_init_context(), and vp3_decode_init().

◆ ff_vp3dsp_set_bounding_values()

void ff_vp3dsp_set_bounding_values ( int bounding_values_array,
int  filter_limit 
)

Definition at line 476 of file vp3dsp.c.

Referenced by ff_vp56_init_dequant(), and init_loop_filter().

stride
int stride
Definition: mace.c:144
dim
int dim
Definition: vorbis_enc_data.h:425
suffix
const char * suffix
Definition: checkasm.c:200
_
#define _