00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef AVCODEC_RV34DSP_H
00028 #define AVCODEC_RV34DSP_H
00029
00030 #include "dsputil.h"
00031
00032 typedef void (*rv40_weight_func)(uint8_t *dst,
00033 uint8_t *src1,
00034 uint8_t *src2,
00035 int w1, int w2, int stride);
00036
00037 typedef void (*rv34_inv_transform_func)(DCTELEM *block);
00038
00039 typedef void (*rv40_loop_filter_func)(uint8_t *src, int stride, int dmode,
00040 int lim_q1, int lim_p1, int alpha,
00041 int beta, int beta2, int chroma,
00042 int edge);
00043
00044 typedef struct RV34DSPContext {
00045 qpel_mc_func put_pixels_tab[4][16];
00046 qpel_mc_func avg_pixels_tab[4][16];
00047 h264_chroma_mc_func put_chroma_pixels_tab[3];
00048 h264_chroma_mc_func avg_chroma_pixels_tab[3];
00049 rv40_weight_func rv40_weight_pixels_tab[2];
00050 rv34_inv_transform_func rv34_inv_transform_tab[2];
00051 rv40_loop_filter_func rv40_h_loop_filter;
00052 rv40_loop_filter_func rv40_v_loop_filter;
00053 } RV34DSPContext;
00054
00055 void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp);
00056 void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp);
00057 void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp);
00058
00059 void ff_rv34dsp_init_neon(RV34DSPContext *c, DSPContext *dsp);
00060
00061 void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp);
00062 void ff_rv40dsp_init_neon(RV34DSPContext *c, DSPContext *dsp);
00063
00064 #endif