VP3 loop filter is mmx2 not mmx
Originally committed as revision 15642 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
9806f846c0
commit
daa1ea049a
@ -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)
|
|||||||
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[];
|
|||||||
"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)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|||||||
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 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user