Mercurial > libavcodec.hg
comparison x86/dsputil_mmx.c @ 12436:d6d0a43848b4 libavcodec
Move VP3 IDCT functions from inline ASM to YASM. This fixes part of the VP3/5/6
issues on Win64.
author | rbultje |
---|---|
date | Mon, 30 Aug 2010 16:25:46 +0000 |
parents | fe78a4548d12 |
children | b242eb86ea9a |
comparison
equal
deleted
inserted
replaced
12435:fe78a4548d12 | 12436:d6d0a43848b4 |
---|---|
26 #include "libavcodec/dsputil.h" | 26 #include "libavcodec/dsputil.h" |
27 #include "libavcodec/h264dsp.h" | 27 #include "libavcodec/h264dsp.h" |
28 #include "libavcodec/mpegvideo.h" | 28 #include "libavcodec/mpegvideo.h" |
29 #include "libavcodec/simple_idct.h" | 29 #include "libavcodec/simple_idct.h" |
30 #include "dsputil_mmx.h" | 30 #include "dsputil_mmx.h" |
31 #include "vp3dsp_mmx.h" | |
32 #include "vp3dsp_sse2.h" | |
33 #include "idct_xvid.h" | 31 #include "idct_xvid.h" |
34 | 32 |
35 //#undef NDEBUG | 33 //#undef NDEBUG |
36 //#include <assert.h> | 34 //#include <assert.h> |
37 | 35 |
2374 " js 1b \n\t" | 2372 " js 1b \n\t" |
2375 :"+r"(reglen), "+r"(dst), "+r"(src) | 2373 :"+r"(reglen), "+r"(dst), "+r"(src) |
2376 ); | 2374 ); |
2377 } | 2375 } |
2378 | 2376 |
2377 void ff_vp3_idct_mmx(int16_t *input_data); | |
2378 void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block); | |
2379 void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block); | |
2380 | |
2381 void ff_vp3_idct_dc_add_mmx2(uint8_t *dest, int line_size, const DCTELEM *block); | |
2382 | |
2383 void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values); | |
2384 void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values); | |
2385 | |
2386 void ff_vp3_idct_sse2(int16_t *input_data); | |
2387 void ff_vp3_idct_put_sse2(uint8_t *dest, int line_size, DCTELEM *block); | |
2388 void ff_vp3_idct_add_sse2(uint8_t *dest, int line_size, DCTELEM *block); | |
2389 | |
2379 void ff_float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len); | 2390 void ff_float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len); |
2380 void ff_float_to_int16_interleave6_3dnow(int16_t *dst, const float **src, int len); | 2391 void ff_float_to_int16_interleave6_3dnow(int16_t *dst, const float **src, int len); |
2381 void ff_float_to_int16_interleave6_3dn2(int16_t *dst, const float **src, int len); | 2392 void ff_float_to_int16_interleave6_3dn2(int16_t *dst, const float **src, int len); |
2382 int32_t ff_scalarproduct_int16_mmx2(const int16_t *v1, const int16_t *v2, int order, int shift); | 2393 int32_t ff_scalarproduct_int16_mmx2(const int16_t *v1, const int16_t *v2, int order, int shift); |
2383 int32_t ff_scalarproduct_int16_sse2(const int16_t *v1, const int16_t *v2, int order, int shift); | 2394 int32_t ff_scalarproduct_int16_sse2(const int16_t *v1, const int16_t *v2, int order, int shift); |