diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-04-01 13:18:21 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-04-01 13:18:21 +0000 |
commit | c466f03689df63a5c6cbad58318551759a96b183 (patch) | |
tree | 81f598fc01e62dad07984d622f907f0c3795542f /src/libmpeg2/motion_comp_mmx.c | |
parent | 597b77d5cf3b65ba2a14c1ac3ffbfab74b1f5593 (diff) | |
download | xine-lib-c466f03689df63a5c6cbad58318551759a96b183.tar.gz xine-lib-c466f03689df63a5c6cbad58318551759a96b183.tar.bz2 |
- sync with mpeg2dec 0.2.1
- small changes to frame freeing logic
CVS patchset: 1655
CVS date: 2002/04/01 13:18:21
Diffstat (limited to 'src/libmpeg2/motion_comp_mmx.c')
-rw-r--r-- | src/libmpeg2/motion_comp_mmx.c | 188 |
1 files changed, 92 insertions, 96 deletions
diff --git a/src/libmpeg2/motion_comp_mmx.c b/src/libmpeg2/motion_comp_mmx.c index 29bd78cbf..a1a5d3b54 100644 --- a/src/libmpeg2/motion_comp_mmx.c +++ b/src/libmpeg2/motion_comp_mmx.c @@ -1,8 +1,10 @@ /* * motion_comp_mmx.c - * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> + * Copyright (C) 2000-2002 Michel Lespinasse <walken@zoy.org> + * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> * * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. + * See http://libmpeg2.sourceforge.net/ for updates. * * mpeg2dec is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,15 +36,9 @@ /* MMX code - needs a rewrite */ - - - - - - /* some rounding constants */ -mmx_t round1 = {0x0001000100010001LL}; -mmx_t round4 = {0x0002000200020002LL}; +static mmx_t round1 = {0x0001000100010001LL}; +static mmx_t round4 = {0x0002000200020002LL}; /* * This code should probably be compiled with loop unrolling @@ -268,14 +264,14 @@ static inline void MC_avg_mmx (int width, int height, } while (--height); } -static void MC_avg_16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_mmx (16, height, dest, ref, stride); } -static void MC_avg_8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_mmx (8, height, dest, ref, stride); } @@ -302,14 +298,14 @@ static inline void MC_put_mmx (int width, int height, } while (--height); } -static void MC_put_16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_mmx (16, height, dest, ref, stride); } -static void MC_put_8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_mmx (8, height, dest, ref, stride); } @@ -333,14 +329,14 @@ static inline void MC_avg_x_mmx (int width, int height, } while (--height); } -static void MC_avg_x16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_x_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_x_mmx (16, height, dest, ref, stride); } -static void MC_avg_x8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_x_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_x_mmx (8, height, dest, ref, stride); } @@ -363,14 +359,14 @@ static inline void MC_put_x_mmx (int width, int height, } while (--height); } -static void MC_put_x16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_x_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_x_mmx (16, height, dest, ref, stride); } -static void MC_put_x8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_x_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_x_mmx (8, height, dest, ref, stride); } @@ -397,14 +393,14 @@ static inline void MC_avg_xy_mmx (int width, int height, } while (--height); } -static void MC_avg_xy16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_xy_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_xy_mmx (16, height, dest, ref, stride); } -static void MC_avg_xy8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_xy_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_xy_mmx (8, height, dest, ref, stride); } @@ -430,14 +426,14 @@ static inline void MC_put_xy_mmx (int width, int height, } while (--height); } -static void MC_put_xy16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_xy_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_xy_mmx (16, height, dest, ref, stride); } -static void MC_put_xy8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_xy_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_xy_mmx (8, height, dest, ref, stride); } @@ -463,14 +459,14 @@ static inline void MC_avg_y_mmx (int width, int height, } while (--height); } -static void MC_avg_y16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_y_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_y_mmx (16, height, dest, ref, stride); } -static void MC_avg_y8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_y_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg_y_mmx (8, height, dest, ref, stride); } @@ -496,20 +492,20 @@ static inline void MC_put_y_mmx (int width, int height, } while (--height); } -static void MC_put_y16_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_y_16_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_y_mmx (16, height, dest, ref, stride); } -static void MC_put_y8_mmx (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_y_8_mmx (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put_y_mmx (8, height, dest, ref, stride); } -MOTION_COMP_EXTERN (mmx) +MPEG2_MC_EXTERN (mmx) @@ -813,204 +809,204 @@ static inline void MC_avg4_16 (int height, uint8_t * dest, uint8_t * ref, } while (--height); } -static void MC_avg_16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg1_16 (height, dest, ref, stride, CPU_MMXEXT); } -static void MC_avg_8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg1_8 (height, dest, ref, stride, CPU_MMXEXT); } -static void MC_put_16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put1_16 (height, dest, ref, stride); } -static void MC_put_8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put1_8 (height, dest, ref, stride); } -static void MC_avg_x16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_x_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg2_16 (height, dest, ref, stride, 1, CPU_MMXEXT); } -static void MC_avg_x8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_x_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg2_8 (height, dest, ref, stride, 1, CPU_MMXEXT); } -static void MC_put_x16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_x_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put2_16 (height, dest, ref, stride, 1, CPU_MMXEXT); } -static void MC_put_x8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_x_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put2_8 (height, dest, ref, stride, 1, CPU_MMXEXT); } -static void MC_avg_y16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_y_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg2_16 (height, dest, ref, stride, stride, CPU_MMXEXT); } -static void MC_avg_y8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_y_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg2_8 (height, dest, ref, stride, stride, CPU_MMXEXT); } -static void MC_put_y16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_y_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put2_16 (height, dest, ref, stride, stride, CPU_MMXEXT); } -static void MC_put_y8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_y_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put2_8 (height, dest, ref, stride, stride, CPU_MMXEXT); } -static void MC_avg_xy16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_xy_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg4_16 (height, dest, ref, stride, CPU_MMXEXT); } -static void MC_avg_xy8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_xy_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg4_8 (height, dest, ref, stride, CPU_MMXEXT); } -static void MC_put_xy16_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_xy_16_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put4_16 (height, dest, ref, stride, CPU_MMXEXT); } -static void MC_put_xy8_mmxext (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_xy_8_mmxext (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put4_8 (height, dest, ref, stride, CPU_MMXEXT); } -MOTION_COMP_EXTERN (mmxext) +MPEG2_MC_EXTERN (mmxext) -static void MC_avg_16_3dnow (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_16_3dnow (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg1_16 (height, dest, ref, stride, CPU_3DNOW); } -static void MC_avg_8_3dnow (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_avg_o_8_3dnow (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_avg1_8 (height, dest, ref, stride, CPU_3DNOW); } -static void MC_put_16_3dnow (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_16_3dnow (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put1_16 (height, dest, ref, stride); } -static void MC_put_8_3dnow (uint8_t * dest, uint8_t * ref, - int stride, int height) +static void MC_put_o_8_3dnow (uint8_t * dest, uint8_t * ref, + int stride, int height) { MC_put1_8 (height, dest, ref, stride); } -static void MC_avg_x16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_x_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg2_16 (height, dest, ref, stride, 1, CPU_3DNOW); } -static void MC_avg_x8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_x_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg2_8 (height, dest, ref, stride, 1, CPU_3DNOW); } -static void MC_put_x16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_x_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put2_16 (height, dest, ref, stride, 1, CPU_3DNOW); } -static void MC_put_x8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_x_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put2_8 (height, dest, ref, stride, 1, CPU_3DNOW); } -static void MC_avg_y16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_y_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg2_16 (height, dest, ref, stride, stride, CPU_3DNOW); } -static void MC_avg_y8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_y_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg2_8 (height, dest, ref, stride, stride, CPU_3DNOW); } -static void MC_put_y16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_y_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put2_16 (height, dest, ref, stride, stride, CPU_3DNOW); } -static void MC_put_y8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_y_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put2_8 (height, dest, ref, stride, stride, CPU_3DNOW); } -static void MC_avg_xy16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_xy_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg4_16 (height, dest, ref, stride, CPU_3DNOW); } -static void MC_avg_xy8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_avg_xy_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_avg4_8 (height, dest, ref, stride, CPU_3DNOW); } -static void MC_put_xy16_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_xy_16_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put4_16 (height, dest, ref, stride, CPU_3DNOW); } -static void MC_put_xy8_3dnow (uint8_t * dest, uint8_t * ref, +static void MC_put_xy_8_3dnow (uint8_t * dest, uint8_t * ref, int stride, int height) { MC_put4_8 (height, dest, ref, stride, CPU_3DNOW); } -MOTION_COMP_EXTERN (3dnow) +MPEG2_MC_EXTERN (3dnow) #endif |