aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Conrad <lessen42@gmail.com>2008-10-19 04:40:24 +0000
committerDavid Conrad <lessen42@gmail.com>2008-10-19 04:40:24 +0000
commitdaa1ea049a9445b7bed03963cb789497065dd1eb (patch)
treeb91610931b770a9682a1d2f31bb416597fda685b
parent9806f846c0f7dd6ff3a0bdf1f2e161623ec9d3e6 (diff)
downloadffmpeg-daa1ea049a9445b7bed03963cb789497065dd1eb.tar.gz
VP3 loop filter is mmx2 not mmx
Originally committed as revision 15642 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/i386/dsputil_mmx.c11
-rw-r--r--libavcodec/i386/vp3dsp_mmx.c4
-rw-r--r--libavcodec/i386/vp3dsp_mmx.h4
3 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/i386/dsputil_mmx.c b/libavcodec/i386/dsputil_mmx.c
index b23664d960..08892d257f 100644
--- a/libavcodec/i386/dsputil_mmx.c
+++ b/libavcodec/i386/dsputil_mmx.c
@@ -2593,11 +2593,6 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->h263_v_loop_filter= h263_v_loop_filter_mmx;
c->h263_h_loop_filter= h263_h_loop_filter_mmx;
}
- if ((ENABLE_VP3_DECODER || ENABLE_THEORA_DECODER) &&
- !(avctx->flags & CODEC_FLAG_BITEXACT)) {
- c->vp3_v_loop_filter= ff_vp3_v_loop_filter_mmx;
- c->vp3_h_loop_filter= ff_vp3_h_loop_filter_mmx;
- }
c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_rnd;
c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx;
c->put_no_rnd_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_nornd;
@@ -2638,6 +2633,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->avg_pixels_tab[1][3] = avg_pixels8_xy2_mmx2;
}
+ if ((ENABLE_VP3_DECODER || ENABLE_THEORA_DECODER) &&
+ !(avctx->flags & CODEC_FLAG_BITEXACT)) {
+ c->vp3_v_loop_filter= ff_vp3_v_loop_filter_mmx2;
+ c->vp3_h_loop_filter= ff_vp3_h_loop_filter_mmx2;
+ }
+
#define SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU) \
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## SIZE ## _mc00_ ## CPU; \
c->PFX ## _pixels_tab[IDX][ 1] = PFX ## SIZE ## _mc10_ ## CPU; \
diff --git a/libavcodec/i386/vp3dsp_mmx.c b/libavcodec/i386/vp3dsp_mmx.c
index 32af301c00..010bfc65d6 100644
--- a/libavcodec/i386/vp3dsp_mmx.c
+++ b/libavcodec/i386/vp3dsp_mmx.c
@@ -84,7 +84,7 @@ extern const uint16_t ff_vp3_idct_data[];
"shr $16, %0 \n\t" \
"movw %w0, -1"#dst3" \n\t"
-void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
+void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
{
__asm__ volatile(
"movq %0, %%mm6 \n\t"
@@ -105,7 +105,7 @@ void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
);
}
-void ff_vp3_h_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
+void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
{
x86_reg tmp;
diff --git a/libavcodec/i386/vp3dsp_mmx.h b/libavcodec/i386/vp3dsp_mmx.h
index 252c5f1548..2e79913deb 100644
--- a/libavcodec/i386/vp3dsp_mmx.h
+++ b/libavcodec/i386/vp3dsp_mmx.h
@@ -29,7 +29,7 @@ void ff_vp3_idct_mmx(int16_t *data);
void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block);
void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values);
-void ff_vp3_h_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values);
+void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
+void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
#endif /* AVCODEC_I386_VP3DSP_MMX_H */