00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #include "libavcodec/rv34dsp.h"
00028
00029 void ff_put_rv40_chroma_mc8_mmx (uint8_t *dst, uint8_t *src,
00030 int stride, int h, int x, int y);
00031 void ff_avg_rv40_chroma_mc8_mmx2 (uint8_t *dst, uint8_t *src,
00032 int stride, int h, int x, int y);
00033 void ff_avg_rv40_chroma_mc8_3dnow(uint8_t *dst, uint8_t *src,
00034 int stride, int h, int x, int y);
00035
00036 void ff_put_rv40_chroma_mc4_mmx (uint8_t *dst, uint8_t *src,
00037 int stride, int h, int x, int y);
00038 void ff_avg_rv40_chroma_mc4_mmx2 (uint8_t *dst, uint8_t *src,
00039 int stride, int h, int x, int y);
00040 void ff_avg_rv40_chroma_mc4_3dnow(uint8_t *dst, uint8_t *src,
00041 int stride, int h, int x, int y);
00042
00043 void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp)
00044 {
00045 av_unused int mm_flags = av_get_cpu_flags();
00046
00047 #if HAVE_YASM
00048 if (mm_flags & AV_CPU_FLAG_MMX) {
00049 c->put_chroma_pixels_tab[0] = ff_put_rv40_chroma_mc8_mmx;
00050 c->put_chroma_pixels_tab[1] = ff_put_rv40_chroma_mc4_mmx;
00051 }
00052 if (mm_flags & AV_CPU_FLAG_MMX2) {
00053 c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_mmx2;
00054 c->avg_chroma_pixels_tab[1] = ff_avg_rv40_chroma_mc4_mmx2;
00055 } else if (mm_flags & AV_CPU_FLAG_3DNOW) {
00056 c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_3dnow;
00057 c->avg_chroma_pixels_tab[1] = ff_avg_rv40_chroma_mc4_3dnow;
00058 }
00059 #endif
00060 }