FFmpeg
Macros | Functions
rv40dsp.c File Reference

RV40 decoder motion compensation functions. More...

#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "h264qpel.h"
#include "mathops.h"
#include "pixels.h"
#include "rnd_avg.h"
#include "rv34dsp.h"
#include "libavutil/avassert.h"

Macros

#define RV40_LOWPASS(OPNAME, OP)
 
#define RV40_MC(OPNAME, SIZE)
 
#define op_avg(a, b)   a = (((a)+cm[b]+1)>>1)
 
#define op_put(a, b)   a = cm[b]
 
#define PIXOP2(OPNAME, OP)
 
#define op_avg(a, b)   a = rnd_avg32(a, b)
 
#define op_put(a, b)   a = b
 
#define RV40_CHROMA_MC(OPNAME, OP)
 
#define op_avg(a, b)   a = (((a)+((b)>>6)+1)>>1)
 
#define op_put(a, b)   a = ((b)>>6)
 
#define RV40_WEIGHT_FUNC(size)
 
#define CLIP_SYMM(a, b)   av_clip(a, -(b), b)
 

Functions

av_cold void ff_rv40dsp_init (RV34DSPContext *c)
 

Detailed Description

RV40 decoder motion compensation functions.

Macro Definition Documentation

§ RV40_WEIGHT_FUNC

#define RV40_WEIGHT_FUNC (   size)
Value:
static void rv40_weight_func_rnd_ ## size (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, ptrdiff_t stride)\
{\
int i, j;\
\
for (j = 0; j < size; j++) {\
for (i = 0; i < size; i++)\
dst[i] = (((w2 * src1[i]) >> 9) + ((w1 * src2[i]) >> 9) + 0x10) >> 5;\
src1 += stride;\
src2 += stride;\
dst += stride;\
}\
}\
static void rv40_weight_func_nornd_ ## size (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w1, int w2, ptrdiff_t stride)\
{\
int i, j;\
\
for (j = 0; j < size; j++) {\
for (i = 0; i < size; i++)\
dst[i] = (w2 * src1[i] + w1 * src2[i] + 0x10) >> 5;\
src1 += stride;\
src2 += stride;\
dst += stride;\
}\
}