Commit 82569beb authored by conrad's avatar conrad

VP3 loop filter is mmx2 not mmx

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15642 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 628e1636
...@@ -2593,11 +2593,6 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx) ...@@ -2593,11 +2593,6 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->h263_v_loop_filter= h263_v_loop_filter_mmx; c->h263_v_loop_filter= h263_v_loop_filter_mmx;
c->h263_h_loop_filter= h263_h_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[0]= put_h264_chroma_mc8_mmx_rnd;
c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx; 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; 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) ...@@ -2638,6 +2633,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->avg_pixels_tab[1][3] = avg_pixels8_xy2_mmx2; 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) \ #define SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU) \
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## SIZE ## _mc00_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 0] = PFX ## SIZE ## _mc00_ ## CPU; \
c->PFX ## _pixels_tab[IDX][ 1] = PFX ## SIZE ## _mc10_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 1] = PFX ## SIZE ## _mc10_ ## CPU; \
......
...@@ -84,7 +84,7 @@ extern const uint16_t ff_vp3_idct_data[]; ...@@ -84,7 +84,7 @@ extern const uint16_t ff_vp3_idct_data[];
"shr $16, %0 \n\t" \ "shr $16, %0 \n\t" \
"movw %w0, -1"#dst3" \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( __asm__ volatile(
"movq %0, %%mm6 \n\t" "movq %0, %%mm6 \n\t"
...@@ -105,7 +105,7 @@ void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values) ...@@ -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; x86_reg tmp;
......
...@@ -29,7 +29,7 @@ void ff_vp3_idct_mmx(int16_t *data); ...@@ -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_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_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_v_loop_filter_mmx2(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);
#endif /* AVCODEC_I386_VP3DSP_MMX_H */ #endif /* AVCODEC_I386_VP3DSP_MMX_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment