diff -pruN libfame-0.9.1.orig/src/fame_decoder_mpeg.c libfame-0.9.1/src/fame_decoder_mpeg.c --- libfame-0.9.1.orig/src/fame_decoder_mpeg.c 2008-08-02 22:44:06.860141435 +1000 +++ libfame-0.9.1/src/fame_decoder_mpeg.c 2008-08-02 22:55:42.516142586 +1000 @@ -78,7 +78,9 @@ static void mpeg_pad(fame_decoder_t *dec fame_box_t *box); static void mpeg_interpolate(fame_decoder_t *decoder, int rounding); static void mpeg_leave(fame_decoder_t *decoder); +#ifdef HAS_MMX static void mpeg_close(fame_decoder_t *decoder); +#endif FAME_CONSTRUCTOR(fame_decoder_mpeg_t) { @@ -90,7 +92,11 @@ FAME_CONSTRUCTOR(fame_decoder_mpeg_t) FAME_DECODER(this)->pad = mpeg_pad; FAME_DECODER(this)->interpolate = mpeg_interpolate; FAME_DECODER(this)->leave = mpeg_leave; +#ifdef HAS_MMX FAME_DECODER(this)->close = mpeg_close; +#else + FAME_DECODER(this)->close = NULL; +#endif return(this); } @@ -603,6 +609,7 @@ static void mpeg_leave(fame_decoder_t *d arch_leave_state(); } +#ifdef HAS_MMX /* mpeg_close */ /* */ /* Description: */ @@ -618,7 +625,6 @@ static void mpeg_close(fame_decoder_t *d { fame_decoder_mpeg_t *decoder_mpeg = FAME_DECODER_MPEG(decoder); -#ifdef HAS_MMX /* free mismatch accumulator */ { int i; @@ -626,5 +632,5 @@ static void mpeg_close(fame_decoder_t *d for(i = 0; i < 6; i++) fame_free(decoder_mpeg->mismatch_accumulator[i]); } -#endif } +#endif diff -pruN libfame-0.9.1.orig/src/half_mmx.h libfame-0.9.1/src/half_mmx.h --- libfame-0.9.1.orig/src/half_mmx.h 2008-08-02 22:44:06.856141130 +1000 +++ libfame-0.9.1/src/half_mmx.h 2008-08-02 22:51:49.078142536 +1000 @@ -28,10 +28,10 @@ static void inline mmx_interpolate(unsig short _mmx_rc[4]; /* rounding control */ register short *rc = _mmx_rc; - _mmx_rc[0] = 1 - rounding; - _mmx_rc[1] = 1 - rounding; - _mmx_rc[2] = 1 - rounding; - _mmx_rc[3] = 1 - rounding; + _mmx_rc[0] = _mmx_one[0] - rounding; + _mmx_rc[1] = _mmx_one[1] - rounding; + _mmx_rc[2] = _mmx_one[2] - rounding; + _mmx_rc[3] = _mmx_one[3] - rounding; asm volatile ("movl (%0), %3\n" /* %3 = ref[0] */ "pxor %%mm7, %%mm7\n" /* mm7 = 0 */ diff -pruN libfame-0.9.1.orig/src/mae_int.h libfame-0.9.1/src/mae_int.h --- libfame-0.9.1.orig/src/mae_int.h 2008-08-02 22:44:06.862141891 +1000 +++ libfame-0.9.1/src/mae_int.h 2008-08-02 22:55:42.517140304 +1000 @@ -18,10 +18,10 @@ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -static unsigned int MAE8x8_withmask(unsigned char *ref, - unsigned char *input, - unsigned char *shape, - int pitch) +static inline unsigned int +MAE8x8_withmask(unsigned char *ref, unsigned char *input, + unsigned char *shape, + int pitch) { int j,i; @@ -41,10 +41,11 @@ static unsigned int MAE8x8_withmask(unsi return error; } -static unsigned int MAE8x8_withoutmask(unsigned char *ref, - unsigned char *input, - unsigned char *shape, - int pitch) +static inline unsigned int +MAE8x8_withoutmask(unsigned char *ref, + unsigned char *input, + unsigned char *shape, + int pitch) { int j,i; diff -pruN libfame-0.9.1.orig/src/mae_mmx.h libfame-0.9.1/src/mae_mmx.h --- libfame-0.9.1.orig/src/mae_mmx.h 2008-08-02 22:44:06.855143632 +1000 +++ libfame-0.9.1/src/mae_mmx.h 2008-08-02 22:55:42.517140304 +1000 @@ -18,10 +18,10 @@ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -static unsigned int MAE8x8_withmask(unsigned char *ref, - unsigned char *input, - unsigned char *shape, - int pitch) +static inline unsigned int +MAE8x8_withmask(unsigned char *ref, unsigned char *input, + unsigned char *shape, + int pitch) { int dummy; unsigned long retval; @@ -70,10 +70,10 @@ static unsigned int MAE8x8_withmask(unsi return (retval&65535); } -static unsigned int MAE8x8_withoutmask(unsigned char *ref, - unsigned char *input, - unsigned char *shape, - int pitch) +static inline unsigned int +MAE8x8_withoutmask(unsigned char *ref, unsigned char *input, + unsigned char *shape, + int pitch) { int dummy; unsigned long retval;