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);