[MPlayer-dev-eng] sparc64.

Artur Grabowski art at blahonga.org
Sat May 18 20:25:38 CEST 2002


Hi,

These two diffs are required if you want to at least start trying to use
mplayer on sparc64 (with an LP64 environment).

The first one is obvious.
The second one is a bit more tricky. entry_size is multiplied by something
later in the code and that value is added to a pointer. This causes the
result to be unsigned. That's a problem because the value does have a sign.
on an architecture where sizeof(uint32_t) == sizeof(void *), that's not a
problem because we'll get a wraparound and automagically get the value we
intended from start. on an LP64 architecture we'll get a pointer that points
out to hell.

(did this work on alpha?)

//art

$OpenBSD: patch-libvo_x11_common_c,v 1.1 2002/05/18 17:50:19 art Exp $
--- libvo/x11_common.c.orig	Wed May 15 22:13:32 2002
+++ libvo/x11_common.c	Wed May 15 22:13:41 2002
@@ -500,10 +500,11 @@ int vo_x11_check_events(Display *mydispl
 	   {
 	    Window root;
 	    int foo;
+	    Window win;
 	    XGetGeometry(mydisplay, vo_window, &root, &foo, &foo, 
 		&foo/*width*/, &foo/*height*/, &foo, &foo);
 	    XTranslateCoordinates(mydisplay, vo_window, root, 0, 0,
-		&vo_dx, &vo_dy, (Window *)&foo);
+		&vo_dx, &vo_dy, &win);
 	    }
 #endif
            ret|=VO_EVENT_RESIZE;
$OpenBSD: patch-postproc_yuv2rgb_c,v 1.1 2002/05/18 17:50:19 art Exp $
--- postproc/yuv2rgb.c.orig	Thu May 16 00:57:29 2002
+++ postproc/yuv2rgb.c	Thu May 16 00:57:37 2002
@@ -407,7 +407,7 @@ static void yuv2rgb_c_init (int bpp, int
     uint32_t *table_32 = 0;
     uint16_t *table_16 = 0;
     uint8_t *table_8 = 0;
-    uint32_t entry_size = 0;
+    int entry_size = 0;
     void *table_r = 0, *table_g = 0, *table_b = 0;
 
     int crv = Inverse_Table_6_9[matrix_coefficients][0];



More information about the MPlayer-dev-eng mailing list