contrib/libfame/libfame-0.9.1-mmx.patch
2008-08-03 01:23:20 +10:00

134 lines
4.3 KiB
Diff

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;